From abf466e57df57680d689701de5887f24a5075f65 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 17 Jun 2020 20:47:25 -0700 Subject: [PATCH 001/154] Add Configurator layout support for westfoxtrot/prophet (#9428) --- keyboards/westfoxtrot/prophet/info.json | 76 +++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 keyboards/westfoxtrot/prophet/info.json diff --git a/keyboards/westfoxtrot/prophet/info.json b/keyboards/westfoxtrot/prophet/info.json new file mode 100644 index 000000000000..fa4c5a9e5499 --- /dev/null +++ b/keyboards/westfoxtrot/prophet/info.json @@ -0,0 +1,76 @@ +{ + "keyboard_name": "Prophet", + "url": "", + "maintainer": "westfoxtrot", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0D", "x":13, "y":0}, + {"label":"K4D", "x":14, "y":0}, + {"label":"K10", "x":0, "y":1, "w":1.5}, + {"label":"K11", "x":1.5, "y":1}, + {"label":"K12", "x":2.5, "y":1}, + {"label":"K13", "x":3.5, "y":1}, + {"label":"K14", "x":4.5, "y":1}, + {"label":"K15", "x":5.5, "y":1}, + {"label":"K16", "x":6.5, "y":1}, + {"label":"K17", "x":7.5, "y":1}, + {"label":"K18", "x":8.5, "y":1}, + {"label":"K19", "x":9.5, "y":1}, + {"label":"K1A", "x":10.5, "y":1}, + {"label":"K1B", "x":11.5, "y":1}, + {"label":"K1C", "x":12.5, "y":1}, + {"label":"K1D", "x":13.5, "y":1, "w":1.5}, + {"label":"K20", "x":0, "y":2, "w":1.75}, + {"label":"K21", "x":1.75, "y":2}, + {"label":"K22", "x":2.75, "y":2}, + {"label":"K23", "x":3.75, "y":2}, + {"label":"K24", "x":4.75, "y":2}, + {"label":"K25", "x":5.75, "y":2}, + {"label":"K26", "x":6.75, "y":2}, + {"label":"K27", "x":7.75, "y":2}, + {"label":"K28", "x":8.75, "y":2}, + {"label":"K29", "x":9.75, "y":2}, + {"label":"K2A", "x":10.75, "y":2}, + {"label":"K2B", "x":11.75, "y":2}, + {"label":"K2D", "x":12.75, "y":2, "w":2.25}, + {"label":"K30", "x":0, "y":3, "w":1.25}, + {"label":"K31", "x":1.25, "y":3}, + {"label":"K32", "x":2.25, "y":3}, + {"label":"K33", "x":3.25, "y":3}, + {"label":"K34", "x":4.25, "y":3}, + {"label":"K35", "x":5.25, "y":3}, + {"label":"K36", "x":6.25, "y":3}, + {"label":"K37", "x":7.25, "y":3}, + {"label":"K38", "x":8.25, "y":3}, + {"label":"K39", "x":9.25, "y":3}, + {"label":"K3A", "x":10.25, "y":3}, + {"label":"K3B", "x":11.25, "y":3}, + {"label":"K3C", "x":12.25, "y":3, "w":1.75}, + {"label":"K3D", "x":14, "y":3}, + {"label":"K40", "x":0, "y":4, "w":1.5}, + {"label":"K41", "x":1.5, "y":4}, + {"label":"K42", "x":2.5, "y":4, "w":1.5}, + {"label":"K46", "x":4, "y":4, "w":7}, + {"label":"K4A", "x":11, "y":4, "w":1.5}, + {"label":"K4B", "x":12.5, "y":4}, + {"label":"K4C", "x":13.5, "y":4, "w":1.5} + ] + } + } +} From b0fd064491b601b6e3ec56f0b68d0b2271a297b3 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 17 Jun 2020 20:47:52 -0700 Subject: [PATCH 002/154] Fix Kudox Columner Configurator key ordering (#9427) --- keyboards/kudox/columner/info.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/kudox/columner/info.json b/keyboards/kudox/columner/info.json index 8d98c817881e..d11632d9da62 100644 --- a/keyboards/kudox/columner/info.json +++ b/keyboards/kudox/columner/info.json @@ -11,6 +11,8 @@ {"label":"3", "x":3.25, "y":0}, {"label":"4", "x":4.25, "y":0.25}, {"label":"5", "x":5.25, "y":0.5}, + {"label":"{", "x":6.25, "y":1.25, "h":1.25}, + {"label":"}", "x":10, "y":1.25, "h":1.25}, {"label":"6", "x":11, "y":0.5}, {"label":"7", "x":12, "y":0.25}, {"label":"8", "x":13, "y":0}, @@ -23,8 +25,8 @@ {"label":"E", "x":3.25, "y":1}, {"label":"R", "x":4.25, "y":1.25}, {"label":"T", "x":5.25, "y":1.5}, - {"label":"{", "x":6.25, "y":1.25, "h":1.25}, - {"label":"}", "x":10, "y":1.25, "h":1.25}, + {"label":"-", "x":6.25, "y":2.5, "h":1.25}, + {"label":"=", "x":10, "y":2.5, "h":1.25}, {"label":"Y", "x":11, "y":1.5}, {"label":"U", "x":12, "y":1.25}, {"label":"I", "x":13, "y":1}, @@ -46,11 +48,9 @@ {"label":"Shift", "x":0, "y":3.5, "w":1.25}, {"label":"Z", "x":1.25, "y":3.5}, {"label":"X", "x":2.25, "y":3.25}, - {"label":"V", "x":4.25, "y":3.25}, {"label":"C", "x":3.25, "y":3}, + {"label":"V", "x":4.25, "y":3.25}, {"label":"B", "x":5.25, "y":3.5}, - {"label":"-", "x":6.25, "y":2.5, "h":1.25}, - {"label":"=", "x":10, "y":2.5, "h":1.25}, {"label":"N", "x":11, "y":3.5}, {"label":"M", "x":12, "y":3.25}, {"label":",", "x":13, "y":3}, @@ -66,7 +66,7 @@ {"label":"Space", "x":6.25, "y":5}, {"label":"Space", "x":10, "y":5}, {"label":"GUI", "x":11, "y":4.75}, - {"label":"LANG2", "x":12, "y":4.5}, + {"label":"LANG1", "x":12, "y":4.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4.25}, {"label":"\u2191", "x":15, "y":4.5}, From faae375ccd5207dabea254d4013aeff7cf8d0c10 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 18 Jun 2020 14:23:09 +1000 Subject: [PATCH 003/154] Fix error_log complaint about Preonic layouts (#9443) --- keyboards/preonic/info.json | 276 ++++++------- keyboards/preonic/preonic.h | 2 +- keyboards/preonic/rev1/rev1.h | 58 ++- keyboards/preonic/rev2/rev2.h | 58 ++- keyboards/preonic/rev3/info.json | 669 ++++++++++++++++--------------- keyboards/preonic/rev3/rev3.h | 189 +++++---- 6 files changed, 627 insertions(+), 625 deletions(-) diff --git a/keyboards/preonic/info.json b/keyboards/preonic/info.json index cb0798b545a1..8de5e24d93bf 100644 --- a/keyboards/preonic/info.json +++ b/keyboards/preonic/info.json @@ -1,137 +1,145 @@ { - "keyboard_name": "Preonic", - "keyboard_folder": "preonic", - "url": "https://olkb.com/preonic", - "maintainer": "jackhumbert", - "width": 12, - "height": 5, - "layouts": { - "LAYOUT_preonic_1x2uC": { - "key_count": 59, - "layout": [ - { "w": 1, "x": 0, "y": 0 }, - { "w": 1, "x": 1, "y": 0 }, - { "w": 1, "x": 2, "y": 0 }, - { "w": 1, "x": 3, "y": 0 }, - { "w": 1, "x": 4, "y": 0 }, - { "w": 1, "x": 5, "y": 0 }, - { "w": 1, "x": 6, "y": 0 }, - { "w": 1, "x": 7, "y": 0 }, - { "w": 1, "x": 8, "y": 0 }, - { "w": 1, "x": 9, "y": 0 }, - { "w": 1, "x": 10, "y": 0 }, - { "w": 1, "x": 11, "y": 0 }, - { "w": 1, "x": 0, "y": 1 }, - { "w": 1, "x": 1, "y": 1 }, - { "w": 1, "x": 2, "y": 1 }, - { "w": 1, "x": 3, "y": 1 }, - { "w": 1, "x": 4, "y": 1 }, - { "w": 1, "x": 5, "y": 1 }, - { "w": 1, "x": 6, "y": 1 }, - { "w": 1, "x": 7, "y": 1 }, - { "w": 1, "x": 8, "y": 1 }, - { "w": 1, "x": 9, "y": 1 }, - { "w": 1, "x": 10, "y": 1 }, - { "w": 1, "x": 11, "y": 1 }, - { "w": 1, "x": 0, "y": 2 }, - { "w": 1, "x": 1, "y": 2 }, - { "w": 1, "x": 2, "y": 2 }, - { "w": 1, "x": 3, "y": 2 }, - { "w": 1, "x": 4, "y": 2 }, - { "w": 1, "x": 5, "y": 2 }, - { "w": 1, "x": 6, "y": 2 }, - { "w": 1, "x": 7, "y": 2 }, - { "w": 1, "x": 8, "y": 2 }, - { "w": 1, "x": 9, "y": 2 }, - { "w": 1, "x": 10, "y": 2 }, - { "w": 1, "x": 11, "y": 2 }, - { "w": 1, "x": 0, "y": 3 }, - { "w": 1, "x": 1, "y": 3 }, - { "w": 1, "x": 2, "y": 3 }, - { "w": 1, "x": 3, "y": 3 }, - { "w": 1, "x": 4, "y": 3 }, - { "w": 1, "x": 5, "y": 3 }, - { "w": 1, "x": 6, "y": 3 }, - { "w": 1, "x": 7, "y": 3 }, - { "w": 1, "x": 8, "y": 3 }, - { "w": 1, "x": 9, "y": 3 }, - { "w": 1, "x": 10, "y": 3 }, - { "w": 1, "x": 11, "y": 3 }, - { "w": 1, "x": 0, "y": 4 }, - { "w": 1, "x": 1, "y": 4 }, - { "w": 1, "x": 2, "y": 4 }, - { "w": 1, "x": 3, "y": 4 }, - { "w": 1, "x": 4, "y": 4 }, - { "w": 2, "x": 5, "y": 4 }, - { "w": 1, "x": 7, "y": 4 }, - { "w": 1, "x": 8, "y": 4 }, - { "w": 1, "x": 9, "y": 4 }, - { "w": 1, "x": 10, "y": 4 }, - { "w": 1, "x": 11, "y": 4 } ] - }, - "LAYOUT_ortho_5x12": { - "key_count": 60, - "layout": [ - { "w": 1, "x": 0, "y": 0 }, - { "w": 1, "x": 1, "y": 0 }, - { "w": 1, "x": 2, "y": 0 }, - { "w": 1, "x": 3, "y": 0 }, - { "w": 1, "x": 4, "y": 0 }, - { "w": 1, "x": 5, "y": 0 }, - { "w": 1, "x": 6, "y": 0 }, - { "w": 1, "x": 7, "y": 0 }, - { "w": 1, "x": 8, "y": 0 }, - { "w": 1, "x": 9, "y": 0 }, - { "w": 1, "x": 10, "y": 0 }, - { "w": 1, "x": 11, "y": 0 }, - { "w": 1, "x": 0, "y": 1 }, - { "w": 1, "x": 1, "y": 1 }, - { "w": 1, "x": 2, "y": 1 }, - { "w": 1, "x": 3, "y": 1 }, - { "w": 1, "x": 4, "y": 1 }, - { "w": 1, "x": 5, "y": 1 }, - { "w": 1, "x": 6, "y": 1 }, - { "w": 1, "x": 7, "y": 1 }, - { "w": 1, "x": 8, "y": 1 }, - { "w": 1, "x": 9, "y": 1 }, - { "w": 1, "x": 10, "y": 1 }, - { "w": 1, "x": 11, "y": 1 }, - { "w": 1, "x": 0, "y": 2 }, - { "w": 1, "x": 1, "y": 2 }, - { "w": 1, "x": 2, "y": 2 }, - { "w": 1, "x": 3, "y": 2 }, - { "w": 1, "x": 4, "y": 2 }, - { "w": 1, "x": 5, "y": 2 }, - { "w": 1, "x": 6, "y": 2 }, - { "w": 1, "x": 7, "y": 2 }, - { "w": 1, "x": 8, "y": 2 }, - { "w": 1, "x": 9, "y": 2 }, - { "w": 1, "x": 10, "y": 2 }, - { "w": 1, "x": 11, "y": 2 }, - { "w": 1, "x": 0, "y": 3 }, - { "w": 1, "x": 1, "y": 3 }, - { "w": 1, "x": 2, "y": 3 }, - { "w": 1, "x": 3, "y": 3 }, - { "w": 1, "x": 4, "y": 3 }, - { "w": 1, "x": 5, "y": 3 }, - { "w": 1, "x": 6, "y": 3 }, - { "w": 1, "x": 7, "y": 3 }, - { "w": 1, "x": 8, "y": 3 }, - { "w": 1, "x": 9, "y": 3 }, - { "w": 1, "x": 10, "y": 3 }, - { "w": 1, "x": 11, "y": 3 }, - { "w": 1, "x": 0, "y": 4 }, - { "w": 1, "x": 1, "y": 4 }, - { "w": 1, "x": 2, "y": 4 }, - { "w": 1, "x": 3, "y": 4 }, - { "w": 1, "x": 4, "y": 4 }, - { "w": 1, "x": 5, "y": 4 }, - { "w": 1, "x": 6, "y": 4 }, - { "w": 1, "x": 7, "y": 4 }, - { "w": 1, "x": 8, "y": 4 }, - { "w": 1, "x": 9, "y": 4 }, - { "w": 1, "x": 10, "y": 4 }, - { "w": 1, "x": 11, "y": 4 } ] + "keyboard_name": "Preonic", + "keyboard_folder": "preonic", + "url": "https://olkb.com/preonic", + "maintainer": "jackhumbert", + "width": 12, + "height": 5, + "layouts": { + "LAYOUT_preonic_1x2uC": { + "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": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4, "w": 2}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + }, + "LAYOUT_ortho_5x12": { + "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": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4}, + {"x": 6, "y": 4}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + } } - } } diff --git a/keyboards/preonic/preonic.h b/keyboards/preonic/preonic.h index aa184ccbdbd3..4f8ebcc3ee51 100644 --- a/keyboards/preonic/preonic.h +++ b/keyboards/preonic/preonic.h @@ -23,4 +23,4 @@ ** ** ** Name of Alias Matrix Name: ** ******* ----------------- ------------------- ****/ -#define LAYOUT_ortho_5x12 LAYOUT_preonic_grid +#define LAYOUT_preonic_grid LAYOUT_ortho_5x12 diff --git a/keyboards/preonic/rev1/rev1.h b/keyboards/preonic/rev1/rev1.h index 6ca4afd3e2f0..003bb5cee0c3 100644 --- a/keyboards/preonic/rev1/rev1.h +++ b/keyboards/preonic/rev1/rev1.h @@ -18,36 +18,30 @@ #include "preonic.h" -#ifdef __AVR__ // Preonic revs. 1 & 2 +#define LAYOUT_preonic_1x2uC( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4a, k4b } \ +} - #define LAYOUT_preonic_1x2uC( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ - { k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4a, k4b } \ - } - - #define LAYOUT_preonic_grid( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ - } - -#endif +#define LAYOUT_ortho_5x12( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ +} diff --git a/keyboards/preonic/rev2/rev2.h b/keyboards/preonic/rev2/rev2.h index 6ca4afd3e2f0..003bb5cee0c3 100644 --- a/keyboards/preonic/rev2/rev2.h +++ b/keyboards/preonic/rev2/rev2.h @@ -18,36 +18,30 @@ #include "preonic.h" -#ifdef __AVR__ // Preonic revs. 1 & 2 +#define LAYOUT_preonic_1x2uC( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4a, k4b } \ +} - #define LAYOUT_preonic_1x2uC( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ - { k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4a, k4b } \ - } - - #define LAYOUT_preonic_grid( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ - } - -#endif +#define LAYOUT_ortho_5x12( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ +} diff --git a/keyboards/preonic/rev3/info.json b/keyboards/preonic/rev3/info.json index b1ad1227e1a1..fd72055e19c8 100644 --- a/keyboards/preonic/rev3/info.json +++ b/keyboards/preonic/rev3/info.json @@ -1,330 +1,345 @@ { - "keyboard_name": "Preonic rev. 3", - "keyboard_folder": "preonic/rev3", - "url": "https://olkb.com/preonic", - "maintainer": "jackhumbert", - "width": 12, - "height": 5, - "layouts": { - "LAYOUT_preonic_1x2uC": { - "key_count": 59, - "layout": [ - {"label":"k00", "x":0, "y":0}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":2, "y":0}, - {"label":"k03", "x":3, "y":0}, - {"label":"k04", "x":4, "y":0}, - {"label":"k05", "x":5, "y":0}, - {"label":"k06", "x":6, "y":0}, - {"label":"k07", "x":7, "y":0}, - {"label":"k08", "x":8, "y":0}, - {"label":"k09", "x":9, "y":0}, - {"label":"k0a", "x":10, "y":0}, - {"label":"k0b", "x":11, "y":0}, - {"label":"k10", "x":0, "y":1}, - {"label":"k11", "x":1, "y":1}, - {"label":"k12", "x":2, "y":1}, - {"label":"k13", "x":3, "y":1}, - {"label":"k14", "x":4, "y":1}, - {"label":"k15", "x":5, "y":1}, - {"label":"k16", "x":6, "y":1}, - {"label":"k17", "x":7, "y":1}, - {"label":"k18", "x":8, "y":1}, - {"label":"k19", "x":9, "y":1}, - {"label":"k1a", "x":10, "y":1}, - {"label":"k1b", "x":11, "y":1}, - {"label":"k20", "x":0, "y":2}, - {"label":"k21", "x":1, "y":2}, - {"label":"k22", "x":2, "y":2}, - {"label":"k23", "x":3, "y":2}, - {"label":"k24", "x":4, "y":2}, - {"label":"k25", "x":5, "y":2}, - {"label":"k26", "x":6, "y":2}, - {"label":"k27", "x":7, "y":2}, - {"label":"k28", "x":8, "y":2}, - {"label":"k29", "x":9, "y":2}, - {"label":"k2a", "x":10, "y":2}, - {"label":"k2b", "x":11, "y":2}, - {"label":"k30", "x":0, "y":3}, - {"label":"k31", "x":1, "y":3}, - {"label":"k32", "x":2, "y":3}, - {"label":"k33", "x":3, "y":3}, - {"label":"k34", "x":4, "y":3}, - {"label":"k35", "x":5, "y":3}, - {"label":"k36", "x":6, "y":3}, - {"label":"k37", "x":7, "y":3}, - {"label":"k38", "x":8, "y":3}, - {"label":"k39", "x":9, "y":3}, - {"label":"k3a", "x":10, "y":3}, - {"label":"k3b", "x":11, "y":3}, - {"label":"k40", "x":0, "y":4}, - {"label":"k41", "x":1, "y":4}, - {"label":"k42", "x":2, "y":4}, - {"label":"k43", "x":3, "y":4}, - {"label":"k44", "x":4, "y":4}, - {"label":"k45", "x":5, "y":4, "w":2}, - {"label":"k47", "x":7, "y":4}, - {"label":"k48", "x":8, "y":4}, - {"label":"k49", "x":9, "y":4}, - {"label":"k4a", "x":10, "y":4}, - {"label":"k4b", "x":11, "y":4} - ] - }, - "LAYOUT_preonic_1x2uR": { - "key_count": 59, - "layout": [ - {"label":"k00", "x":0, "y":0}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":2, "y":0}, - {"label":"k03", "x":3, "y":0}, - {"label":"k04", "x":4, "y":0}, - {"label":"k05", "x":5, "y":0}, - {"label":"k06", "x":6, "y":0}, - {"label":"k07", "x":7, "y":0}, - {"label":"k08", "x":8, "y":0}, - {"label":"k09", "x":9, "y":0}, - {"label":"k0a", "x":10, "y":0}, - {"label":"k0b", "x":11, "y":0}, - {"label":"k10", "x":0, "y":1}, - {"label":"k11", "x":1, "y":1}, - {"label":"k12", "x":2, "y":1}, - {"label":"k13", "x":3, "y":1}, - {"label":"k14", "x":4, "y":1}, - {"label":"k15", "x":5, "y":1}, - {"label":"k16", "x":6, "y":1}, - {"label":"k17", "x":7, "y":1}, - {"label":"k18", "x":8, "y":1}, - {"label":"k19", "x":9, "y":1}, - {"label":"k1a", "x":10, "y":1}, - {"label":"k1b", "x":11, "y":1}, - {"label":"k20", "x":0, "y":2}, - {"label":"k21", "x":1, "y":2}, - {"label":"k22", "x":2, "y":2}, - {"label":"k23", "x":3, "y":2}, - {"label":"k24", "x":4, "y":2}, - {"label":"k25", "x":5, "y":2}, - {"label":"k26", "x":6, "y":2}, - {"label":"k27", "x":7, "y":2}, - {"label":"k28", "x":8, "y":2}, - {"label":"k29", "x":9, "y":2}, - {"label":"k2a", "x":10, "y":2}, - {"label":"k2b", "x":11, "y":2}, - {"label":"k30", "x":0, "y":3}, - {"label":"k31", "x":1, "y":3}, - {"label":"k32", "x":2, "y":3}, - {"label":"k33", "x":3, "y":3}, - {"label":"k34", "x":4, "y":3}, - {"label":"k35", "x":5, "y":3}, - {"label":"k36", "x":6, "y":3}, - {"label":"k37", "x":7, "y":3}, - {"label":"k38", "x":8, "y":3}, - {"label":"k39", "x":9, "y":3}, - {"label":"k3a", "x":10, "y":3}, - {"label":"k3b", "x":11, "y":3}, - {"label":"k40", "x":0, "y":4}, - {"label":"k41", "x":1, "y":4}, - {"label":"k42", "x":2, "y":4}, - {"label":"k43", "x":3, "y":4}, - {"label":"k44", "x":4, "y":4}, - {"label":"k45", "x":5, "y":4}, - {"label":"k47", "x":6, "y":4, "w":2}, - {"label":"k48", "x":8, "y":4}, - {"label":"k49", "x":9, "y":4}, - {"label":"k4a", "x":10, "y":4}, - {"label":"k4b", "x":11, "y":4} - ] - }, - "LAYOUT_preonic_1x2uL": { - "key_count": 59, - "layout": [ - {"label":"k00", "x":0, "y":0}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":2, "y":0}, - {"label":"k03", "x":3, "y":0}, - {"label":"k04", "x":4, "y":0}, - {"label":"k05", "x":5, "y":0}, - {"label":"k06", "x":6, "y":0}, - {"label":"k07", "x":7, "y":0}, - {"label":"k08", "x":8, "y":0}, - {"label":"k09", "x":9, "y":0}, - {"label":"k0a", "x":10, "y":0}, - {"label":"k0b", "x":11, "y":0}, - {"label":"k10", "x":0, "y":1}, - {"label":"k11", "x":1, "y":1}, - {"label":"k12", "x":2, "y":1}, - {"label":"k13", "x":3, "y":1}, - {"label":"k14", "x":4, "y":1}, - {"label":"k15", "x":5, "y":1}, - {"label":"k16", "x":6, "y":1}, - {"label":"k17", "x":7, "y":1}, - {"label":"k18", "x":8, "y":1}, - {"label":"k19", "x":9, "y":1}, - {"label":"k1a", "x":10, "y":1}, - {"label":"k1b", "x":11, "y":1}, - {"label":"k20", "x":0, "y":2}, - {"label":"k21", "x":1, "y":2}, - {"label":"k22", "x":2, "y":2}, - {"label":"k23", "x":3, "y":2}, - {"label":"k24", "x":4, "y":2}, - {"label":"k25", "x":5, "y":2}, - {"label":"k26", "x":6, "y":2}, - {"label":"k27", "x":7, "y":2}, - {"label":"k28", "x":8, "y":2}, - {"label":"k29", "x":9, "y":2}, - {"label":"k2a", "x":10, "y":2}, - {"label":"k2b", "x":11, "y":2}, - {"label":"k30", "x":0, "y":3}, - {"label":"k31", "x":1, "y":3}, - {"label":"k32", "x":2, "y":3}, - {"label":"k33", "x":3, "y":3}, - {"label":"k34", "x":4, "y":3}, - {"label":"k35", "x":5, "y":3}, - {"label":"k36", "x":6, "y":3}, - {"label":"k37", "x":7, "y":3}, - {"label":"k38", "x":8, "y":3}, - {"label":"k39", "x":9, "y":3}, - {"label":"k3a", "x":10, "y":3}, - {"label":"k3b", "x":11, "y":3}, - {"label":"k40", "x":0, "y":4}, - {"label":"k41", "x":1, "y":4}, - {"label":"k42", "x":2, "y":4}, - {"label":"k43", "x":3, "y":4}, - {"label":"k44", "x":4, "y":4, "w":2}, - {"label":"k46", "x":6, "y":4}, - {"label":"k47", "x":7, "y":4}, - {"label":"k48", "x":8, "y":4}, - {"label":"k49", "x":9, "y":4}, - {"label":"k4a", "x":10, "y":4}, - {"label":"k4b", "x":11, "y":4} - ] - }, - "LAYOUT_preonic_2x2u": { - "key_count": 58, - "layout": [ - {"label":"k00", "x":0, "y":0}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":2, "y":0}, - {"label":"k03", "x":3, "y":0}, - {"label":"k04", "x":4, "y":0}, - {"label":"k05", "x":5, "y":0}, - {"label":"k06", "x":6, "y":0}, - {"label":"k07", "x":7, "y":0}, - {"label":"k08", "x":8, "y":0}, - {"label":"k09", "x":9, "y":0}, - {"label":"k0a", "x":10, "y":0}, - {"label":"k0b", "x":11, "y":0}, - {"label":"k10", "x":0, "y":1}, - {"label":"k11", "x":1, "y":1}, - {"label":"k12", "x":2, "y":1}, - {"label":"k13", "x":3, "y":1}, - {"label":"k14", "x":4, "y":1}, - {"label":"k15", "x":5, "y":1}, - {"label":"k16", "x":6, "y":1}, - {"label":"k17", "x":7, "y":1}, - {"label":"k18", "x":8, "y":1}, - {"label":"k19", "x":9, "y":1}, - {"label":"k1a", "x":10, "y":1}, - {"label":"k1b", "x":11, "y":1}, - {"label":"k20", "x":0, "y":2}, - {"label":"k21", "x":1, "y":2}, - {"label":"k22", "x":2, "y":2}, - {"label":"k23", "x":3, "y":2}, - {"label":"k24", "x":4, "y":2}, - {"label":"k25", "x":5, "y":2}, - {"label":"k26", "x":6, "y":2}, - {"label":"k27", "x":7, "y":2}, - {"label":"k28", "x":8, "y":2}, - {"label":"k29", "x":9, "y":2}, - {"label":"k2a", "x":10, "y":2}, - {"label":"k2b", "x":11, "y":2}, - {"label":"k30", "x":0, "y":3}, - {"label":"k31", "x":1, "y":3}, - {"label":"k32", "x":2, "y":3}, - {"label":"k33", "x":3, "y":3}, - {"label":"k34", "x":4, "y":3}, - {"label":"k35", "x":5, "y":3}, - {"label":"k36", "x":6, "y":3}, - {"label":"k37", "x":7, "y":3}, - {"label":"k38", "x":8, "y":3}, - {"label":"k39", "x":9, "y":3}, - {"label":"k3a", "x":10, "y":3}, - {"label":"k3b", "x":11, "y":3}, - {"label":"k40", "x":0, "y":4}, - {"label":"k41", "x":1, "y":4}, - {"label":"k42", "x":2, "y":4}, - {"label":"k43", "x":3, "y":4}, - {"label":"k44", "x":4, "y":4, "w":2}, - {"label":"k46", "x":6, "y":4, "w":2}, - {"label":"k48", "x":8, "y":4}, - {"label":"k49", "x":9, "y":4}, - {"label":"k4a", "x":10, "y":4}, - {"label":"k4b", "x":11, "y":4} - ] - }, - "LAYOUT_ortho_5x12": { - "key_count": 60, - "layout": [ - {"label":"k00", "x":0, "y":0}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":2, "y":0}, - {"label":"k03", "x":3, "y":0}, - {"label":"k04", "x":4, "y":0}, - {"label":"k05", "x":5, "y":0}, - {"label":"k06", "x":6, "y":0}, - {"label":"k07", "x":7, "y":0}, - {"label":"k08", "x":8, "y":0}, - {"label":"k09", "x":9, "y":0}, - {"label":"k0a", "x":10, "y":0}, - {"label":"k0b", "x":11, "y":0}, - {"label":"k10", "x":0, "y":1}, - {"label":"k11", "x":1, "y":1}, - {"label":"k12", "x":2, "y":1}, - {"label":"k13", "x":3, "y":1}, - {"label":"k14", "x":4, "y":1}, - {"label":"k15", "x":5, "y":1}, - {"label":"k16", "x":6, "y":1}, - {"label":"k17", "x":7, "y":1}, - {"label":"k18", "x":8, "y":1}, - {"label":"k19", "x":9, "y":1}, - {"label":"k1a", "x":10, "y":1}, - {"label":"k1b", "x":11, "y":1}, - {"label":"k20", "x":0, "y":2}, - {"label":"k21", "x":1, "y":2}, - {"label":"k22", "x":2, "y":2}, - {"label":"k23", "x":3, "y":2}, - {"label":"k24", "x":4, "y":2}, - {"label":"k25", "x":5, "y":2}, - {"label":"k26", "x":6, "y":2}, - {"label":"k27", "x":7, "y":2}, - {"label":"k28", "x":8, "y":2}, - {"label":"k29", "x":9, "y":2}, - {"label":"k2a", "x":10, "y":2}, - {"label":"k2b", "x":11, "y":2}, - {"label":"k30", "x":0, "y":3}, - {"label":"k31", "x":1, "y":3}, - {"label":"k32", "x":2, "y":3}, - {"label":"k33", "x":3, "y":3}, - {"label":"k34", "x":4, "y":3}, - {"label":"k35", "x":5, "y":3}, - {"label":"k36", "x":6, "y":3}, - {"label":"k37", "x":7, "y":3}, - {"label":"k38", "x":8, "y":3}, - {"label":"k39", "x":9, "y":3}, - {"label":"k3a", "x":10, "y":3}, - {"label":"k3b", "x":11, "y":3}, - {"label":"k40", "x":0, "y":4}, - {"label":"k41", "x":1, "y":4}, - {"label":"k42", "x":2, "y":4}, - {"label":"k43", "x":3, "y":4}, - {"label":"k44", "x":4, "y":4}, - {"label":"k45", "x":5, "y":4}, - {"label":"k46", "x":6, "y":4}, - {"label":"k47", "x":7, "y":4}, - {"label":"k48", "x":8, "y":4}, - {"label":"k49", "x":9, "y":4}, - {"label":"k4a", "x":10, "y":4}, - {"label":"k4b", "x":11, "y":4} - ] + "keyboard_name": "Preonic rev. 3", + "keyboard_folder": "preonic/rev3", + "url": "https://olkb.com/preonic", + "maintainer": "jackhumbert", + "width": 12, + "height": 5, + "layouts": { + "LAYOUT_preonic_1x2uC": { + "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": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4, "w": 2}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + }, + "LAYOUT_preonic_1x2uR": { + "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": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4}, + {"x": 6, "y": 4, "w": 2}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + }, + "LAYOUT_preonic_1x2uL": { + "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": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4, "w": 2}, + {"x": 6, "y": 4}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + }, + "LAYOUT_preonic_2x2u": { + "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": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4, "w": 2}, + {"x": 6, "y": 4, "w": 2}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + }, + "LAYOUT_ortho_5x12": { + "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": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4}, + {"x": 6, "y": 4}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + } } - } } diff --git a/keyboards/preonic/rev3/rev3.h b/keyboards/preonic/rev3/rev3.h index af97239fd117..e6462d5b751f 100644 --- a/keyboards/preonic/rev3/rev3.h +++ b/keyboards/preonic/rev3/rev3.h @@ -18,106 +18,97 @@ #include "preonic.h" -#ifndef __AVR__ // Preonic rev. 3 and later +#define LAYOUT_preonic_1x2uC( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \ +) { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k06, k07, k08, k09, k0a, k0b }, \ + { k16, k17, k18, k19, k1a, k1b }, \ + { k26, k27, k28, k29, k2a, k2b }, \ + { k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k49, k4a, k4b }, \ + { k45, k47, k48, k43, k44, k45 } \ +} - #define LAYOUT_preonic_1x2uC( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05 }, \ - { k10, k11, k12, k13, k14, k15 }, \ - { k20, k21, k22, k23, k24, k25 }, \ - { k30, k31, k32, k33, k34, k35 }, \ - { k06, k07, k08, k09, k0a, k0b }, \ - { k16, k17, k18, k19, k1a, k1b }, \ - { k26, k27, k28, k29, k2a, k2b }, \ - { k36, k37, k38, k39, k3a, k3b }, \ - { k40, k41, k42, k49, k4a, k4b }, \ - { k45, k47, k48, k43, k44, k45 } \ - } +#define LAYOUT_preonic_1x2uR( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \ + ) { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k06, k07, k08, k09, k0a, k0b }, \ + { k16, k17, k18, k19, k1a, k1b }, \ + { k26, k27, k28, k29, k2a, k2b }, \ + { k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k49, k4a, k4b }, \ + { k47, k47, k48, k43, k44, k45 } \ +} - #define LAYOUT_preonic_1x2uR( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05 }, \ - { k10, k11, k12, k13, k14, k15 }, \ - { k20, k21, k22, k23, k24, k25 }, \ - { k30, k31, k32, k33, k34, k35 }, \ - { k06, k07, k08, k09, k0a, k0b }, \ - { k16, k17, k18, k19, k1a, k1b }, \ - { k26, k27, k28, k29, k2a, k2b }, \ - { k36, k37, k38, k39, k3a, k3b }, \ - { k40, k41, k42, k49, k4a, k4b }, \ - { k47, k47, k48, k43, k44, k45 } \ - } +#define LAYOUT_preonic_1x2uL( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k46, k47, k48, k49, k4a, k4b \ +) { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k06, k07, k08, k09, k0a, k0b }, \ + { k16, k17, k18, k19, k1a, k1b }, \ + { k26, k27, k28, k29, k2a, k2b }, \ + { k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k49, k4a, k4b }, \ + { k46, k47, k48, k43, k44, k44 } \ +} - #define LAYOUT_preonic_1x2uL( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k46, k47, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05 }, \ - { k10, k11, k12, k13, k14, k15 }, \ - { k20, k21, k22, k23, k24, k25 }, \ - { k30, k31, k32, k33, k34, k35 }, \ - { k06, k07, k08, k09, k0a, k0b }, \ - { k16, k17, k18, k19, k1a, k1b }, \ - { k26, k27, k28, k29, k2a, k2b }, \ - { k36, k37, k38, k39, k3a, k3b }, \ - { k40, k41, k42, k49, k4a, k4b }, \ - { k46, k47, k48, k43, k44, k44 } \ - } +#define LAYOUT_preonic_2x2u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k46, k48, k49, k4a, k4b \ +) { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k06, k07, k08, k09, k0a, k0b }, \ + { k16, k17, k18, k19, k1a, k1b }, \ + { k26, k27, k28, k29, k2a, k2b }, \ + { k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k49, k4a, k4b }, \ + { k46, k46, k48, k43, k44, k44 } \ +} - #define LAYOUT_preonic_2x2u( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k46, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05 }, \ - { k10, k11, k12, k13, k14, k15 }, \ - { k20, k21, k22, k23, k24, k25 }, \ - { k30, k31, k32, k33, k34, k35 }, \ - { k06, k07, k08, k09, k0a, k0b }, \ - { k16, k17, k18, k19, k1a, k1b }, \ - { k26, k27, k28, k29, k2a, k2b }, \ - { k36, k37, k38, k39, k3a, k3b }, \ - { k40, k41, k42, k49, k4a, k4b }, \ - { k46, k46, k48, k43, k44, k44 } \ - } - - #define LAYOUT_preonic_grid( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05 }, \ - { k10, k11, k12, k13, k14, k15 }, \ - { k20, k21, k22, k23, k24, k25 }, \ - { k30, k31, k32, k33, k34, k35 }, \ - { k06, k07, k08, k09, k0a, k0b }, \ - { k16, k17, k18, k19, k1a, k1b }, \ - { k26, k27, k28, k29, k2a, k2b }, \ - { k36, k37, k38, k39, k3a, k3b }, \ - { k40, k41, k42, k49, k4a, k4b }, \ - { k46, k47, k48, k43, k44, k45 } \ - } - -#endif +#define LAYOUT_ortho_5x12( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \ +) { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k06, k07, k08, k09, k0a, k0b }, \ + { k16, k17, k18, k19, k1a, k1b }, \ + { k26, k27, k28, k29, k2a, k2b }, \ + { k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k49, k4a, k4b }, \ + { k46, k47, k48, k43, k44, k45 } \ +} From ed528403fd768e804887b957891b7a16319ae4dc Mon Sep 17 00:00:00 2001 From: Maarten Dekkers Date: Thu, 18 Jun 2020 06:30:34 +0200 Subject: [PATCH 004/154] [Keyboard] Add Eon87 (#9337) Co-authored-by: Maarten Dekkers --- keyboards/maartenwut/eon87/config.h | 220 +++++++++++++ keyboards/maartenwut/eon87/eon87.c | 16 + keyboards/maartenwut/eon87/eon87.h | 79 +++++ keyboards/maartenwut/eon87/info.json | 301 ++++++++++++++++++ .../maartenwut/eon87/keymaps/default/keymap.c | 42 +++ .../eon87/keymaps/default/readme.md | 1 + .../maartenwut/eon87/keymaps/via/keymap.c | 50 +++ .../maartenwut/eon87/keymaps/via/rules.mk | 2 + keyboards/maartenwut/eon87/readme.md | 13 + keyboards/maartenwut/eon87/rules.mk | 34 ++ 10 files changed, 758 insertions(+) create mode 100644 keyboards/maartenwut/eon87/config.h create mode 100644 keyboards/maartenwut/eon87/eon87.c create mode 100644 keyboards/maartenwut/eon87/eon87.h create mode 100644 keyboards/maartenwut/eon87/info.json create mode 100644 keyboards/maartenwut/eon87/keymaps/default/keymap.c create mode 100644 keyboards/maartenwut/eon87/keymaps/default/readme.md create mode 100644 keyboards/maartenwut/eon87/keymaps/via/keymap.c create mode 100644 keyboards/maartenwut/eon87/keymaps/via/rules.mk create mode 100644 keyboards/maartenwut/eon87/readme.md create mode 100644 keyboards/maartenwut/eon87/rules.mk diff --git a/keyboards/maartenwut/eon87/config.h b/keyboards/maartenwut/eon87/config.h new file mode 100644 index 000000000000..14fec2e584c0 --- /dev/null +++ b/keyboards/maartenwut/eon87/config.h @@ -0,0 +1,220 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4705 +#define PRODUCT_ID 0xAA6B +#define DEVICE_VER 0x0001 +#define MANUFACTURER Maartenwut +#define PRODUCT Eon87 +#define DESCRIPTION A TKL PCB + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +/* + * 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) + * +*/ +#define MATRIX_ROW_PINS {B1,B2,B3,D4,D1,D5} +#define MATRIX_COL_PINS {F0,F1,F4,F5,F6,F7,C7,C6,B6,B5,B4,D7,D6,E6,B7,D3,D2} +#define UNUSED_PINS {B0} + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + #define RGB_DI_PIN D0 +// #ifdef RGB_DI_PIN + #define RGBLED_NUM 12 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose 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 +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* 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 1 + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/maartenwut/eon87/eon87.c b/keyboards/maartenwut/eon87/eon87.c new file mode 100644 index 000000000000..4f6b4037621d --- /dev/null +++ b/keyboards/maartenwut/eon87/eon87.c @@ -0,0 +1,16 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "eon87.h" diff --git a/keyboards/maartenwut/eon87/eon87.h b/keyboards/maartenwut/eon87/eon87.h new file mode 100644 index 000000000000..08aa3d55b00b --- /dev/null +++ b/keyboards/maartenwut/eon87/eon87.h @@ -0,0 +1,79 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k0d, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k54, k56, k58, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX, XXX, XXX }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, XXX, k4f, XXX }, \ + { k50, k51, k52, XXX, k54, XXX, k56, XXX, k58, XXX, k5a, k5b, k5c, k5d, k5e, k5f, k5g } \ +} + +#define LAYOUT_tkl_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4f, \ + k50, k51, k52, k56, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, XXX, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX, XXX, XXX }, \ + { k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, XXX, XXX, k4f, XXX }, \ + { k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d, k5e, k5f, k5g } \ +} + +#define LAYOUT_tkl_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4f, \ + k50, k51, k52, k56, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, XXX, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, XXX, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX, XXX, XXX }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, XXX, XXX, k4f, XXX }, \ + { k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d, k5e, k5f, k5g } \ +} diff --git a/keyboards/maartenwut/eon87/info.json b/keyboards/maartenwut/eon87/info.json new file mode 100644 index 000000000000..8d7dadfab51d --- /dev/null +++ b/keyboards/maartenwut/eon87/info.json @@ -0,0 +1,301 @@ +{ + "keyboard_name": "Eon87", + "url": "", + "maintainer": "qmk", + "width": 18.25, + "height": 6.25, + "layouts": { + "LAYOUT_all": { + "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":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":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":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":3.25, "w":1.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":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} + ] + }, + "LAYOUT_tkl_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":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":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":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":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":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} + ] + }, + "LAYOUT_tkl_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":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":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":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":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":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} + ] + } + } +} diff --git a/keyboards/maartenwut/eon87/keymaps/default/keymap.c b/keyboards/maartenwut/eon87/keymaps/default/keymap.c new file mode 100644 index 000000000000..4eaff0f4a522 --- /dev/null +++ b/keyboards/maartenwut/eon87/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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. + +#define _MA 0 //Main layer +#define _FN 1 //Main layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_MA] = 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_SLCK, 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_BSLS, 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_BSLS, 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(_FN), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT), +[_FN] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; \ No newline at end of file diff --git a/keyboards/maartenwut/eon87/keymaps/default/readme.md b/keyboards/maartenwut/eon87/keymaps/default/readme.md new file mode 100644 index 000000000000..a70270cfacca --- /dev/null +++ b/keyboards/maartenwut/eon87/keymaps/default/readme.md @@ -0,0 +1 @@ +This is the default keymap for the Eon87. diff --git a/keyboards/maartenwut/eon87/keymaps/via/keymap.c b/keyboards/maartenwut/eon87/keymaps/via/keymap.c new file mode 100644 index 000000000000..67543b54cc30 --- /dev/null +++ b/keyboards/maartenwut/eon87/keymaps/via/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_SLCK, 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_BSLS, 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_BSLS, 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_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT), +[1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +[2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +[3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; \ No newline at end of file diff --git a/keyboards/maartenwut/eon87/keymaps/via/rules.mk b/keyboards/maartenwut/eon87/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/maartenwut/eon87/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/maartenwut/eon87/readme.md b/keyboards/maartenwut/eon87/readme.md new file mode 100644 index 000000000000..bfd5afd1a9b9 --- /dev/null +++ b/keyboards/maartenwut/eon87/readme.md @@ -0,0 +1,13 @@ +# Eon87 + +## Support +* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) +* Hardware Supported: Eon87 +* Hardware Availability: [maartenwut.com](https://maartenwut.com) + +## Build +Make example for this keyboard (after setting up your build environment): + + make maartenwut/eon87: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/maartenwut/eon87/rules.mk b/keyboards/maartenwut/eon87/rules.mk new file mode 100644 index 000000000000..65cfca7d4bb5 --- /dev/null +++ b/keyboards/maartenwut/eon87/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = qmk-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +LAYOUTS = tkl_ansi tkl_iso From 30fd69886dcf069a4e0d2c02ce18803500fcad2e Mon Sep 17 00:00:00 2001 From: Gregorio <38576492+ohchiko@users.noreply.github.com> Date: Thu, 18 Jun 2020 11:39:16 +0700 Subject: [PATCH 005/154] [Keyboard] Add Mixi (#9364) * [Keyboard] Add Mixi Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/mixi/config.h | 47 +++++++++ keyboards/mixi/info.json | 22 +++++ keyboards/mixi/keymaps/default/keymap.c | 116 +++++++++++++++++++++++ keyboards/mixi/keymaps/default/readme.md | 10 ++ keyboards/mixi/keymaps/via/keymap.c | 116 +++++++++++++++++++++++ keyboards/mixi/keymaps/via/rules.mk | 2 + keyboards/mixi/mixi.c | 13 +++ keyboards/mixi/mixi.h | 13 +++ keyboards/mixi/readme.md | 15 +++ keyboards/mixi/rules.mk | 27 ++++++ 10 files changed, 381 insertions(+) create mode 100644 keyboards/mixi/config.h create mode 100644 keyboards/mixi/info.json create mode 100644 keyboards/mixi/keymaps/default/keymap.c create mode 100644 keyboards/mixi/keymaps/default/readme.md create mode 100644 keyboards/mixi/keymaps/via/keymap.c create mode 100644 keyboards/mixi/keymaps/via/rules.mk create mode 100644 keyboards/mixi/mixi.c create mode 100644 keyboards/mixi/mixi.h create mode 100644 keyboards/mixi/readme.md create mode 100644 keyboards/mixi/rules.mk diff --git a/keyboards/mixi/config.h b/keyboards/mixi/config.h new file mode 100644 index 000000000000..cb89dd2cb0ae --- /dev/null +++ b/keyboards/mixi/config.h @@ -0,0 +1,47 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4752 +#define PRODUCT_ID 0x4D49 +#define DEVICE_VER 0x0001 +#define MANUFACTURER gregorio +#define PRODUCT Mixi +#define DESCRIPTION Mixi macropad by gregorio + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 3 + +/* Keyboard Matrix Assignments */ +#define DIRECT_PINS { \ + { D1, D4, F4 }, \ + { D0, B4, F5 }, \ + { C6, F7, B6 } \ +} + +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F4 } + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* 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_DI_PIN B5 +#ifdef RGB_DI_PIN +#define RGBLED_NUM 5 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYER_BLINK +#endif diff --git a/keyboards/mixi/info.json b/keyboards/mixi/info.json new file mode 100644 index 000000000000..123e23dc6be2 --- /dev/null +++ b/keyboards/mixi/info.json @@ -0,0 +1,22 @@ +{ + "keyboard_name": "Mixi", + "url": "https://tokopedia.com/sell-stuffs", + "maintainer": "ohchiko", + "width": 3, + "height": 3, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2} + ] + } + } +} diff --git a/keyboards/mixi/keymaps/default/keymap.c b/keyboards/mixi/keymaps/default/keymap.c new file mode 100644 index 000000000000..806a7a924c19 --- /dev/null +++ b/keyboards/mixi/keymaps/default/keymap.c @@ -0,0 +1,116 @@ +#include QMK_KEYBOARD_H + +// please change this value to the desired layer definitions +#define LAYERNUM 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + * | Knob: Layer +/- | + * .---------------------------------------. + * | Mute | Play/Pause | Hold: Layer 2 | + * |----------|------------|---------------| + * | Previous | Up | Next | + * |----------|------------|---------------| + * | Left | Down | Right | + * '---------------------------------------' + */ + [0] = + LAYOUT( + KC_MUTE, KC_MPLY, MO(2), + KC_MNXT, KC_UP , KC_MPRV , + KC_LEFT, KC_DOWN , KC_RGHT + ), + + /* + * .-----------------------. + * | NUM 7 | NUM 8 | NUM 9 | + * |-------|-------|-------| + * | NUM 4 | NUM 5 | NUM 6 | + * |-------|-------|-------| + * | NUM 1 | NUM 2 | NUM 3 | + * '-----------------------' + */ + [1] = + LAYOUT( + KC_P7, KC_P8, KC_P8, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3 + ), + + /* + * | Knob: Volume +/- | + * .--------------------------------------. + * | N/A | N/A | Hold: Layer 2 | + * |--------------|-------|---------------| + * | RESET EEPROM | RESET | DEBUG MODE | + * |--------------|-------|---------------| + * | N/A | N/A | N/A | + * '--------------------------------------' + */ + [2] = + LAYOUT( + KC_NO , KC_NO, KC_TRNS, + EEP_RST, RESET, DEBUG , + KC_NO , KC_NO, KC_NO + ) + +}; + +const rgblight_segment_t PROGMEM _base_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, RGBLED_NUM, HSV_WHITE} + ); +const rgblight_segment_t PROGMEM _middle_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, RGBLED_NUM, HSV_GREEN} + ); +const rgblight_segment_t PROGMEM _top_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, RGBLED_NUM, HSV_RED} + ); + +const rgblight_segment_t* const PROGMEM _rgb_layers[] = +RGBLIGHT_LAYERS_LIST( + _base_layer, + _middle_layer, + _top_layer + ); + +void keyboard_post_init_user(void) { + rgblight_layers = _rgb_layers; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + + switch (get_highest_layer(state)) { + case 0: + rgblight_blink_layer(0, 500); + break; + case 1: + rgblight_blink_layer(1, 500); + break; + case 2: + rgblight_blink_layer(2, 500); + break; + } + return state; +} + +uint8_t selected_layer = 0; +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (layer_state_is(2)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else { + if (clockwise && selected_layer < (LAYERNUM-2)) { /* Prevent switch to layer 2 using encoder */ + selected_layer++; + layer_move(selected_layer); + } else if (!clockwise && selected_layer > 0) { + selected_layer--; + layer_move(selected_layer); + } + } + } +} diff --git a/keyboards/mixi/keymaps/default/readme.md b/keyboards/mixi/keymaps/default/readme.md new file mode 100644 index 000000000000..863fa6f5d68d --- /dev/null +++ b/keyboards/mixi/keymaps/default/readme.md @@ -0,0 +1,10 @@ +![Mixi Layout Image](https://i.imgur.com/UIXj9O6.png) + +# Default Mixi Layout + +This is the default layout that comes flashed on every Mixi macropad. Layer 1 +and Layer 2 are accessible by rotating the encoder. Layer 3 is not accessible +by the encoder, instead is accessible by holding the [0,2] key on Layer 1. While +Layer 3 is active, rotating the encoder will results in increasing/decreasing +media volume. This layout is expected the encoder is on the left side or [0,0] +key. diff --git a/keyboards/mixi/keymaps/via/keymap.c b/keyboards/mixi/keymaps/via/keymap.c new file mode 100644 index 000000000000..806a7a924c19 --- /dev/null +++ b/keyboards/mixi/keymaps/via/keymap.c @@ -0,0 +1,116 @@ +#include QMK_KEYBOARD_H + +// please change this value to the desired layer definitions +#define LAYERNUM 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + * | Knob: Layer +/- | + * .---------------------------------------. + * | Mute | Play/Pause | Hold: Layer 2 | + * |----------|------------|---------------| + * | Previous | Up | Next | + * |----------|------------|---------------| + * | Left | Down | Right | + * '---------------------------------------' + */ + [0] = + LAYOUT( + KC_MUTE, KC_MPLY, MO(2), + KC_MNXT, KC_UP , KC_MPRV , + KC_LEFT, KC_DOWN , KC_RGHT + ), + + /* + * .-----------------------. + * | NUM 7 | NUM 8 | NUM 9 | + * |-------|-------|-------| + * | NUM 4 | NUM 5 | NUM 6 | + * |-------|-------|-------| + * | NUM 1 | NUM 2 | NUM 3 | + * '-----------------------' + */ + [1] = + LAYOUT( + KC_P7, KC_P8, KC_P8, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3 + ), + + /* + * | Knob: Volume +/- | + * .--------------------------------------. + * | N/A | N/A | Hold: Layer 2 | + * |--------------|-------|---------------| + * | RESET EEPROM | RESET | DEBUG MODE | + * |--------------|-------|---------------| + * | N/A | N/A | N/A | + * '--------------------------------------' + */ + [2] = + LAYOUT( + KC_NO , KC_NO, KC_TRNS, + EEP_RST, RESET, DEBUG , + KC_NO , KC_NO, KC_NO + ) + +}; + +const rgblight_segment_t PROGMEM _base_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, RGBLED_NUM, HSV_WHITE} + ); +const rgblight_segment_t PROGMEM _middle_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, RGBLED_NUM, HSV_GREEN} + ); +const rgblight_segment_t PROGMEM _top_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, RGBLED_NUM, HSV_RED} + ); + +const rgblight_segment_t* const PROGMEM _rgb_layers[] = +RGBLIGHT_LAYERS_LIST( + _base_layer, + _middle_layer, + _top_layer + ); + +void keyboard_post_init_user(void) { + rgblight_layers = _rgb_layers; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + + switch (get_highest_layer(state)) { + case 0: + rgblight_blink_layer(0, 500); + break; + case 1: + rgblight_blink_layer(1, 500); + break; + case 2: + rgblight_blink_layer(2, 500); + break; + } + return state; +} + +uint8_t selected_layer = 0; +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (layer_state_is(2)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else { + if (clockwise && selected_layer < (LAYERNUM-2)) { /* Prevent switch to layer 2 using encoder */ + selected_layer++; + layer_move(selected_layer); + } else if (!clockwise && selected_layer > 0) { + selected_layer--; + layer_move(selected_layer); + } + } + } +} diff --git a/keyboards/mixi/keymaps/via/rules.mk b/keyboards/mixi/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/mixi/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mixi/mixi.c b/keyboards/mixi/mixi.c new file mode 100644 index 000000000000..533cf3b88179 --- /dev/null +++ b/keyboards/mixi/mixi.c @@ -0,0 +1,13 @@ +#include "mixi.h" + +void eeconfig_init_kb(void) { +#ifdef RGBLIGHT_ENABLE + rgblight_enable(); // Enable RGB underglow by default +#ifdef RGBLIGHT_ANIMATIONS + rgblight_mode(RGBLIGHT_MODE_TWINKLE + 5); // Set to RGB_TWINKLE animation by default +#endif +#endif + + eeconfig_update_kb(0); + eeconfig_init_user(); +} diff --git a/keyboards/mixi/mixi.h b/keyboards/mixi/mixi.h new file mode 100644 index 000000000000..8b2bc7090bab --- /dev/null +++ b/keyboards/mixi/mixi.h @@ -0,0 +1,13 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, \ + K10, K11, K12, \ + K20, K21, K22 \ + ) { \ + { K00, K01, K02 }, \ + { K10, K11, K12 }, \ + { K20, K21, K22 } \ +} diff --git a/keyboards/mixi/readme.md b/keyboards/mixi/readme.md new file mode 100644 index 000000000000..4c911db57086 --- /dev/null +++ b/keyboards/mixi/readme.md @@ -0,0 +1,15 @@ +# Mixi + +![Mixi](https://i.imgur.com/GPO6Khu.jpg) + +A mini 3x3 macropad with rotary encoders support and RGB underglow and also tray mount support. Currently the PCB and kits can only be purchased in Indonesia. + +* Keyboard Maintainer: [ohchiko](https://github.com/ohchiko) +* Hardware Supported: Mixi PCB, Arduino Pro Micro +* Hardware Availability: [Tokopedia/Sell Stuffs](https://tokopedia.com/sell-stuffs) (Indonesia only). + +Make example for this keyboard (after setting up your build environment): + + make mixi: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/mixi/rules.mk b/keyboards/mixi/rules.mk new file mode 100644 index 000000000000..99b1f1cbc5ed --- /dev/null +++ b/keyboards/mixi/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = no # USB 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 +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +ENCODER_ENABLE = yes +AUDIO_ENABLE = no From 67f374029df96bec9f5adc26e23a7d7e1139a129 Mon Sep 17 00:00:00 2001 From: unicorn855 Date: Thu, 18 Jun 2020 06:52:33 +0200 Subject: [PATCH 006/154] [Keyboard] added VIA support for HotDox (#9377) * added VIA support for HotDox * Update keyboards/hotdox/keymaps/via/keymap.c Thank you drashna :) Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre --- keyboards/hotdox/config.h | 6 +- keyboards/hotdox/keymaps/via/config.h | 4 + keyboards/hotdox/keymaps/via/keymap.c | 210 ++++++++++++++++++++++++++ keyboards/hotdox/keymaps/via/rules.mk | 12 ++ 4 files changed, 229 insertions(+), 3 deletions(-) create mode 100644 keyboards/hotdox/keymaps/via/config.h create mode 100644 keyboards/hotdox/keymaps/via/keymap.c create mode 100644 keyboards/hotdox/keymaps/via/rules.mk diff --git a/keyboards/hotdox/config.h b/keyboards/hotdox/config.h index ed15f4bb4a49..db162a0f7aa4 100644 --- a/keyboards/hotdox/config.h +++ b/keyboards/hotdox/config.h @@ -3,12 +3,12 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xE11D +#define VENDOR_ID 0x414B // 'AK' Alpaca Keyboards +#define PRODUCT_ID 0x0001 // sequentially numbered #define DEVICE_VER 0x0001 #define MANUFACTURER Z.P.Z.O. -#define PRODUCT HotDox +#define PRODUCT Alpaca Keyboards HotDox #define DESCRIPTION QMK keyboard firmware for HotDox /* key matrix size */ diff --git a/keyboards/hotdox/keymaps/via/config.h b/keyboards/hotdox/keymaps/via/config.h new file mode 100644 index 000000000000..2c143476a765 --- /dev/null +++ b/keyboards/hotdox/keymaps/via/config.h @@ -0,0 +1,4 @@ +#pragma once + +// place overrides here +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file diff --git a/keyboards/hotdox/keymaps/via/keymap.c b/keyboards/hotdox/keymaps/via/keymap.c new file mode 100644 index 000000000000..c90e4cbef305 --- /dev/null +++ b/keyboards/hotdox/keymaps/via/keymap.c @@ -0,0 +1,210 @@ +#include QMK_KEYBOARD_H +#include "version.h" + +//#define BASE 0 // default layer +//#define SYMB 1 // symbols +//#define MDIA 2 // media keys + +enum custom_keycodes { + VRSN = SAFE_RANGE, + RGB_SLD +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |ace | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[0] = LAYOUT_ergodox( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LT(1,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, LT(2, 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, KC_FN1, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,KC_TAB,KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,---------------------------------------------------. ,--------------------------------------------------. + * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | EEP_RST | | | | | | | . | 0 | = | | + * `-----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |Animat| | |Toggle|Solid | + * ,------|------|------| |------+------+------. + * |Bright|Bright| | | |Hue- |Hue+ | + * |ness- |ness+ |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[1] = 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, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[2] = 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, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +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; + break; + case RGB_SLD: + if (record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + rgblight_mode(1); + #endif + } + return false; + break; + } + return true; +} + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + + +// Runs constantly in the background, in a loop. +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) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } +}; diff --git a/keyboards/hotdox/keymaps/via/rules.mk b/keyboards/hotdox/keymaps/via/rules.mk new file mode 100644 index 000000000000..02752039c054 --- /dev/null +++ b/keyboards/hotdox/keymaps/via/rules.mk @@ -0,0 +1,12 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes + +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control + +LEADER_ENABLE = no +FAUXCLICKY_ENABLE = no +MIDI_ENABLE = no +BLUETOOTH_ENABLE = no +KEY_LOCK_ENABLE = no +TERMINAL_ENABLE = no \ No newline at end of file From 3e27ceee4220a56ec35d5567773cf9cda4b22842 Mon Sep 17 00:00:00 2001 From: yiancar Date: Thu, 18 Jun 2020 06:16:26 +0100 Subject: [PATCH 007/154] [Keyboard] Nebula12 keyboard (#9397) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- .../boards/ST_STM32F072B_DISCOVERY/board.c | 268 +++++ .../boards/ST_STM32F072B_DISCOVERY/board.h | 940 ++++++++++++++++++ .../boards/ST_STM32F072B_DISCOVERY/board.mk | 5 + .../ST_STM32F072B_DISCOVERY/cfg/board.chcfg | 703 +++++++++++++ keyboards/nebula12/bootloader_defs.h | 7 + keyboards/nebula12/chconf.h | 714 +++++++++++++ keyboards/nebula12/config.h | 169 ++++ keyboards/nebula12/halconf.h | 525 ++++++++++ keyboards/nebula12/info.json | 14 + keyboards/nebula12/keymaps/default/keymap.c | 42 + keyboards/nebula12/keymaps/default/readme.md | 7 + keyboards/nebula12/keymaps/via/keymap.c | 42 + keyboards/nebula12/keymaps/via/readme.md | 5 + keyboards/nebula12/keymaps/via/rules.mk | 1 + keyboards/nebula12/mcuconf.h | 176 ++++ keyboards/nebula12/nebula12.c | 20 + keyboards/nebula12/nebula12.h | 35 + keyboards/nebula12/readme.md | 32 + keyboards/nebula12/rules.mk | 34 + keyboards/wilba_tech/wt_rgb_backlight.c | 109 +- 20 files changed, 3839 insertions(+), 9 deletions(-) create mode 100644 keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.c create mode 100644 keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.h create mode 100644 keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.mk create mode 100644 keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg create mode 100644 keyboards/nebula12/bootloader_defs.h create mode 100644 keyboards/nebula12/chconf.h create mode 100755 keyboards/nebula12/config.h create mode 100644 keyboards/nebula12/halconf.h create mode 100755 keyboards/nebula12/info.json create mode 100755 keyboards/nebula12/keymaps/default/keymap.c create mode 100755 keyboards/nebula12/keymaps/default/readme.md create mode 100755 keyboards/nebula12/keymaps/via/keymap.c create mode 100755 keyboards/nebula12/keymaps/via/readme.md create mode 100755 keyboards/nebula12/keymaps/via/rules.mk create mode 100644 keyboards/nebula12/mcuconf.h create mode 100755 keyboards/nebula12/nebula12.c create mode 100755 keyboards/nebula12/nebula12.h create mode 100755 keyboards/nebula12/readme.md create mode 100755 keyboards/nebula12/rules.mk diff --git a/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.c b/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.c new file mode 100644 index 000000000000..7c09bd997cb1 --- /dev/null +++ b/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.c @@ -0,0 +1,268 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * This file has been automatically generated using ChibiStudio board + * generator plugin. Do not edit manually. + */ + +#include "hal.h" +#include "stm32_gpio.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver exported variables. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver local variables and types. */ +/*===========================================================================*/ + +/** + * @brief Type of STM32 GPIO port setup. + */ +typedef struct { + uint32_t moder; + uint32_t otyper; + uint32_t ospeedr; + uint32_t pupdr; + uint32_t odr; + uint32_t afrl; + uint32_t afrh; +} gpio_setup_t; + +/** + * @brief Type of STM32 GPIO initialization data. + */ +typedef struct { +#if STM32_HAS_GPIOA || defined(__DOXYGEN__) + gpio_setup_t PAData; +#endif +#if STM32_HAS_GPIOB || defined(__DOXYGEN__) + gpio_setup_t PBData; +#endif +#if STM32_HAS_GPIOC || defined(__DOXYGEN__) + gpio_setup_t PCData; +#endif +#if STM32_HAS_GPIOD || defined(__DOXYGEN__) + gpio_setup_t PDData; +#endif +#if STM32_HAS_GPIOE || defined(__DOXYGEN__) + gpio_setup_t PEData; +#endif +#if STM32_HAS_GPIOF || defined(__DOXYGEN__) + gpio_setup_t PFData; +#endif +#if STM32_HAS_GPIOG || defined(__DOXYGEN__) + gpio_setup_t PGData; +#endif +#if STM32_HAS_GPIOH || defined(__DOXYGEN__) + gpio_setup_t PHData; +#endif +#if STM32_HAS_GPIOI || defined(__DOXYGEN__) + gpio_setup_t PIData; +#endif +#if STM32_HAS_GPIOJ || defined(__DOXYGEN__) + gpio_setup_t PJData; +#endif +#if STM32_HAS_GPIOK || defined(__DOXYGEN__) + gpio_setup_t PKData; +#endif +} gpio_config_t; + +/** + * @brief STM32 GPIO static initialization data. + */ +static const gpio_config_t gpio_default_config = { +#if STM32_HAS_GPIOA + {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, + VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, +#endif +#if STM32_HAS_GPIOB + {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, + VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH}, +#endif +#if STM32_HAS_GPIOC + {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, + VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH}, +#endif +#if STM32_HAS_GPIOD + {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, + VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH}, +#endif +#if STM32_HAS_GPIOE + {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, + VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH}, +#endif +#if STM32_HAS_GPIOF + {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, + VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH}, +#endif +#if STM32_HAS_GPIOG + {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, + VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH}, +#endif +#if STM32_HAS_GPIOH + {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, + VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH}, +#endif +#if STM32_HAS_GPIOI + {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, + VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH}, +#endif +#if STM32_HAS_GPIOJ + {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR, + VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH}, +#endif +#if STM32_HAS_GPIOK + {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR, + VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH} +#endif +}; + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) { + + gpiop->OTYPER = config->otyper; + gpiop->OSPEEDR = config->ospeedr; + gpiop->PUPDR = config->pupdr; + gpiop->ODR = config->odr; + gpiop->AFRL = config->afrl; + gpiop->AFRH = config->afrh; + gpiop->MODER = config->moder; +} + +static void stm32_gpio_init(void) { + + /* Enabling GPIO-related clocks, the mask comes from the + registry header file.*/ + rccResetAHB(STM32_GPIO_EN_MASK); + rccEnableAHB(STM32_GPIO_EN_MASK, true); + + /* Initializing all the defined GPIO ports.*/ +#if STM32_HAS_GPIOA + gpio_init(GPIOA, &gpio_default_config.PAData); +#endif +#if STM32_HAS_GPIOB + gpio_init(GPIOB, &gpio_default_config.PBData); +#endif +#if STM32_HAS_GPIOC + gpio_init(GPIOC, &gpio_default_config.PCData); +#endif +#if STM32_HAS_GPIOD + gpio_init(GPIOD, &gpio_default_config.PDData); +#endif +#if STM32_HAS_GPIOE + gpio_init(GPIOE, &gpio_default_config.PEData); +#endif +#if STM32_HAS_GPIOF + gpio_init(GPIOF, &gpio_default_config.PFData); +#endif +#if STM32_HAS_GPIOG + gpio_init(GPIOG, &gpio_default_config.PGData); +#endif +#if STM32_HAS_GPIOH + gpio_init(GPIOH, &gpio_default_config.PHData); +#endif +#if STM32_HAS_GPIOI + gpio_init(GPIOI, &gpio_default_config.PIData); +#endif +#if STM32_HAS_GPIOJ + gpio_init(GPIOJ, &gpio_default_config.PJData); +#endif +#if STM32_HAS_GPIOK + gpio_init(GPIOK, &gpio_default_config.PKData); +#endif +} + +/*===========================================================================*/ +/* Driver interrupt handlers. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +/** + * @brief Early initialization code. + * @details GPIO ports and system clocks are initialized before everything + * else. + */ +void __early_init(void) { + extern void enter_bootloader_mode_if_requested(void); + enter_bootloader_mode_if_requested(); + stm32_gpio_init(); + stm32_clock_init(); +} + +#if HAL_USE_SDC || defined(__DOXYGEN__) +/** + * @brief SDC card detection. + */ +bool sdc_lld_is_card_inserted(SDCDriver *sdcp) { + + (void)sdcp; + /* TODO: Fill the implementation.*/ + return true; +} + +/** + * @brief SDC card write protection detection. + */ +bool sdc_lld_is_write_protected(SDCDriver *sdcp) { + + (void)sdcp; + /* TODO: Fill the implementation.*/ + return false; +} +#endif /* HAL_USE_SDC */ + +#if HAL_USE_MMC_SPI || defined(__DOXYGEN__) +/** + * @brief MMC_SPI card detection. + */ +bool mmc_lld_is_card_inserted(MMCDriver *mmcp) { + + (void)mmcp; + /* TODO: Fill the implementation.*/ + return true; +} + +/** + * @brief MMC_SPI card write protection detection. + */ +bool mmc_lld_is_write_protected(MMCDriver *mmcp) { + + (void)mmcp; + /* TODO: Fill the implementation.*/ + return false; +} +#endif + +/** + * @brief Board-specific initialization code. + * @todo Add your board-specific code, if any. + */ +void boardInit(void) { + SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; + SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); +} diff --git a/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.h b/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.h new file mode 100644 index 000000000000..57636d1f12f5 --- /dev/null +++ b/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.h @@ -0,0 +1,940 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * This file has been automatically generated using ChibiStudio board + * generator plugin. Do not edit manually. + */ + +#ifndef BOARD_H +#define BOARD_H + +/*===========================================================================*/ +/* Driver constants. */ +/*===========================================================================*/ + +/* + * Setup for ST STM32F072B-Discovery board. + */ + +/* + * Board identifier. + */ +#define BOARD_ST_STM32F072B_DISCOVERY +#define BOARD_NAME "ST STM32F072B-Discovery" + +/* + * Board oscillators-related settings. + * NOTE: HSE not fitted. + */ +#if !defined(STM32_LSECLK) +#define STM32_LSECLK 32768 +#endif + +#define STM32_LSEDRV (3U << 3U) + +#if !defined(STM32_HSECLK) +#define STM32_HSECLK 0U +#endif + +#define STM32_HSE_BYPASS + +/* + * MCU type as defined in the ST header. + */ +#define STM32F072xB + +/* + * IO pins assignments. + */ +#define GPIOA_BUTTON 0U +#define GPIOA_PIN1 1U +#define GPIOA_PIN2 2U +#define GPIOA_PIN3 3U +#define GPIOA_PIN4 4U +#define GPIOA_PIN5 5U +#define GPIOA_PIN6 6U +#define GPIOA_PIN7 7U +#define GPIOA_PIN8 8U +#define GPIOA_PIN9 9U +#define GPIOA_PIN10 10U +#define GPIOA_USB_DM 11U +#define GPIOA_USB_DP 12U +#define GPIOA_SWDIO 13U +#define GPIOA_SWCLK 14U +#define GPIOA_PIN15 15U + +#define GPIOB_PIN0 0U +#define GPIOB_PIN1 1U +#define GPIOB_PIN2 2U +#define GPIOB_PIN3 3U +#define GPIOB_PIN4 4U +#define GPIOB_PIN5 5U +#define GPIOB_PIN6 6U +#define GPIOB_PIN7 7U +#define GPIOB_PIN8 8U +#define GPIOB_PIN9 9U +#define GPIOB_PIN10 10U +#define GPIOB_PIN11 11U +#define GPIOB_PIN12 12U +#define GPIOB_SPI2_SCK 13U +#define GPIOB_SPI2_MISO 14U +#define GPIOB_SPI2_MOSI 15U + +#define GPIOC_MEMS_CS 0U +#define GPIOC_PIN1 1U +#define GPIOC_PIN2 2U +#define GPIOC_PIN3 3U +#define GPIOC_PIN4 4U +#define GPIOC_PIN5 5U +#define GPIOC_LED_RED 6U +#define GPIOC_LED_BLUE 7U +#define GPIOC_LED_ORANGE 8U +#define GPIOC_LED_GREEN 9U +#define GPIOC_PIN10 10U +#define GPIOC_PIN11 11U +#define GPIOC_PIN12 12U +#define GPIOC_PIN13 13U +#define GPIOC_OSC32_IN 14U +#define GPIOC_OSC32_OUT 15U + +#define GPIOD_PIN0 0U +#define GPIOD_PIN1 1U +#define GPIOD_PIN2 2U +#define GPIOD_PIN3 3U +#define GPIOD_PIN4 4U +#define GPIOD_PIN5 5U +#define GPIOD_PIN6 6U +#define GPIOD_PIN7 7U +#define GPIOD_PIN8 8U +#define GPIOD_PIN9 9U +#define GPIOD_PIN10 10U +#define GPIOD_PIN11 11U +#define GPIOD_PIN12 12U +#define GPIOD_PIN13 13U +#define GPIOD_PIN14 14U +#define GPIOD_PIN15 15U + +#define GPIOE_PIN0 0U +#define GPIOE_PIN1 1U +#define GPIOE_PIN2 2U +#define GPIOE_PIN3 3U +#define GPIOE_PIN4 4U +#define GPIOE_PIN5 5U +#define GPIOE_PIN6 6U +#define GPIOE_PIN7 7U +#define GPIOE_PIN8 8U +#define GPIOE_PIN9 9U +#define GPIOE_PIN10 10U +#define GPIOE_PIN11 11U +#define GPIOE_PIN12 12U +#define GPIOE_PIN13 13U +#define GPIOE_PIN14 14U +#define GPIOE_PIN15 15U + +#define GPIOF_OSC_IN 0U +#define GPIOF_OSC_OUT 1U +#define GPIOF_PIN2 2U +#define GPIOF_PIN3 3U +#define GPIOF_PIN4 4U +#define GPIOF_PIN5 5U +#define GPIOF_PIN6 6U +#define GPIOF_PIN7 7U +#define GPIOF_PIN8 8U +#define GPIOF_PIN9 9U +#define GPIOF_PIN10 10U +#define GPIOF_PIN11 11U +#define GPIOF_PIN12 12U +#define GPIOF_PIN13 13U +#define GPIOF_PIN14 14U +#define GPIOF_PIN15 15U + +/* + * IO lines assignments. + */ +#define LINE_BUTTON PAL_LINE(GPIOA, 0U) +#define LINE_USB_DM PAL_LINE(GPIOA, 11U) +#define LINE_USB_DP PAL_LINE(GPIOA, 12U) +#define LINE_SWDIO PAL_LINE(GPIOA, 13U) +#define LINE_SWCLK PAL_LINE(GPIOA, 14U) +#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U) +#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U) +#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U) +#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U) +#define LINE_LED_RED PAL_LINE(GPIOC, 6U) +#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U) +#define LINE_LED_ORANGE PAL_LINE(GPIOC, 8U) +#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U) +#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U) +#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U) +#define LINE_OSC_IN PAL_LINE(GPIOF, 0U) +#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U) + +/*===========================================================================*/ +/* Driver pre-compile time settings. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Derived constants and error checks. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver data structures and types. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver macros. */ +/*===========================================================================*/ + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * Please refer to the STM32 Reference Manual for details. + */ +#define PIN_MODE_INPUT(n) (0U << ((n) * 2U)) +#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U)) +#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U)) +#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U)) +#define PIN_ODR_LOW(n) (0U << (n)) +#define PIN_ODR_HIGH(n) (1U << (n)) +#define PIN_OTYPE_PUSHPULL(n) (0U << (n)) +#define PIN_OTYPE_OPENDRAIN(n) (1U << (n)) +#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U)) +#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U)) +#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U)) +#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U)) +#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U)) +#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U)) +#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U)) +#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U)) + +/* + * GPIOA setup: + * + * PA0 - BUTTON (input floating). + * PA1 - PIN1 (input pullup). + * PA2 - PIN2 (input pullup). + * PA3 - PIN3 (input pullup). + * PA4 - PIN4 (input pullup). + * PA5 - PIN5 (input pullup). + * PA6 - PIN6 (input pullup). + * PA7 - PIN7 (input pullup). + * PA8 - PIN8 (input pullup). + * PA9 - PIN9 (input pullup). + * PA10 - PIN10 (input pullup). + * PA11 - USB_DM (input floating). + * PA12 - USB_DP (input floating). + * PA13 - SWDIO (alternate 0). + * PA14 - SWCLK (alternate 0). + * PA15 - PIN15 (input pullup). + */ +#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \ + PIN_MODE_INPUT(GPIOA_PIN1) | \ + PIN_MODE_INPUT(GPIOA_PIN2) | \ + PIN_MODE_INPUT(GPIOA_PIN3) | \ + PIN_MODE_INPUT(GPIOA_PIN4) | \ + PIN_MODE_INPUT(GPIOA_PIN5) | \ + PIN_MODE_INPUT(GPIOA_PIN6) | \ + PIN_MODE_INPUT(GPIOA_PIN7) | \ + PIN_MODE_INPUT(GPIOA_PIN8) | \ + PIN_MODE_INPUT(GPIOA_PIN9) | \ + PIN_MODE_INPUT(GPIOA_PIN10) | \ + PIN_MODE_INPUT(GPIOA_USB_DM) | \ + PIN_MODE_INPUT(GPIOA_USB_DP) | \ + PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \ + PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \ + PIN_MODE_INPUT(GPIOA_PIN15)) +#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \ + PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \ + PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \ + PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN15)) +#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_BUTTON) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN1) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN2) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN5) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOA_USB_DM) | \ + PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | \ + PIN_OSPEED_HIGH(GPIOA_SWDIO) | \ + PIN_OSPEED_HIGH(GPIOA_SWCLK) | \ + PIN_OSPEED_HIGH(GPIOA_PIN15)) +#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN6) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN10) | \ + PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \ + PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \ + PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \ + PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN15)) +#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \ + PIN_ODR_HIGH(GPIOA_PIN1) | \ + PIN_ODR_HIGH(GPIOA_PIN2) | \ + PIN_ODR_HIGH(GPIOA_PIN3) | \ + PIN_ODR_HIGH(GPIOA_PIN4) | \ + PIN_ODR_HIGH(GPIOA_PIN5) | \ + PIN_ODR_HIGH(GPIOA_PIN6) | \ + PIN_ODR_HIGH(GPIOA_PIN7) | \ + PIN_ODR_HIGH(GPIOA_PIN8) | \ + PIN_ODR_HIGH(GPIOA_PIN9) | \ + PIN_ODR_HIGH(GPIOA_PIN10) | \ + PIN_ODR_HIGH(GPIOA_USB_DM) | \ + PIN_ODR_HIGH(GPIOA_USB_DP) | \ + PIN_ODR_HIGH(GPIOA_SWDIO) | \ + PIN_ODR_HIGH(GPIOA_SWCLK) | \ + PIN_ODR_HIGH(GPIOA_PIN15)) +#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \ + PIN_AFIO_AF(GPIOA_PIN1, 0U) | \ + PIN_AFIO_AF(GPIOA_PIN2, 0U) | \ + PIN_AFIO_AF(GPIOA_PIN3, 0U) | \ + PIN_AFIO_AF(GPIOA_PIN4, 0U) | \ + PIN_AFIO_AF(GPIOA_PIN5, 0U) | \ + PIN_AFIO_AF(GPIOA_PIN6, 0U) | \ + PIN_AFIO_AF(GPIOA_PIN7, 0U)) +#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0U) | \ + PIN_AFIO_AF(GPIOA_PIN9, 0U) | \ + PIN_AFIO_AF(GPIOA_PIN10, 0U) | \ + PIN_AFIO_AF(GPIOA_USB_DM, 0U) | \ + PIN_AFIO_AF(GPIOA_USB_DP, 0U) | \ + PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \ + PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \ + PIN_AFIO_AF(GPIOA_PIN15, 0U)) + +/* + * GPIOB setup: + * + * PB0 - PIN0 (input pullup). + * PB1 - PIN1 (input pullup). + * PB2 - PIN2 (input pullup). + * PB3 - PIN3 (input pullup). + * PB4 - PIN4 (input pullup). + * PB5 - PIN5 (input pullup). + * PB6 - PIN6 (input pullup). + * PB7 - PIN7 (input pullup). + * PB8 - PIN8 (input pullup). + * PB9 - PIN9 (input pullup). + * PB10 - PIN10 (input pullup). + * PB11 - PIN11 (input pullup). + * PB12 - PIN12 (input pullup). + * PB13 - SPI2_SCK (alternate 0). + * PB14 - SPI2_MISO (alternate 0). + * PB15 - SPI2_MOSI (alternate 0). + */ +#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \ + PIN_MODE_INPUT(GPIOB_PIN1) | \ + PIN_MODE_INPUT(GPIOB_PIN2) | \ + PIN_MODE_INPUT(GPIOB_PIN3) | \ + PIN_MODE_INPUT(GPIOB_PIN4) | \ + PIN_MODE_INPUT(GPIOB_PIN5) | \ + PIN_MODE_INPUT(GPIOB_PIN6) | \ + PIN_MODE_INPUT(GPIOB_PIN7) | \ + PIN_MODE_INPUT(GPIOB_PIN8) | \ + PIN_MODE_INPUT(GPIOB_PIN9) | \ + PIN_MODE_INPUT(GPIOB_PIN10) | \ + PIN_MODE_INPUT(GPIOB_PIN11) | \ + PIN_MODE_INPUT(GPIOB_PIN12) | \ + PIN_MODE_ALTERNATE(GPIOB_SPI2_SCK) | \ + PIN_MODE_ALTERNATE(GPIOB_SPI2_MISO) | \ + PIN_MODE_ALTERNATE(GPIOB_SPI2_MOSI)) +#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SCK) | \ + PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MISO) | \ + PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MOSI)) +#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN1) | \ + PIN_OSPEED_HIGH(GPIOB_PIN2) | \ + PIN_OSPEED_HIGH(GPIOB_PIN3) | \ + PIN_OSPEED_HIGH(GPIOB_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN5) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN11) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN12) | \ + PIN_OSPEED_VERYLOW(GPIOB_SPI2_SCK) | \ + PIN_OSPEED_VERYLOW(GPIOB_SPI2_MISO) | \ + PIN_OSPEED_VERYLOW(GPIOB_SPI2_MOSI)) +#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN6) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN10) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN12) | \ + PIN_PUPDR_FLOATING(GPIOB_SPI2_SCK) | \ + PIN_PUPDR_FLOATING(GPIOB_SPI2_MISO) | \ + PIN_PUPDR_FLOATING(GPIOB_SPI2_MOSI)) +#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \ + PIN_ODR_HIGH(GPIOB_PIN1) | \ + PIN_ODR_HIGH(GPIOB_PIN2) | \ + PIN_ODR_HIGH(GPIOB_PIN3) | \ + PIN_ODR_HIGH(GPIOB_PIN4) | \ + PIN_ODR_HIGH(GPIOB_PIN5) | \ + PIN_ODR_HIGH(GPIOB_PIN6) | \ + PIN_ODR_HIGH(GPIOB_PIN7) | \ + PIN_ODR_HIGH(GPIOB_PIN8) | \ + PIN_ODR_HIGH(GPIOB_PIN9) | \ + PIN_ODR_HIGH(GPIOB_PIN10) | \ + PIN_ODR_HIGH(GPIOB_PIN11) | \ + PIN_ODR_HIGH(GPIOB_PIN12) | \ + PIN_ODR_HIGH(GPIOB_SPI2_SCK) | \ + PIN_ODR_HIGH(GPIOB_SPI2_MISO) | \ + PIN_ODR_HIGH(GPIOB_SPI2_MOSI)) +#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \ + PIN_AFIO_AF(GPIOB_PIN1, 0U) | \ + PIN_AFIO_AF(GPIOB_PIN2, 0U) | \ + PIN_AFIO_AF(GPIOB_PIN3, 0U) | \ + PIN_AFIO_AF(GPIOB_PIN4, 0U) | \ + PIN_AFIO_AF(GPIOB_PIN5, 0U) | \ + PIN_AFIO_AF(GPIOB_PIN6, 0U) | \ + PIN_AFIO_AF(GPIOB_PIN7, 0U)) +#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \ + PIN_AFIO_AF(GPIOB_PIN9, 0U) | \ + PIN_AFIO_AF(GPIOB_PIN10, 0U) | \ + PIN_AFIO_AF(GPIOB_PIN11, 0U) | \ + PIN_AFIO_AF(GPIOB_PIN12, 0U) | \ + PIN_AFIO_AF(GPIOB_SPI2_SCK, 0U) | \ + PIN_AFIO_AF(GPIOB_SPI2_MISO, 0U) | \ + PIN_AFIO_AF(GPIOB_SPI2_MOSI, 0U)) + +/* + * GPIOC setup: + * + * PC0 - MEMS_CS (output pushpull maximum). + * PC1 - PIN1 (input pullup). + * PC2 - PIN2 (input pullup). + * PC3 - PIN3 (input pullup). + * PC4 - PIN4 (input pullup). + * PC5 - PIN5 (input pullup). + * PC6 - LED_RED (output pushpull maximum). + * PC7 - LED_BLUE (output pushpull maximum). + * PC8 - LED_ORANGE (output pushpull maximum). + * PC9 - LED_GREEN (output pushpull maximum). + * PC10 - PIN10 (input pullup). + * PC11 - PIN11 (input pullup). + * PC12 - PIN12 (input pullup). + * PC13 - PIN13 (input pullup). + * PC14 - OSC32_IN (input floating). + * PC15 - OSC32_OUT (input floating). + */ +#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_MEMS_CS) | \ + PIN_MODE_INPUT(GPIOC_PIN1) | \ + PIN_MODE_INPUT(GPIOC_PIN2) | \ + PIN_MODE_INPUT(GPIOC_PIN3) | \ + PIN_MODE_INPUT(GPIOC_PIN4) | \ + PIN_MODE_INPUT(GPIOC_PIN5) | \ + PIN_MODE_OUTPUT(GPIOC_LED_RED) | \ + PIN_MODE_OUTPUT(GPIOC_LED_BLUE) | \ + PIN_MODE_OUTPUT(GPIOC_LED_ORANGE) | \ + PIN_MODE_OUTPUT(GPIOC_LED_GREEN) | \ + PIN_MODE_INPUT(GPIOC_PIN10) | \ + PIN_MODE_INPUT(GPIOC_PIN11) | \ + PIN_MODE_INPUT(GPIOC_PIN12) | \ + PIN_MODE_INPUT(GPIOC_PIN13) | \ + PIN_MODE_INPUT(GPIOC_OSC32_IN) | \ + PIN_MODE_INPUT(GPIOC_OSC32_OUT)) +#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_MEMS_CS) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOC_LED_RED) | \ + PIN_OTYPE_PUSHPULL(GPIOC_LED_BLUE) | \ + PIN_OTYPE_PUSHPULL(GPIOC_LED_ORANGE) | \ + PIN_OTYPE_PUSHPULL(GPIOC_LED_GREEN) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \ + PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT)) +#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_MEMS_CS) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN1) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN2) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN5) | \ + PIN_OSPEED_HIGH(GPIOC_LED_RED) | \ + PIN_OSPEED_HIGH(GPIOC_LED_BLUE) | \ + PIN_OSPEED_HIGH(GPIOC_LED_ORANGE) | \ + PIN_OSPEED_HIGH(GPIOC_LED_GREEN) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN11) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN12) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN13) | \ + PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | \ + PIN_OSPEED_HIGH(GPIOC_OSC32_OUT)) +#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_MEMS_CS) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN5) | \ + PIN_PUPDR_FLOATING(GPIOC_LED_RED) | \ + PIN_PUPDR_FLOATING(GPIOC_LED_BLUE) | \ + PIN_PUPDR_FLOATING(GPIOC_LED_ORANGE) | \ + PIN_PUPDR_FLOATING(GPIOC_LED_GREEN) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN10) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN12) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN13) | \ + PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \ + PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT)) +#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_MEMS_CS) | \ + PIN_ODR_HIGH(GPIOC_PIN1) | \ + PIN_ODR_HIGH(GPIOC_PIN2) | \ + PIN_ODR_HIGH(GPIOC_PIN3) | \ + PIN_ODR_HIGH(GPIOC_PIN4) | \ + PIN_ODR_HIGH(GPIOC_PIN5) | \ + PIN_ODR_LOW(GPIOC_LED_RED) | \ + PIN_ODR_LOW(GPIOC_LED_BLUE) | \ + PIN_ODR_LOW(GPIOC_LED_ORANGE) | \ + PIN_ODR_LOW(GPIOC_LED_GREEN) | \ + PIN_ODR_HIGH(GPIOC_PIN10) | \ + PIN_ODR_HIGH(GPIOC_PIN11) | \ + PIN_ODR_HIGH(GPIOC_PIN12) | \ + PIN_ODR_HIGH(GPIOC_PIN13) | \ + PIN_ODR_HIGH(GPIOC_OSC32_IN) | \ + PIN_ODR_HIGH(GPIOC_OSC32_OUT)) +#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_MEMS_CS, 0U) | \ + PIN_AFIO_AF(GPIOC_PIN1, 0U) | \ + PIN_AFIO_AF(GPIOC_PIN2, 0U) | \ + PIN_AFIO_AF(GPIOC_PIN3, 0U) | \ + PIN_AFIO_AF(GPIOC_PIN4, 0U) | \ + PIN_AFIO_AF(GPIOC_PIN5, 0U) | \ + PIN_AFIO_AF(GPIOC_LED_RED, 0U) | \ + PIN_AFIO_AF(GPIOC_LED_BLUE, 0U)) +#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_LED_ORANGE, 0U) | \ + PIN_AFIO_AF(GPIOC_LED_GREEN, 0U) | \ + PIN_AFIO_AF(GPIOC_PIN10, 0U) | \ + PIN_AFIO_AF(GPIOC_PIN11, 0U) | \ + PIN_AFIO_AF(GPIOC_PIN12, 0U) | \ + PIN_AFIO_AF(GPIOC_PIN13, 0U) | \ + PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | \ + PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U)) + +/* + * GPIOD setup: + * + * PD0 - PIN0 (input pullup). + * PD1 - PIN1 (input pullup). + * PD2 - PIN2 (input pullup). + * PD3 - PIN3 (input pullup). + * PD4 - PIN4 (input pullup). + * PD5 - PIN5 (input pullup). + * PD6 - PIN6 (input pullup). + * PD7 - PIN7 (input pullup). + * PD8 - PIN8 (input pullup). + * PD9 - PIN9 (input pullup). + * PD10 - PIN10 (input pullup). + * PD11 - PIN11 (input pullup). + * PD12 - PIN12 (input pullup). + * PD13 - PIN13 (input pullup). + * PD14 - PIN14 (input pullup). + * PD15 - PIN15 (input pullup). + */ +#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \ + PIN_MODE_INPUT(GPIOD_PIN1) | \ + PIN_MODE_INPUT(GPIOD_PIN2) | \ + PIN_MODE_INPUT(GPIOD_PIN3) | \ + PIN_MODE_INPUT(GPIOD_PIN4) | \ + PIN_MODE_INPUT(GPIOD_PIN5) | \ + PIN_MODE_INPUT(GPIOD_PIN6) | \ + PIN_MODE_INPUT(GPIOD_PIN7) | \ + PIN_MODE_INPUT(GPIOD_PIN8) | \ + PIN_MODE_INPUT(GPIOD_PIN9) | \ + PIN_MODE_INPUT(GPIOD_PIN10) | \ + PIN_MODE_INPUT(GPIOD_PIN11) | \ + PIN_MODE_INPUT(GPIOD_PIN12) | \ + PIN_MODE_INPUT(GPIOD_PIN13) | \ + PIN_MODE_INPUT(GPIOD_PIN14) | \ + PIN_MODE_INPUT(GPIOD_PIN15)) +#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN15)) +#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN1) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN2) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN5) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN11) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN12) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN13) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN14) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN15)) +#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN6) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN10) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN12) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN13) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN14) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN15)) +#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \ + PIN_ODR_HIGH(GPIOD_PIN1) | \ + PIN_ODR_HIGH(GPIOD_PIN2) | \ + PIN_ODR_HIGH(GPIOD_PIN3) | \ + PIN_ODR_HIGH(GPIOD_PIN4) | \ + PIN_ODR_HIGH(GPIOD_PIN5) | \ + PIN_ODR_HIGH(GPIOD_PIN6) | \ + PIN_ODR_HIGH(GPIOD_PIN7) | \ + PIN_ODR_HIGH(GPIOD_PIN8) | \ + PIN_ODR_HIGH(GPIOD_PIN9) | \ + PIN_ODR_HIGH(GPIOD_PIN10) | \ + PIN_ODR_HIGH(GPIOD_PIN11) | \ + PIN_ODR_HIGH(GPIOD_PIN12) | \ + PIN_ODR_HIGH(GPIOD_PIN13) | \ + PIN_ODR_HIGH(GPIOD_PIN14) | \ + PIN_ODR_HIGH(GPIOD_PIN15)) +#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN1, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN2, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN3, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN4, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN5, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN6, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN7, 0U)) +#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN9, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN10, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN11, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN12, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN13, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN14, 0U) | \ + PIN_AFIO_AF(GPIOD_PIN15, 0U)) + +/* + * GPIOE setup: + * + * PE0 - PIN0 (input pullup). + * PE1 - PIN1 (input pullup). + * PE2 - PIN2 (input pullup). + * PE3 - PIN3 (input pullup). + * PE4 - PIN4 (input pullup). + * PE5 - PIN5 (input pullup). + * PE6 - PIN6 (input pullup). + * PE7 - PIN7 (input pullup). + * PE8 - PIN8 (input pullup). + * PE9 - PIN9 (input pullup). + * PE10 - PIN10 (input pullup). + * PE11 - PIN11 (input pullup). + * PE12 - PIN12 (input pullup). + * PE13 - PIN13 (input pullup). + * PE14 - PIN14 (input pullup). + * PE15 - PIN15 (input pullup). + */ +#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \ + PIN_MODE_INPUT(GPIOE_PIN1) | \ + PIN_MODE_INPUT(GPIOE_PIN2) | \ + PIN_MODE_INPUT(GPIOE_PIN3) | \ + PIN_MODE_INPUT(GPIOE_PIN4) | \ + PIN_MODE_INPUT(GPIOE_PIN5) | \ + PIN_MODE_INPUT(GPIOE_PIN6) | \ + PIN_MODE_INPUT(GPIOE_PIN7) | \ + PIN_MODE_INPUT(GPIOE_PIN8) | \ + PIN_MODE_INPUT(GPIOE_PIN9) | \ + PIN_MODE_INPUT(GPIOE_PIN10) | \ + PIN_MODE_INPUT(GPIOE_PIN11) | \ + PIN_MODE_INPUT(GPIOE_PIN12) | \ + PIN_MODE_INPUT(GPIOE_PIN13) | \ + PIN_MODE_INPUT(GPIOE_PIN14) | \ + PIN_MODE_INPUT(GPIOE_PIN15)) +#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN15)) +#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN1) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN2) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN5) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN11) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN12) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN13) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN14) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN15)) +#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN6) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN10) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN12) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN13) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN14) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN15)) +#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \ + PIN_ODR_HIGH(GPIOE_PIN1) | \ + PIN_ODR_HIGH(GPIOE_PIN2) | \ + PIN_ODR_HIGH(GPIOE_PIN3) | \ + PIN_ODR_HIGH(GPIOE_PIN4) | \ + PIN_ODR_HIGH(GPIOE_PIN5) | \ + PIN_ODR_HIGH(GPIOE_PIN6) | \ + PIN_ODR_HIGH(GPIOE_PIN7) | \ + PIN_ODR_HIGH(GPIOE_PIN8) | \ + PIN_ODR_HIGH(GPIOE_PIN9) | \ + PIN_ODR_HIGH(GPIOE_PIN10) | \ + PIN_ODR_HIGH(GPIOE_PIN11) | \ + PIN_ODR_HIGH(GPIOE_PIN12) | \ + PIN_ODR_HIGH(GPIOE_PIN13) | \ + PIN_ODR_HIGH(GPIOE_PIN14) | \ + PIN_ODR_HIGH(GPIOE_PIN15)) +#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN1, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN2, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN3, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN4, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN5, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN6, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN7, 0U)) +#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN9, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN10, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN11, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN12, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN13, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN14, 0U) | \ + PIN_AFIO_AF(GPIOE_PIN15, 0U)) + +/* + * GPIOF setup: + * + * PF0 - OSC_IN (input floating). + * PF1 - OSC_OUT (input floating). + * PF2 - PIN2 (input pullup). + * PF3 - PIN3 (input pullup). + * PF4 - PIN4 (input pullup). + * PF5 - PIN5 (input pullup). + * PF6 - PIN6 (input pullup). + * PF7 - PIN7 (input pullup). + * PF8 - PIN8 (input pullup). + * PF9 - PIN9 (input pullup). + * PF10 - PIN10 (input pullup). + * PF11 - PIN11 (input pullup). + * PF12 - PIN12 (input pullup). + * PF13 - PIN13 (input pullup). + * PF14 - PIN14 (input pullup). + * PF15 - PIN15 (input pullup). + */ +#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_OSC_IN) | \ + PIN_MODE_INPUT(GPIOF_OSC_OUT) | \ + PIN_MODE_INPUT(GPIOF_PIN2) | \ + PIN_MODE_INPUT(GPIOF_PIN3) | \ + PIN_MODE_INPUT(GPIOF_PIN4) | \ + PIN_MODE_INPUT(GPIOF_PIN5) | \ + PIN_MODE_INPUT(GPIOF_PIN6) | \ + PIN_MODE_INPUT(GPIOF_PIN7) | \ + PIN_MODE_INPUT(GPIOF_PIN8) | \ + PIN_MODE_INPUT(GPIOF_PIN9) | \ + PIN_MODE_INPUT(GPIOF_PIN10) | \ + PIN_MODE_INPUT(GPIOF_PIN11) | \ + PIN_MODE_INPUT(GPIOF_PIN12) | \ + PIN_MODE_INPUT(GPIOF_PIN13) | \ + PIN_MODE_INPUT(GPIOF_PIN14) | \ + PIN_MODE_INPUT(GPIOF_PIN15)) +#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) | \ + PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN15)) +#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOF_OSC_IN) | \ + PIN_OSPEED_VERYLOW(GPIOF_OSC_OUT) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN2) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN5) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN12) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN13) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN14) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN15)) +#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) | \ + PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN6) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN10) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN12) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN13) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN14) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN15)) +#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_OSC_IN) | \ + PIN_ODR_HIGH(GPIOF_OSC_OUT) | \ + PIN_ODR_HIGH(GPIOF_PIN2) | \ + PIN_ODR_HIGH(GPIOF_PIN3) | \ + PIN_ODR_HIGH(GPIOF_PIN4) | \ + PIN_ODR_HIGH(GPIOF_PIN5) | \ + PIN_ODR_HIGH(GPIOF_PIN6) | \ + PIN_ODR_HIGH(GPIOF_PIN7) | \ + PIN_ODR_HIGH(GPIOF_PIN8) | \ + PIN_ODR_HIGH(GPIOF_PIN9) | \ + PIN_ODR_HIGH(GPIOF_PIN10) | \ + PIN_ODR_HIGH(GPIOF_PIN11) | \ + PIN_ODR_HIGH(GPIOF_PIN12) | \ + PIN_ODR_HIGH(GPIOF_PIN13) | \ + PIN_ODR_HIGH(GPIOF_PIN14) | \ + PIN_ODR_HIGH(GPIOF_PIN15)) +#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_OSC_IN, 0U) | \ + PIN_AFIO_AF(GPIOF_OSC_OUT, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN2, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN3, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN4, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN5, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN6, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN7, 0U)) +#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN9, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN10, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN11, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN12, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN13, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN14, 0U) | \ + PIN_AFIO_AF(GPIOF_PIN15, 0U)) + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +#if !defined(_FROM_ASM_) +#ifdef __cplusplus +extern "C" { +#endif + void boardInit(void); +#ifdef __cplusplus +} +#endif +#endif /* _FROM_ASM_ */ + +#endif /* BOARD_H */ diff --git a/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.mk b/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.mk new file mode 100644 index 000000000000..b98dcdd26c6a --- /dev/null +++ b/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/board.mk @@ -0,0 +1,5 @@ +# List of all the board related files. +BOARDSRC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY/board.c + +# Required include directories +BOARDINC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY diff --git a/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg b/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg new file mode 100644 index 000000000000..9c7cf4fd76a3 --- /dev/null +++ b/keyboards/nebula12/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg @@ -0,0 +1,703 @@ + + + + + resources/gencfg/processors/boards/stm32f0xx/templates + .. + 3.0.x + + ST STM32F072B-Discovery + ST_STM32F072B_DISCOVERY + + STM32F072xB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/keyboards/nebula12/bootloader_defs.h b/keyboards/nebula12/bootloader_defs.h new file mode 100644 index 000000000000..02c48c4e6dcb --- /dev/null +++ b/keyboards/nebula12/bootloader_defs.h @@ -0,0 +1,7 @@ +/* Address for jumping to bootloader on STM32 chips. */ +/* It is chip dependent, the correct number can be looked up here (page 175): + * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf + * This also requires a patch to chibios: + * /tmk_core/tool/chibios/ch-bootloader-jump.patch + */ +#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/nebula12/chconf.h b/keyboards/nebula12/chconf.h new file mode 100644 index 000000000000..03f63da36a88 --- /dev/null +++ b/keyboards/nebula12/chconf.h @@ -0,0 +1,714 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file rt/templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ +#define _CHIBIOS_RT_CONF_VER_6_0_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_ST_RESOLUTION) +#define CH_CFG_ST_RESOLUTION 32 +#endif + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_CFG_ST_FREQUENCY) +#define CH_CFG_ST_FREQUENCY 10000 +#endif + +/** + * @brief Time intervals data size. + * @note Allowed values are 16, 32 or 64 bits. + */ +#if !defined(CH_CFG_INTERVALS_SIZE) +#define CH_CFG_INTERVALS_SIZE 32 +#endif + +/** + * @brief Time types data size. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_TIME_TYPES_SIZE) +#define CH_CFG_TIME_TYPES_SIZE 32 +#endif + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#if !defined(CH_CFG_ST_TIMEDELTA) +#define CH_CFG_ST_TIMEDELTA 2 +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#if !defined(CH_CFG_TIME_QUANTUM) +#define CH_CFG_TIME_QUANTUM 0 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#if !defined(CH_CFG_MEMCORE_SIZE) +#define CH_CFG_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#if !defined(CH_CFG_NO_IDLE_THREAD) +#define CH_CFG_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) +#define CH_CFG_OPTIMIZE_SPEED FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_TM) +#define CH_CFG_USE_TM FALSE +#endif + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_REGISTRY) +#define CH_CFG_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_WAITEXIT) +#define CH_CFG_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_SEMAPHORES) +#define CH_CFG_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MUTEXES) +#define CH_CFG_USE_MUTEXES TRUE +#endif + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_CONDVARS) +#define CH_CFG_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_EVENTS) +#define CH_CFG_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MESSAGES) +#define CH_CFG_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_MAILBOXES) +#define CH_CFG_USE_MAILBOXES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCORE) +#define CH_CFG_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_CFG_USE_HEAP) +#define CH_CFG_USE_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMPOOLS) +#define CH_CFG_USE_MEMPOOLS FALSE +#endif + +/** + * @brief Objects FIFOs APIs. + * @details If enabled then the objects FIFOs APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_OBJ_FIFOS) +#define CH_CFG_USE_OBJ_FIFOS FALSE +#endif + +/** + * @brief Pipes APIs. + * @details If enabled then the pipes APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_PIPES) +#define CH_CFG_USE_PIPES FALSE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#if !defined(CH_CFG_USE_DYNAMIC) +#define CH_CFG_USE_DYNAMIC FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Objects factory options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Objects Factory APIs. + * @details If enabled then the objects factory APIs are included in the + * kernel. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_CFG_USE_FACTORY) +#define CH_CFG_USE_FACTORY FALSE +#endif + +/** + * @brief Maximum length for object names. + * @details If the specified length is zero then the name is stored by + * pointer but this could have unintended side effects. + */ +#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) +#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 +#endif + +/** + * @brief Enables the registry of generic objects. + */ +#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) +#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE +#endif + +/** + * @brief Enables factory for generic buffers. + */ +#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE +#endif + +/** + * @brief Enables factory for semaphores. + */ +#if !defined(CH_CFG_FACTORY_SEMAPHORES) +#define CH_CFG_FACTORY_SEMAPHORES FALSE +#endif + +/** + * @brief Enables factory for mailboxes. + */ +#if !defined(CH_CFG_FACTORY_MAILBOXES) +#define CH_CFG_FACTORY_MAILBOXES FALSE +#endif + +/** + * @brief Enables factory for objects FIFOs. + */ +#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +#define CH_CFG_FACTORY_OBJ_FIFOS FALSE +#endif + +/** + * @brief Enables factory for Pipes. + */ +#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) +#define CH_CFG_FACTORY_PIPES FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_STATISTICS) +#define CH_DBG_STATISTICS FALSE +#endif + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_MASK) +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED +#endif + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) +#define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) +#define CH_DBG_ENABLE_STACK_CHECK FALSE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) +#define CH_DBG_FILL_THREADS FALSE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#if !defined(CH_DBG_THREADS_PROFILING) +#define CH_DBG_THREADS_PROFILING FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System structure extension. + * @details User fields added to the end of the @p ch_system_t structure. + */ +#define CH_CFG_SYSTEM_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief System initialization hook. + * @details User initialization code added to the @p chSysInit() function + * just before interrupts are enabled globally. + */ +#define CH_CFG_SYSTEM_INIT_HOOK() { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p _thread_init() function. + * + * @note It is invoked from within @p _thread_init() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/nebula12/config.h b/keyboards/nebula12/config.h new file mode 100755 index 000000000000..8b460a87af05 --- /dev/null +++ b/keyboards/nebula12/config.h @@ -0,0 +1,169 @@ +/* +Copyright 2020 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x8968 +#define PRODUCT_ID 0x5337 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Yiancar-Designs +#define PRODUCT NEBULA12 +#define DESCRIPTION "A 12-key, tool-free RGB keyboard" + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 3 + +#define MATRIX_ROW_PINS { A8, C15, A0, A1 } +#define MATRIX_COL_PINS { A9, C13, C14 } +// To enable debugger set A13 A14 -> A5 A7 + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Setting up 400KHz I2C Clock for a 48MHz system clock */ +#define I2C1_SCL_PAL_MODE 1 +#define I2C1_SDA_PAL_MODE 1 +#define I2C1_TIMINGR_SCLDEL 3U +#define I2C1_TIMINGR_SDADEL 1U +#define I2C1_TIMINGR_SCLH 3U +#define I2C1_TIMINGR_SCLL 9U + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +#define WS2812_SPI 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 RGB_DI_PIN B15 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 4 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ + #define RGBLIGHT_ANIMATIONS +#endif + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +/* Backlight options */ + +#define RGB_BACKLIGHT_ENABLED 1 + +#define RGB_BACKLIGHT_NEBULA12 + +// they aren't really used if RGB_BACKLIGHT_NEBULA65 defined +#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0 +#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 +#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 +#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0 +#define RGB_BACKLIGHT_USE_ISO_ENTER 0 +#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0 + +// disable backlight when USB suspended (PC sleep/hibernate/shutdown) +#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 + +// disable backlight after timeout in minutes, 0 = no timeout +#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0 + +// the default brightness +#define RGB_BACKLIGHT_BRIGHTNESS 255 + +// the default effect (RGB test) +#define RGB_BACKLIGHT_EFFECT 6 + +// the default effect speed (0-3) +#define RGB_BACKLIGHT_EFFECT_SPEED 0 + +// the default color1 and color2 +#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } +#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } + +#define DRIVER_COUNT 1 +#define DRIVER_LED_TOTAL 16 + +// These define which keys in the matrix are alphas/mods +// Used for backlight effects so colors are different for +// alphas vs. mods +// Each value is for a row, bit 0 is column 0 +// Alpha=0 Mod=1 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000000 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0000000000000000 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0000000000000000 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0000000000000000 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0000000000000000 + +#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } +#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } +#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 } + +// Backlight config starts after VIA's EEPROM usage, +// dynamic keymaps start after this. +#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 32 + +// VIA lighting is handled by the keyboard-level code +#define VIA_CUSTOM_LIGHTING_ENABLE +#define VIA_QMK_RGBLIGHT_ENABLE diff --git a/keyboards/nebula12/halconf.h b/keyboards/nebula12/halconf.h new file mode 100644 index 000000000000..b5b151ee26a2 --- /dev/null +++ b/keyboards/nebula12/halconf.h @@ -0,0 +1,525 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef HALCONF_H +#define HALCONF_H + +#define _CHIBIOS_HAL_CONF_ +#define _CHIBIOS_HAL_CONF_VER_7_0_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the cryptographic subsystem. + */ +#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) +#define HAL_USE_CRY FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT TRUE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C TRUE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SIO subsystem. + */ +#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) +#define HAL_USE_SIO FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI TRUE +#endif + +/** + * @brief Enables the TRNG subsystem. + */ +#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) +#define HAL_USE_TRNG FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/** + * @brief Enables the WSPI subsystem. + */ +#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) +#define HAL_USE_WSPI FALSE +#endif + +/*===========================================================================*/ +/* PAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) +#define PAL_USE_CALLBACKS FALSE +#endif + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) +#define PAL_USE_WAIT FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/** + * @brief Enforces the driver to use direct callbacks rather than OSAL events. + */ +#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) +#define CAN_ENFORCE_USE_CALLBACKS FALSE +#endif + +/*===========================================================================*/ +/* CRY driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the SW fall-back of the cryptographic driver. + * @details When enabled, this option, activates a fall-back software + * implementation for algorithms not supported by the underlying + * hardware. + * @note Fall-back implementations may not be present for all algorithms. + */ +#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_USE_FALLBACK FALSE +#endif + +/** + * @brief Makes the driver forcibly use the fall-back implementations. + */ +#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_ENFORCE_FALLBACK FALSE +#endif + +/*===========================================================================*/ +/* DAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) +#define DAC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define DAC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the zero-copy API. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/** + * @brief OCR initialization constant for V20 cards. + */ +#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) +#define SDC_INIT_OCR_V20 0x50FF8000U +#endif + +/** + * @brief OCR initialization constant for non-V20 cards. + */ +#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) +#define SDC_INIT_OCR 0x80100000U +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 16 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 256 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 1 +#endif + +/** + * @brief Serial over USB number of buffers. + * @note The default is 2 buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_NUMBER 2 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables circular transfers APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) +#define SPI_USE_CIRCULAR FALSE +#endif + + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/** + * @brief Handling method for SPI CS line. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + +/*===========================================================================*/ +/* UART driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) +#define UART_USE_WAIT FALSE +#endif + +/** + * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define UART_USE_MUTUAL_EXCLUSION FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +/*===========================================================================*/ +/* WSPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) +#define WSPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define WSPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* HALCONF_H */ + +/** @} */ diff --git a/keyboards/nebula12/info.json b/keyboards/nebula12/info.json new file mode 100755 index 000000000000..16d04fa86a56 --- /dev/null +++ b/keyboards/nebula12/info.json @@ -0,0 +1,14 @@ +{ + "keyboard_name": "NEBULA12", + "url": "", + "maintainer": "yiancar", + "width": 3, + "height": 4, + "layouts": { + "LAYOUT_68_ansi": { + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3} + ] + } + } +} diff --git a/keyboards/nebula12/keymaps/default/keymap.c b/keyboards/nebula12/keymaps/default/keymap.c new file mode 100755 index 000000000000..670d25e732a6 --- /dev/null +++ b/keyboards/nebula12/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2020 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, + MO(1), KC_P0, KC_PDOT), + +[1] = LAYOUT_all( /* FN */ + RGB_TOG, RGB_MOD, KC_TRNS, + EF_DEC, EF_INC, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_PENT), + +[2] = LAYOUT_all( /* Empty for dynamic keymaps */ + 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_all( /* Empty for dynamic keymaps */ + 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/nebula12/keymaps/default/readme.md b/keyboards/nebula12/keymaps/default/readme.md new file mode 100755 index 000000000000..706ec9f3bf7b --- /dev/null +++ b/keyboards/nebula12/keymaps/default/readme.md @@ -0,0 +1,7 @@ +# The default keymap for Nebula12. VIA support disabled. + +![Layer 0](https://i.imgur.com/CoMteJW.png) + +![Layer 1](https://i.imgur.com/LbIPiJj.png) + +The full RGB control does not fit due to the small number of keys. Using VIA might be a good idea! diff --git a/keyboards/nebula12/keymaps/via/keymap.c b/keyboards/nebula12/keymaps/via/keymap.c new file mode 100755 index 000000000000..670d25e732a6 --- /dev/null +++ b/keyboards/nebula12/keymaps/via/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2020 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, + MO(1), KC_P0, KC_PDOT), + +[1] = LAYOUT_all( /* FN */ + RGB_TOG, RGB_MOD, KC_TRNS, + EF_DEC, EF_INC, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_PENT), + +[2] = LAYOUT_all( /* Empty for dynamic keymaps */ + 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_all( /* Empty for dynamic keymaps */ + 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/nebula12/keymaps/via/readme.md b/keyboards/nebula12/keymaps/via/readme.md new file mode 100755 index 000000000000..7023515d770d --- /dev/null +++ b/keyboards/nebula12/keymaps/via/readme.md @@ -0,0 +1,5 @@ +# The default keymap for Nebula12. VIA support enabled. + +![Layer 0](https://i.imgur.com/CoMteJW.png) + +![Layer 1](https://i.imgur.com/LbIPiJj.png) diff --git a/keyboards/nebula12/keymaps/via/rules.mk b/keyboards/nebula12/keymaps/via/rules.mk new file mode 100755 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/nebula12/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/nebula12/mcuconf.h b/keyboards/nebula12/mcuconf.h new file mode 100644 index 000000000000..a414763ed1d0 --- /dev/null +++ b/keyboards/nebula12/mcuconf.h @@ -0,0 +1,176 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +/* + * STM32F0xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 3...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F0xx_MCUCONF +// #define STM32F070xB + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_HSI_ENABLED TRUE +#define STM32_HSI14_ENABLED TRUE +#define STM32_HSI48_ENABLED FALSE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED FALSE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 +#define STM32_PREDIV_VALUE 1 +#define STM32_PLLMUL_VALUE 12 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE STM32_PPRE_DIV1 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_USBSW STM32_USBSW_HSI48 +#define STM32_CECSW STM32_CECSW_HSI +#define STM32_I2C1SW STM32_I2C1SW_HSI +#define STM32_USART1SW STM32_USART1SW_PCLK +#define STM32_RTCSEL STM32_RTCSEL_LSI + +/* + * ADC driver system settings. + */ +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 2 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 TRUE +#define STM32_GPT_USE_TIM14 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 2 +#define STM32_GPT_TIM2_IRQ_PRIORITY 2 +#define STM32_GPT_TIM3_IRQ_PRIORITY 2 +#define STM32_GPT_TIM14_IRQ_PRIORITY 2 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 TRUE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_IRQ_PRIORITY 3 +#define STM32_I2C_I2C2_IRQ_PRIORITY 3 +#define STM32_I2C_USE_DMA TRUE +#define STM32_I2C_I2C1_DMA_PRIORITY 1 +#define STM32_I2C_I2C2_DMA_PRIORITY 1 +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 3 +#define STM32_ICU_TIM2_IRQ_PRIORITY 3 +#define STM32_ICU_TIM3_IRQ_PRIORITY 3 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_TIM1_IRQ_PRIORITY 3 +#define STM32_PWM_TIM2_IRQ_PRIORITY 3 +#define STM32_PWM_TIM3_IRQ_PRIORITY 3 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USART1_PRIORITY 3 +#define STM32_SERIAL_USART2_PRIORITY 3 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 TRUE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 2 +#define STM32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USART1_IRQ_PRIORITY 3 +#define STM32_UART_USART2_IRQ_PRIORITY 3 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_USB1 TRUE +#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE +#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/nebula12/nebula12.c b/keyboards/nebula12/nebula12.c new file mode 100755 index 000000000000..6deecb8f47f4 --- /dev/null +++ b/keyboards/nebula12/nebula12.c @@ -0,0 +1,20 @@ +/* Copyright 2020 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 . + */ +#ifndef RGB_BACKLIGHT_NEBULA12 +#error RGB_BACKLIGHT_NEBULA12 not defined, recheck config.h +#endif + +#include "nebula12.h" diff --git a/keyboards/nebula12/nebula12.h b/keyboards/nebula12/nebula12.h new file mode 100755 index 000000000000..1c73fbdaeccc --- /dev/null +++ b/keyboards/nebula12/nebula12.h @@ -0,0 +1,35 @@ +/* Copyright 2020 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 + +#define XXX KC_NO + +#include "quantum.h" +#include "../wilba_tech/wt_rgb_backlight_keycodes.h" + +// This a shortcut to help you visually see your layout. + +#define LAYOUT_all( \ + K00, K01, K02, \ + K10, K11, K12, \ + K20, K21, K22, \ + K30, K31, K32 \ +) { \ + { K00, K01, K02, }, \ + { K10, K11, K12, }, \ + { K20, K21, K22, }, \ + { K30, K31, K32, } \ +} diff --git a/keyboards/nebula12/readme.md b/keyboards/nebula12/readme.md new file mode 100755 index 000000000000..3a68d0a97d18 --- /dev/null +++ b/keyboards/nebula12/readme.md @@ -0,0 +1,32 @@ +# Nebula65 + +This is a standard fixed layout 12 key PCB. It supports VIA, full per-key RGB and underglow RGB. + +* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A 65% keyboard with STM32F072CB +* Hardware Availability: https://spaceholdings.net/ + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make nebula12:via + +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). + +### Reset + +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape + +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or dfu-util (`make nebula12::dfu-util`) diff --git a/keyboards/nebula12/rules.mk b/keyboards/nebula12/rules.mk new file mode 100755 index 000000000000..c897d9ddaac2 --- /dev/null +++ b/keyboards/nebula12/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = STM32F072 + +BOARD = ST_STM32F072B_DISCOVERY + +# Do not put the microcontroller into power saving mode +# when we get USB suspend event. We want it to keep updating +# backlight effects. +OPT_DEFS += -DNO_SUSPEND_POWER_DOWN + +# Build Options +# comment out to disable the options. +# +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +AUDIO_ENABLE = no # Audio output on port C6 +NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in +RGBLIGHT_ENABLE = yes # Underglow RGB +WS2812_DRIVER = spi # Underglow RGB Driver + +CIE1931_CURVE = yes + +# project specific files +SRC += keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ + drivers/issi/is31fl3731.c \ + quantum/color.c +QUANTUM_LIB_SRC += drivers/chibios/i2c_master.c diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 221d924c4c4c..e2506bf3f90d 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -21,6 +21,7 @@ defined(RGB_BACKLIGHT_KOYU) || \ defined(RGB_BACKLIGHT_HS60) || \ defined(RGB_BACKLIGHT_NK65) || \ + defined(RGB_BACKLIGHT_NEBULA12) || \ defined(RGB_BACKLIGHT_NEBULA65) || \ defined(RGB_BACKLIGHT_U80_A) || \ defined(RGB_BACKLIGHT_DAWN60) || \ @@ -44,7 +45,7 @@ #include "wt_rgb_backlight_api.h" #include "wt_rgb_backlight_keycodes.h" -#if !defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) && !defined(RGB_BACKLIGHT_NEBULA65) +#if !defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) && !defined(RGB_BACKLIGHT_NEBULA65) && !defined(RGB_BACKLIGHT_NEBULA12) #include #include "drivers/avr/i2c_master.h" #else @@ -84,6 +85,8 @@ LED_TYPE g_ws2812_leds[WS2812_LED_TOTAL]; #define BACKLIGHT_LED_COUNT 108 #elif defined(RGB_BACKLIGHT_DAWN60) #define BACKLIGHT_LED_COUNT 84 //64 + 20 +#elif defined(RGB_BACKLIGHT_NEBULA12) +#define BACKLIGHT_LED_COUNT 16 #else #define BACKLIGHT_LED_COUNT 72 #endif @@ -358,6 +361,36 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { {1, K_16, J_16, L_16}, //LB64 }; +#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 + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +/* 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 @@ -928,6 +961,21 @@ const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { //LA62..LB5 {221,255}, {225,255}, {229,255}, {22,255}, {12,255}, {244,255}, {234,255}, {255,255} }; + +#elif defined(RGB_BACKLIGHT_NEBULA12) +const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { + // A1..A16 + {0,0}, {16,0}, {32,0}, {0,16}, {16,16}, {32,16}, {0,32}, {16,32}, + {255,255}, {255,255}, {255,255}, {255,255}, + {32,48}, {16,48}, {0,48}, {32,32} +}; +const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { + // A1..A16 + {72,197}, {64,194}, {56,197}, {85,74}, {64,64}, {43,74}, {171,74}, {192,64}, + {255,255}, {255,255}, {255,255}, {255,255}, + {200,196}, {192,192}, {184,196}, {213,74} +}; + #elif defined(RGB_BACKLIGHT_NEBULA65) const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { // LA1..LA60 @@ -951,6 +999,7 @@ const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { //LA62..LB5 {207,255}, {213,255}, {218,255}, {35,255}, {21,255}, {19,255}, {224,255}, {32,255} }; + #elif defined(RGB_BACKLIGHT_M6_B) // M6-B is really simple: // 0 3 5 @@ -1018,7 +1067,7 @@ void map_led_to_point( uint8_t index, Point *point ) point->x = pgm_read_byte(addr); point->y = pgm_read_byte(addr+1); -#if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA65) +#if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA65) || defined(RGB_BACKLIGHT_NEBULA12) return; #endif @@ -1219,6 +1268,18 @@ const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { { 4-1, 255, 8-1, 12-1, 16-1, 20-1, 24-1, 28-1, 32-1, 36-1, 40-1, 44-1, 51-1, 52-1, 3+64-1 }, { 57-1, 58-1, 59-1, 255, 255, 255, 60-1, 255, 255, 48-1, 62-1, 63-1, 64-1, 56-1, 4+64-1 } }; +#elif defined(RGB_BACKLIGHT_NEBULA12) +// +// A1, A2, A3, +// A4, A5, A6, +// A7, A8, A16, +// A15, A14, A13, +const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { + { 1-1, 2-1, 3-1 }, + { 4-1, 5-1, 6-1 }, + { 7-1, 8-1, 16-1 }, + { 15-1, 14-1, 13-1 } +}; #elif defined(RGB_BACKLIGHT_M6_B) // M6-B is really simple: // 0 3 5 @@ -1263,6 +1324,9 @@ void backlight_update_pwm_buffers(void) 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 ); +#elif defined(RGB_BACKLIGHT_NEBULA12) + IS31FL3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); + IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 ); #elif defined(RGB_BACKLIGHT_U80_A) static uint8_t driver = 0; switch ( driver ) @@ -1340,7 +1404,7 @@ void backlight_set_key_hit(uint8_t row, uint8_t column) g_any_key_hit = 0; } -#if !defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) && !defined(RGB_BACKLIGHT_NEBULA65) +#if !defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) && !defined(RGB_BACKLIGHT_NEBULA65) && !defined(RGB_BACKLIGHT_NEBULA12) // This is (F_CPU/1024) / 20 Hz // = 15625 Hz / 20 Hz // = 781 @@ -1376,6 +1440,28 @@ void backlight_timer_disable(void) { TIMSK3 &= ~_BV(OCIE3A); } +#elif defined(RGB_BACKLIGHT_NEBULA12) //STM32, use GPT with TIM3. Enable in halconf.h +static void gpt_backlight_timer_task(GPTDriver *gptp); +// Timer setup at 200Khz, callback at 10k ticks = 20Hz +static GPTConfig gpt3cfg1 = { + .frequency = 200000U, + .callback = gpt_backlight_timer_task +}; + +void backlight_timer_init(void) +{ + gptStart(&GPTD3, &gpt3cfg1); +} + +void backlight_timer_enable(void) +{ + gptStartContinuous(&GPTD3, 10000); +} + +void backlight_timer_disable(void) +{ + gptStopTimer(&GPTD3); +} #else //STM32, use GPT with TIM4. Enable in halconf.h static void gpt_backlight_timer_task(GPTDriver *gptp); // Timer setup at 200Khz, callback at 10k ticks = 20Hz @@ -1398,7 +1484,7 @@ void backlight_timer_disable(void) { gptStopTimer(&GPTD4); } -#endif //!defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) +#endif //!defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) && !defined(RGB_BACKLIGHT_NEBULA12) void backlight_set_suspend_state(bool state) { @@ -1635,7 +1721,7 @@ void backlight_effect_cycle_all(void) for ( int i=0; i= 9-1 && index <= 12-1 ) ); // A9-A12 #endif // This only caches it for later IS31FL3731_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 ); +#if !defined(RGB_BACKLIGHT_NEBULA12) IS31FL3731_update_led_control_registers( ISSI_ADDR_2, 1 ); +#endif #if defined(RGB_BACKLIGHT_U80_A) IS31FL3731_update_led_control_registers( ISSI_ADDR_3, 2 ); #endif From 43b6f031b184432eba647f04bc69ced72ee2dd08 Mon Sep 17 00:00:00 2001 From: Pierre Chevalier Date: Thu, 18 Jun 2020 06:18:16 +0100 Subject: [PATCH 008/154] [Keymap] Add pierrec83's Kyria keymap (#9401) --- keyboards/kyria/keymaps/pierrec83/config.h | 65 +++++++++++++++++++ keyboards/kyria/keymaps/pierrec83/encoders.c | 63 ++++++++++++++++++ keyboards/kyria/keymaps/pierrec83/keymap.c | 18 +++++ keyboards/kyria/keymaps/pierrec83/keymap.json | 1 + keyboards/kyria/keymaps/pierrec83/layers.h | 7 ++ keyboards/kyria/keymaps/pierrec83/readme.md | 44 +++++++++++++ keyboards/kyria/keymaps/pierrec83/rules.mk | 5 ++ 7 files changed, 203 insertions(+) create mode 100644 keyboards/kyria/keymaps/pierrec83/config.h create mode 100644 keyboards/kyria/keymaps/pierrec83/encoders.c create mode 100644 keyboards/kyria/keymaps/pierrec83/keymap.c create mode 100644 keyboards/kyria/keymaps/pierrec83/keymap.json create mode 100644 keyboards/kyria/keymaps/pierrec83/layers.h create mode 100644 keyboards/kyria/keymaps/pierrec83/readme.md create mode 100644 keyboards/kyria/keymaps/pierrec83/rules.mk diff --git a/keyboards/kyria/keymaps/pierrec83/config.h b/keyboards/kyria/keymaps/pierrec83/config.h new file mode 100644 index 000000000000..eb222c0d7ae7 --- /dev/null +++ b/keyboards/kyria/keymaps/pierrec83/config.h @@ -0,0 +1,65 @@ +/* Copyright 2020 Pierre Chevalier + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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_DRIVER_ENABLE + #define OLED_DISPLAY_128X64 +#endif + +#ifdef RGBLIGHT_ENABLE + #define RGBLIGHT_ANIMATIONS + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 +#endif + +#ifdef ENCODER_ENABLE + #define ENCODER_DIRECTION_FLIP + #define ENCODER_RESOLUTION 2 +#endif + +#define TAPPING_TERM 200 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_FORCE_HOLD +// Allows to use either side as the master. Look at the documentation for info: +// https://docs.qmk.fm/#/config_options?id=setting-handedness +#define EE_HANDS + +// Allows media codes to properly register in macros and rotary encoder code +#define TAP_CODE_DELAY 10 + +// If you are using an Elite C rev3 on the slave side, uncomment the lines below: +// #define SPLIT_USB_DETECT +// #define NO_USB_STARTUP_CHECK + +// Set the mouse settings to a comfortable speed/accuracy trade-off +// Assume the screen refresh rate is 60 Htz or higher +// The default is 50. This makes the mouse ~3 times faster and more accurate +#define MOUSEKEY_INTERVAL 16 +// The default is 20. Since we made the mouse about 3 times faster with the previous setting, +// give it more time to accelerate to max speed to retain precise control over short distances. +#define MOUSEKEY_TIME_TO_MAX 40 +// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive +#define MOUSEKEY_DELAY 100 +// It makes sense to use the same delay for the mouseweel +#define MOUSEKEY_WHEEL_DELAY 100 +// The default is 100 +#define MOUSEKEY_WHEEL_INTERVAL 50 +// The default is 40 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 100 + diff --git a/keyboards/kyria/keymaps/pierrec83/encoders.c b/keyboards/kyria/keymaps/pierrec83/encoders.c new file mode 100644 index 000000000000..2497b9eb732c --- /dev/null +++ b/keyboards/kyria/keymaps/pierrec83/encoders.c @@ -0,0 +1,63 @@ +#include QMK_KEYBOARD_H +#include "layers.h" + +#ifdef ENCODER_ENABLE + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case WORKMAN: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + case SYMBOLS: + case FN: + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + break; + case NAV: + case RNAV: + default: + if (clockwise) { + tap_code16(C(A(KC_RIGHT))); + } else { + tap_code16(C(A(KC_LEFT))); + } + break; + } + } else if (index == 1) { + switch (get_highest_layer(layer_state)) { + case WORKMAN: + if (clockwise) { + tap_code(KC_BRIU); + } else { + tap_code(KC_BRID); + } + break; + case SYMBOLS: + case FN: + if (clockwise) { + tap_code16(C(KC_RIGHT)); + } else { + tap_code16(C(KC_LEFT)); + } + break; + case NAV: + case RNAV: + default: + if (clockwise) { + tap_code16(C(KC_TAB)); + } else { + tap_code16(C(S(KC_TAB))); + } + break; + } + } +} +#endif diff --git a/keyboards/kyria/keymaps/pierrec83/keymap.c b/keyboards/kyria/keymaps/pierrec83/keymap.c new file mode 100644 index 000000000000..204895dc1049 --- /dev/null +++ b/keyboards/kyria/keymaps/pierrec83/keymap.c @@ -0,0 +1,18 @@ +#include QMK_KEYBOARD_H + +/* THIS FILE WAS GENERATED! + * + * This file was generated by qmk json2c. You may or may not want to + * edit it directly. + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_NO, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_NO, KC_NO, LSFT_T(KC_A), LT(5,KC_S), LT(1,KC_H), LT(3,KC_T), KC_G, KC_Y, LT(4,KC_N), LT(2,KC_E), LT(6,KC_O), LSFT_T(KC_I), KC_NO, KC_NO, KC_Z, KC_X, KC_M, KC_C, KC_V, TG(2), TG(2), TG(1), TG(1), KC_K, KC_L, LALT_T(KC_COMM), LCTL_T(KC_DOT), KC_SLSH, KC_NO, KC_NO, KC_NO, LCA(KC_LEFT), KC_BSPC, KC_NO, KC_NO, LT(7,KC_SPC), LCA(KC_RGHT), KC_NO, KC_NO), + [1] = LAYOUT(KC_TRNS, KC_TRNS, LCTL(LSFT(KC_C)), KC_PGUP, LCTL(LSFT(KC_V)), KC_TRNS, RGB_MOD, KC_BTN1, KC_WH_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_NO, KC_BTN1, KC_TRNS, RGB_RMOD, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, TG(1), TG(1), KC_TRNS, KC_TRNS, RGB_TOG, KC_WH_L, KC_WH_D, KC_WH_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LCTL(LSFT(KC_TAB)), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_TAB), KC_TRNS, KC_TRNS), + [2] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_TRNS, RGB_RMOD, KC_LGUI, KC_NO, LCTL(KC_LALT), LCA(KC_LSFT), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, TG(2), TG(2), RGB_TOG, KC_TRNS, KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LGUI(KC_LEFT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LGUI(KC_RGHT), KC_TRNS, KC_TRNS), + [3] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PIPE, KC_QUOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_CIRC, KC_ASTR, KC_AMPR, KC_NO, KC_TRNS, KC_HASH, KC_TILD, KC_SLSH, KC_DQUO, KC_DLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_BSLS, KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BRID, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BRIU, KC_TRNS, KC_TRNS), + [4] = LAYOUT(KC_TRNS, KC_TRNS, KC_COLN, KC_LT, KC_GT, KC_SCLN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_AT, KC_TRNS, KC_NO, KC_EQL, KC_PLUS, KC_PERC, KC_TRNS, KC_TRNS, KC_TRNS, KC_EXLM, KC_LBRC, KC_RBRC, KC_TRNS, KC_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_VOLU, KC_TRNS, KC_TRNS), + [5] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_LALT), KC_TRNS, KC_TRNS, KC_TRNS), + [6] = LAYOUT(KC_TRNS, KC_PSLS, KC_7, KC_8, KC_9, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_4, KC_5, KC_6, KC_PMNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_1, KC_2, KC_3, KC_PEQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [7] = LAYOUT(KC_TRNS, KC_TRNS, KC_ESC, KC_COLN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_PERC, KC_SLSH, KC_ENT, KC_EXLM, KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT_T(KC_COMM), RCTL_T(KC_DOT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/kyria/keymaps/pierrec83/keymap.json b/keyboards/kyria/keymaps/pierrec83/keymap.json new file mode 100644 index 000000000000..79d88009c123 --- /dev/null +++ b/keyboards/kyria/keymaps/pierrec83/keymap.json @@ -0,0 +1 @@ +{"version":1,"notes":"My awesome 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":"kyria/rev1","keymap":"pierrec83","layout":"LAYOUT","layers":[["KC_NO","KC_Q","KC_D","KC_R","KC_W","KC_B","KC_J","KC_F","KC_U","KC_P","KC_SCLN","KC_NO","KC_NO","LSFT_T(KC_A)","LT(5,KC_S)","LT(1,KC_H)","LT(3,KC_T)","KC_G","KC_Y","LT(4,KC_N)","LT(2,KC_E)","LT(6,KC_O)","LSFT_T(KC_I)","KC_NO","KC_NO","KC_Z","KC_X","KC_M","KC_C","KC_V","TG(2)","TG(2)","TG(1)","TG(1)","KC_K","KC_L","LALT_T(KC_COMM)","LCTL_T(KC_DOT)","KC_SLSH","KC_NO","KC_NO","KC_NO","LCA(KC_LEFT)","KC_BSPC","KC_NO","KC_NO","LT(7,KC_SPC)","LCA(KC_RGHT)","KC_NO","KC_NO"],["KC_TRNS","KC_TRNS","ANY(LCTL(LSFT(KC_C)))","KC_PGUP","ANY(LCTL(LSFT(KC_V)))","KC_TRNS","RGB_MOD","KC_BTN1","KC_WH_U","KC_BTN2","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_BTN2","KC_NO","KC_BTN1","KC_TRNS","RGB_RMOD","KC_MS_L","KC_MS_D","KC_MS_U","KC_MS_R","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PGDN","KC_TRNS","KC_TRNS","TG(1)","TG(1)","KC_TRNS","KC_TRNS","RGB_TOG","KC_WH_L","KC_WH_D","KC_WH_R","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","ANY(LCTL(LSFT(KC_TAB)))","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","LCTL(KC_TAB)","KC_TRNS","KC_TRNS"],["KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","RGB_MOD","KC_TRNS","KC_WH_U","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_LEFT","KC_UP","KC_DOWN","KC_RGHT","KC_TRNS","RGB_RMOD","KC_LGUI","KC_NO","LCTL(KC_LALT)","LCA(KC_LSFT)","KC_TRNS","KC_TRNS","KC_TRNS","KC_HOME","KC_PGDN","KC_END","KC_TRNS","KC_TRNS","KC_TRNS","TG(2)","TG(2)","RGB_TOG","KC_TRNS","KC_WH_D","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","LGUI(KC_LEFT)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","LGUI(KC_RGHT)","KC_TRNS","KC_TRNS"],["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_UNDS","KC_PIPE","KC_QUOT","KC_TRNS","KC_TRNS","KC_TRNS","KC_CIRC","KC_ASTR","KC_AMPR","KC_NO","KC_TRNS","KC_HASH","KC_TILD","KC_SLSH","KC_DQUO","KC_DLR","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_MINS","KC_BSLS","KC_GRV","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_BRID","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_BRIU","KC_TRNS","KC_TRNS"],["KC_TRNS","KC_TRNS","KC_COLN","KC_LT","KC_GT","KC_SCLN","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_LCBR","KC_RCBR","KC_LPRN","KC_RPRN","KC_AT","KC_TRNS","KC_NO","KC_EQL","KC_PLUS","KC_PERC","KC_TRNS","KC_TRNS","KC_TRNS","KC_EXLM","KC_LBRC","KC_RBRC","KC_TRNS","KC_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_VOLU","KC_TRNS","KC_TRNS"],["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_F7","KC_F8","KC_F9","KC_F10","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_F4","KC_F5","KC_F6","KC_F11","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_F1","KC_F2","KC_F3","KC_F12","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","LCTL(KC_LALT)","KC_TRNS","KC_TRNS","KC_TRNS"],["KC_TRNS","KC_PSLS","KC_7","KC_8","KC_9","KC_PPLS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_0","KC_4","KC_5","KC_6","KC_PMNS","KC_TRNS","KC_TRNS","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PAST","KC_1","KC_2","KC_3","KC_PEQL","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"],["KC_TRNS","KC_TRNS","KC_ESC","KC_COLN","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_DEL","KC_TRNS","KC_TRNS","KC_TRNS","KC_PERC","KC_SLSH","KC_ENT","KC_EXLM","KC_TRNS","KC_LGUI","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RALT_T(KC_COMM)","RCTL_T(KC_DOT)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TAB","KC_TRNS","KC_TRNS","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS"]],"author":"Anonymous"} \ No newline at end of file diff --git a/keyboards/kyria/keymaps/pierrec83/layers.h b/keyboards/kyria/keymaps/pierrec83/layers.h new file mode 100644 index 000000000000..12a988d37e43 --- /dev/null +++ b/keyboards/kyria/keymaps/pierrec83/layers.h @@ -0,0 +1,7 @@ +enum layers { + WORKMAN = 0, + RNAV, + NAV, + SYMBOLS, + FN, +}; diff --git a/keyboards/kyria/keymaps/pierrec83/readme.md b/keyboards/kyria/keymaps/pierrec83/readme.md new file mode 100644 index 000000000000..fae22f83666c --- /dev/null +++ b/keyboards/kyria/keymaps/pierrec83/readme.md @@ -0,0 +1,44 @@ +@pierrec83's keymap for the Kyria +=== + +A comfortable for me using 34 keys. + +This keymap has evolved over a period of time from iterating as I observed pain points in my interacting with my home and work computers (MacOS and Linux. I edited many of the shortcuts in MacOS to match those in Linux for consistency). + +Features +--- +* Mouse keys with constants tuned so the keyboard usable for me as my sole pointing device +* Homerow layers activation +* Minimal unhoming of the thumbs (the one side thumb key I do use does not overlap with typing english or code) +* Minimal side-index motion thanks to workman base layer and similar principles in other layers +* Two symbol layers, both activated with one homerow key and either another key on the same hand's homerow or a key from the other hand +* Mousing around, including left and right clicking can be done either one-handed or fully on the homerow with both hands +* Easy chaining of common command line or vim patterns, such as `~/`, `()`, `ESC : w ENTER` etc. +* Outer pinky columns unused for ergonomic reasons +* Common OS shortcuts like switching workspaces on gnome or MacOS easily accessible (for the shortcuts I use. This may not apply to others) + +Instructions to update the keymap +--- + +For now, I am still more comfortable updating the keymap through the qmk configurator as I don't trust myself to manually keep comments describing the keymap in sync with the code itself. This means that my keymap.c is generated and not really readable. For a readble view of my keymap, one must import keymap.json into [qmk configurator](https://config.qmk.fm) and use the web UI or print it. + +To update the keymap, +* Load keymap.json into qmk configurator +* Perform any edits +* Export the keymap. This should save a json file in `~/Downloads/pierrec83.json` or equivalent for your OS +* From the root of qmk_firmware, move the keymap to its destination: +``` +mv ~/Downloads/pierrec83.json keyboards/kyria/keymaps/pierrec83/keymap.json +``` +* Regenerate the `keymap.c`: +``` +qmk json2c keyboards/kyria/keymaps/pierrec83/keymap.json -o keyboards/kyria/keymaps/pierrec83/keymap.c +``` +* Flash the firmware (for instance, if left hand is plugged): +``` +qmk flash -kb kyria -km pierrec83 -bl dfu-split-left +``` + +Author +--- +I am @pierrec83 on Twitter, @pierrechevalier83 on github. I chose the shorter nickname for my keymap. diff --git a/keyboards/kyria/keymaps/pierrec83/rules.mk b/keyboards/kyria/keymaps/pierrec83/rules.mk new file mode 100644 index 000000000000..78f0ac93f1a5 --- /dev/null +++ b/keyboards/kyria/keymaps/pierrec83/rules.mk @@ -0,0 +1,5 @@ +OLED_DRIVER_ENABLE = no # Enables the use of OLED displays +ENCODER_ENABLE = yes # ENables the use of one or more encoders +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + +SRC += encoders.c From 78fdd406227f55f8bb2a1891e7fdbcb4b3daf13b Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 18 Jun 2020 01:20:45 -0400 Subject: [PATCH 009/154] [Keymap] Dcompact for iris (#9406) Co-authored-by: Dan Herrera Co-authored-by: Ryan --- .../keebio/iris/keymaps/dcompact/config.h | 21 ++ .../keebio/iris/keymaps/dcompact/keymap.c | 231 ++++++++++++++++++ .../keebio/iris/keymaps/dcompact/readme.md | 45 ++++ 3 files changed, 297 insertions(+) create mode 100644 keyboards/keebio/iris/keymaps/dcompact/config.h create mode 100644 keyboards/keebio/iris/keymaps/dcompact/keymap.c create mode 100644 keyboards/keebio/iris/keymaps/dcompact/readme.md diff --git a/keyboards/keebio/iris/keymaps/dcompact/config.h b/keyboards/keebio/iris/keymaps/dcompact/config.h new file mode 100644 index 000000000000..149a54be7fa3 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/dcompact/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 EE_HANDS diff --git a/keyboards/keebio/iris/keymaps/dcompact/keymap.c b/keyboards/keebio/iris/keymaps/dcompact/keymap.c new file mode 100644 index 000000000000..ec1ffac8c18e --- /dev/null +++ b/keyboards/keebio/iris/keymaps/dcompact/keymap.c @@ -0,0 +1,231 @@ +#include QMK_KEYBOARD_H + +// Custom Keycodes and Combinations Used +#define DEL_SHF SFT_T(KC_DEL) +#define QUAKE LCTL(KC_GRV) + +#define WKSP_L LALT(LCTL(KC_LEFT)) +#define WKSP_D LALT(LCTL(KC_DOWN)) +#define WKSP_U LALT(LCTL(KC_UP)) +#define WKSP_R LALT(LCTL(KC_RGHT)) + +enum custom_layers { + _BASE, + _LOWER, + _RAISE, + _FUNC, + _GAME, + _LNUM, + _LFUN, + _ADJUST +}; + + +enum custom_keycodes { + BASE = SAFE_RANGE, + LOWER, + RAISE, + FUNC, + GAME, + EXT_GM, + LNUM, + LFUN, + ADJUST +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + 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_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + DEL_SHF, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSPC, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LCTL, GAME, KC_LGUI, KC_LALT, LOWER, KC_LSFT, _______, _______, KC_SPC, RAISE, KC_RALT, KC_RGUI, FUNC, KC_ENT, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + KC_LALT, LOWER, KC_LSFT, KC_SPC, RAISE, KC_RALT + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_LOWER] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX, KC_PSCR, KC_MENU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX, KC_CAPS, KC_LNUM, KC_INS, XXXXXXX, XXXXXXX, XXXXXXX, WKSP_L, WKSP_D, WKSP_U, WKSP_R, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, _______, _______, XXXXXXX, _______, XXXXXXX + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_RAISE] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + QUAKE, KC_GRV, KC_TILD, KC_BSLS, KC_PIPE, KC_LPRN, KC_RPRN, KC_7, KC_8, KC_9, KC_SLSH, KC_EQL, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_4, KC_5, KC_6, KC_ASTR, KC_PLUS, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_1, KC_2, KC_3, KC_MINS, KC_BSPC, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, XXXXXXX, _______, _______, _______, KC_LABK, XXXXXXX, XXXXXXX, KC_RABK, _______, KC_0, KC_DOT, KC_COMM, XXXXXXX, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, _______, KC_LABK, KC_RABK, _______, KC_0 + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_FUNC] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + XXXXXXX, KC_SLEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX, KC_WAKE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX, KC_PWR, KC_MRWD, KC_MPLY, KC_MFFD, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_GAME] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_TAB, KC_Q, KC_W, KC_E, KC_H, KC_Z, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LSFT, KC_A, KC_S, KC_D, KC_U, KC_X, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LCTL, KC_F, KC_G, KC_R, KC_M, KC_C, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_ESC, KC_TILD, KC_LALT, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EXT_GM, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + KC_SPC, LNUM, LFUN, XXXXXXX, XXXXXXX, XXXXXXX + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_LNUM] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______, KC_1, KC_2, KC_3, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, KC_5, KC_6, KC_7, KC_8, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, KC_9, KC_0, KC_COMM, KC_DOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_LFUN] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, 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 + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_ADJUST] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, BL_STEP, RGB_TOG, RGB_HUI, RGB_SAI, RGB_SAI, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, BL_BRTG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ) +}; + +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; + 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; + case FUNC: + if (record->event.pressed) { + layer_on(_FUNC); + } else { + layer_off(_FUNC); + } + return false; + case GAME: + if (!record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_song); + #endif + rgblight_mode(RGBLIGHT_MODE_SNAKE); + layer_on(_GAME); + } + return false; + case EXT_GM: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_gb_song); + #endif + rgblight_mode(RGBLIGHT_MODE_RAINBOW_MOOD); + layer_off(_GAME); + } + return false; + case LNUM: + if (record->event.pressed) { + layer_on(_LNUM); + } else { + layer_off(_LNUM); + } + return false; + case LFUN: + if (record->event.pressed) { + layer_on(_LFUN); + } else { + layer_off(_LFUN); + } + return false; + } + return true; +} + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + else if (index == 1) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } +} diff --git a/keyboards/keebio/iris/keymaps/dcompact/readme.md b/keyboards/keebio/iris/keymaps/dcompact/readme.md new file mode 100644 index 000000000000..f3f3d8ca6ead --- /dev/null +++ b/keyboards/keebio/iris/keymaps/dcompact/readme.md @@ -0,0 +1,45 @@ +# DCompact Layout + +**Dvorak, Layered, Mouse-Enabled, Compact -- now with Game Mode~** + +_See [the layout source](keymap.c) for the actual layout_ + +## Goals + +The following are the goals kept in mind when designing the DCompact +layout: + +- Provide minimal travel distance when typing English or coding +- Consistent muscle memory translation from standard QWERTY +- Stateless typing experience +- OS-agnostic features, macros, and key placement +- Minimize dependence on mouse usage + +These are generally all met or balanced within reason. This layout is +not intended at all to be a familiar layout for much of anyone (except +maybe those who already type in Dvorak) -- this is meant to amplify the +best parts of having limited, ortholinear keys with layering. + +## As Reference Material + +If you're reading this hoping to find reference material to implement +your own layout, then please feel free to copy over this layout and +make edits where you see fit. I removed a lot of the features I felt +extraneous to my usage and simplified style where I felt needed. This +would hopefully mean that my code should feel like a good base to +develop from for those new to QMK. + +_Remember that settings defined in the layout directory override and +merge with those in the keyboard folder_ + +## Relevant Links + +- [Online Dvorak Layout Trainer](https://learn.dvorak.nl/) +- [Dvorak Wikipedia Page](https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard) +- [QMK Docs](https://docs.qmk.fm/#/) +- [QMK KeyCode Reference](https://docs.qmk.fm/#/keycodes) + +## Contact + +Maintainer: [Dan](https://github.com/loksonarius) + From aae1814319c4992471d074ed18b8b7b4842b0a66 Mon Sep 17 00:00:00 2001 From: Yasha Mostofi Date: Thu, 18 Jun 2020 02:06:11 -0500 Subject: [PATCH 010/154] [Keyboard] Add Via support for Let's Split v2 (#9448) * initial let's split with rgb * Revert default * Add Via keymap * Remove my keymap * Remove trailing slashes --- keyboards/lets_split/keymaps/via/config.h | 40 ++++++++++++ keyboards/lets_split/keymaps/via/keymap.c | 77 +++++++++++++++++++++++ keyboards/lets_split/keymaps/via/rules.mk | 4 ++ keyboards/lets_split/rev2/config.h | 6 +- 4 files changed, 124 insertions(+), 3 deletions(-) create mode 100644 keyboards/lets_split/keymaps/via/config.h create mode 100644 keyboards/lets_split/keymaps/via/keymap.c create mode 100644 keyboards/lets_split/keymaps/via/rules.mk diff --git a/keyboards/lets_split/keymaps/via/config.h b/keyboards/lets_split/keymaps/via/config.h new file mode 100644 index 000000000000..df24c53cde2d --- /dev/null +++ b/keyboards/lets_split/keymaps/via/config.h @@ -0,0 +1,40 @@ +/* +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 +#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } + +/* Use I2C or Serial, not both */ +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 10 diff --git a/keyboards/lets_split/keymaps/via/keymap.c b/keyboards/lets_split/keymaps/via/keymap.c new file mode 100644 index 000000000000..1509a2e6a2ce --- /dev/null +++ b/keyboards/lets_split/keymaps/via/keymap.c @@ -0,0 +1,77 @@ +#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 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Reset | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[0] = 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 , + RESET, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |---`---+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | MO(3)| Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[1] = 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_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),_______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(3), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 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 | + * `-----------------------------------------------------------------------------------' + */ +[2] = 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_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_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | |rgb_md|Aud on|Audoff|AGnorm|AGswap| | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[3] = LAYOUT_ortho_4x12( + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, RGB_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; diff --git a/keyboards/lets_split/keymaps/via/rules.mk b/keyboards/lets_split/keymaps/via/rules.mk new file mode 100644 index 000000000000..48e7e7f25fd9 --- /dev/null +++ b/keyboards/lets_split/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +RGBLIGHT_ENABLE = yes # LED strips +VIA_ENABLE = yes +LTO_ENABLE = yes +MOUSEKEY_ENABLE = no diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h index 0977d7c6701c..d5b5b57d0351 100644 --- a/keyboards/lets_split/rev2/config.h +++ b/keyboards/lets_split/rev2/config.h @@ -19,9 +19,9 @@ along with this program. If not, see . #pragma once /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 -#define DEVICE_VER 0x0001 +#define VENDOR_ID 0x6F77 +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0002 #define MANUFACTURER Wootpatoot #define PRODUCT Lets Split v2 #define DESCRIPTION A split keyboard for the cheap makers From f7eb030e917a8fa360ad7cc7bb26d804cf4c5f6c Mon Sep 17 00:00:00 2001 From: Jason Laqua Date: Thu, 18 Jun 2020 02:07:34 -0500 Subject: [PATCH 011/154] Standardize how unicode is processed (fixes #8768) (#8770) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Konstantin Đorđević --- docs/feature_unicode.md | 13 ++- quantum/process_keycode/process_ucis.c | 97 ++++++++----------- quantum/process_keycode/process_ucis.h | 26 +++-- .../process_keycode/process_unicode_common.c | 25 ++++- .../process_keycode/process_unicode_common.h | 2 + quantum/process_keycode/process_unicodemap.c | 21 +--- 6 files changed, 89 insertions(+), 95 deletions(-) diff --git a/docs/feature_unicode.md b/docs/feature_unicode.md index a6f2cb4d0de9..aedffe4ea253 100644 --- a/docs/feature_unicode.md +++ b/docs/feature_unicode.md @@ -66,13 +66,16 @@ Then define a table like this in your keymap file: ```c const qk_ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE( - UCIS_SYM("poop", 0x1F4A9), // 💩 - UCIS_SYM("rofl", 0x1F923), // 🤣 - UCIS_SYM("kiss", 0x1F619) // 😙 + UCIS_SYM("poop", 0x1F4A9), // 💩 + UCIS_SYM("rofl", 0x1F923), // 🤣 + UCIS_SYM("cuba", 0x1F1E8, 0x1F1FA), // 🇨🇺 + UCIS_SYM("look", 0x0CA0, 0x005F, 0x0CA0), // ಠ_ಠ ); ``` -To use it, call `qk_ucis_start()`. Then, type the mnemonic for the character (such as "rofl"), and hit Space or Enter. QMK should erase the "rofl" text and insert the laughing emoji. +By default, each table entry may be up to 3 code points long. This number can be changed by adding `#define UCIS_MAX_CODE_POINTS n` to your `config.h` file. + +To use UCIS input, call `qk_ucis_start()`. Then, type the mnemonic for the character (such as "rofl") and hit Space, Enter or Esc. QMK should erase the "rofl" text and insert the laughing emoji. ### Customization @@ -90,7 +93,7 @@ Unicode input in QMK works by inputting a sequence of characters to the OS, sort The following input modes are available: -* **`UC_MAC`**: macOS built-in Unicode hex input. Supports code points up to `0xFFFF` (`0x10FFFF` with Unicode Map). +* **`UC_MAC`**: macOS built-in Unicode hex input. Supports code points up to `0x10FFFF` (all possible code points). To enable, go to _System Preferences > Keyboard > Input Sources_, add _Unicode Hex Input_ to the list (it's under _Other_), then activate it from the input dropdown in the Menu Bar. By default, this mode uses the left Option key (`KC_LALT`) for Unicode input, but this can be changed by defining [`UNICODE_KEY_MAC`](#input-key-configuration) with another keycode. diff --git a/quantum/process_keycode/process_ucis.c b/quantum/process_keycode/process_ucis.c index 024077317f3d..2541d6eb2612 100644 --- a/quantum/process_keycode/process_ucis.c +++ b/quantum/process_keycode/process_ucis.c @@ -27,7 +27,7 @@ void qk_ucis_start(void) { __attribute__((weak)) void qk_ucis_start_user(void) { unicode_input_start(); - register_hex(0x2328); + register_hex(0x2328); // ⌨ unicode_input_finish(); } @@ -35,74 +35,54 @@ __attribute__((weak)) void qk_ucis_success(uint8_t symbol_index) {} static bool is_uni_seq(char *seq) { uint8_t i; - for (i = 0; seq[i]; i++) { - uint16_t code; - if (('1' <= seq[i]) && (seq[i] <= '0')) - code = seq[i] - '1' + KC_1; - else - code = seq[i] - 'a' + KC_A; - - if (i > qk_ucis_state.count || qk_ucis_state.codes[i] != code) return false; + uint16_t keycode; + if ('1' <= seq[i] && seq[i] <= '0') { + keycode = seq[i] - '1' + KC_1; + } else { + keycode = seq[i] - 'a' + KC_A; + } + if (i > qk_ucis_state.count || qk_ucis_state.codes[i] != keycode) { + return false; + } } - - return (qk_ucis_state.codes[i] == KC_ENT || qk_ucis_state.codes[i] == KC_SPC); + return qk_ucis_state.codes[i] == KC_ENT || qk_ucis_state.codes[i] == KC_SPC; } __attribute__((weak)) void qk_ucis_symbol_fallback(void) { for (uint8_t i = 0; i < qk_ucis_state.count - 1; i++) { - uint8_t code = qk_ucis_state.codes[i]; - register_code(code); - unregister_code(code); + uint8_t keycode = qk_ucis_state.codes[i]; + register_code(keycode); + unregister_code(keycode); wait_ms(UNICODE_TYPE_DELAY); } } __attribute__((weak)) void qk_ucis_cancel(void) {} -void register_ucis(const char *hex) { - for (int i = 0; hex[i]; i++) { - uint8_t kc = 0; - char c = hex[i]; - - switch (c) { - case '0': - kc = KC_0; - break; - case '1' ... '9': - kc = c - '1' + KC_1; - break; - case 'a' ... 'f': - kc = c - 'a' + KC_A; - break; - case 'A' ... 'F': - kc = c - 'A' + KC_A; - break; - } - - if (kc) { - register_code(kc); - unregister_code(kc); - wait_ms(UNICODE_TYPE_DELAY); - } +void register_ucis(const uint32_t *code_points) { + for (int i = 0; i < UCIS_MAX_CODE_POINTS && code_points[i]; i++) { + register_unicode(code_points[i]); + wait_ms(UNICODE_TYPE_DELAY); } } bool process_ucis(uint16_t keycode, keyrecord_t *record) { - uint8_t i; - - if (!qk_ucis_state.in_progress) return true; + if (!qk_ucis_state.in_progress || !record->event.pressed) { + return true; + } - if (qk_ucis_state.count >= UCIS_MAX_SYMBOL_LENGTH && !(keycode == KC_BSPC || keycode == KC_ESC || keycode == KC_SPC || keycode == KC_ENT)) { + bool special = keycode == KC_SPC || keycode == KC_ENT || + keycode == KC_ESC || keycode == KC_BSPC; + if (qk_ucis_state.count >= UCIS_MAX_SYMBOL_LENGTH && !special) { return false; } - if (!record->event.pressed) return true; - qk_ucis_state.codes[qk_ucis_state.count] = keycode; qk_ucis_state.count++; - if (keycode == KC_BSPC) { + switch (keycode) { + case KC_BSPC: if (qk_ucis_state.count >= 2) { qk_ucis_state.count -= 2; return true; @@ -110,12 +90,11 @@ bool process_ucis(uint16_t keycode, keyrecord_t *record) { qk_ucis_state.count--; return false; } - } - if (keycode == KC_ENT || keycode == KC_SPC || keycode == KC_ESC) { - bool symbol_found = false; - - for (i = qk_ucis_state.count; i > 0; i--) { + case KC_SPC: + case KC_ENT: + case KC_ESC: + for (uint8_t i = 0; i < qk_ucis_state.count; i++) { register_code(KC_BSPC); unregister_code(KC_BSPC); wait_ms(UNICODE_TYPE_DELAY); @@ -127,25 +106,25 @@ bool process_ucis(uint16_t keycode, keyrecord_t *record) { return false; } - unicode_input_start(); + uint8_t i; + bool symbol_found = false; for (i = 0; ucis_symbol_table[i].symbol; i++) { if (is_uni_seq(ucis_symbol_table[i].symbol)) { symbol_found = true; - register_ucis(ucis_symbol_table[i].code + 2); + register_ucis(ucis_symbol_table[i].code_points); break; } } - if (!symbol_found) { - qk_ucis_symbol_fallback(); - } - unicode_input_finish(); - if (symbol_found) { qk_ucis_success(i); + } else { + qk_ucis_symbol_fallback(); } qk_ucis_state.in_progress = false; return false; + + default: + return true; } - return true; } diff --git a/quantum/process_keycode/process_ucis.h b/quantum/process_keycode/process_ucis.h index 0f93a198bb0f..a667430bdace 100644 --- a/quantum/process_keycode/process_ucis.h +++ b/quantum/process_keycode/process_ucis.h @@ -22,10 +22,13 @@ #ifndef UCIS_MAX_SYMBOL_LENGTH # define UCIS_MAX_SYMBOL_LENGTH 32 #endif +#ifndef UCIS_MAX_CODE_POINTS +# define UCIS_MAX_CODE_POINTS 3 +#endif typedef struct { - char *symbol; - char *code; + char * symbol; + uint32_t code_points[UCIS_MAX_CODE_POINTS]; } qk_ucis_symbol_t; typedef struct { @@ -36,12 +39,17 @@ typedef struct { extern qk_ucis_state_t qk_ucis_state; -#define UCIS_TABLE(...) \ - { \ - __VA_ARGS__, { NULL, NULL } \ +// clang-format off + +#define UCIS_TABLE(...) \ + { \ + __VA_ARGS__, \ + { NULL, {} } \ } -#define UCIS_SYM(name, code) \ - { name, #code } +#define UCIS_SYM(name, ...) \ + { name, {__VA_ARGS__} } + +// clang-format on extern const qk_ucis_symbol_t ucis_symbol_table[]; @@ -49,5 +57,7 @@ void qk_ucis_start(void); void qk_ucis_start_user(void); void qk_ucis_symbol_fallback(void); void qk_ucis_success(uint8_t symbol_index); -void register_ucis(const char *hex); + +void register_ucis(const uint32_t *code_points); + bool process_ucis(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_unicode_common.c b/quantum/process_keycode/process_unicode_common.c index fb502150120d..bea34c31eab7 100644 --- a/quantum/process_keycode/process_unicode_common.c +++ b/quantum/process_keycode/process_unicode_common.c @@ -171,6 +171,25 @@ void register_hex32(uint32_t hex) { } } +void register_unicode(uint32_t code_point) { + if (code_point > 0x10FFFF || (code_point > 0xFFFF && unicode_config.input_mode == UC_WIN)) { + // Code point out of range, do nothing + return; + } + + unicode_input_start(); + if (code_point > 0xFFFF && unicode_config.input_mode == UC_MAC) { + // Convert code point to UTF-16 surrogate pair on macOS + code_point -= 0x10000; + uint32_t lo = code_point & 0x3FF, hi = (code_point & 0xFFC00) >> 10; + register_hex32(hi + 0xD800); + register_hex32(lo + 0xDC00); + } else { + register_hex32(code_point); + } + unicode_input_finish(); +} + // clang-format off void send_unicode_hex_string(const char *str) { @@ -236,14 +255,12 @@ void send_unicode_string(const char *str) { return; } - int32_t code_point = 0; while (*str) { + int32_t code_point = 0; str = decode_utf8(str, &code_point); if (code_point >= 0) { - unicode_input_start(); - register_hex32(code_point); - unicode_input_finish(); + register_unicode(code_point); } } } diff --git a/quantum/process_keycode/process_unicode_common.h b/quantum/process_keycode/process_unicode_common.h index 4579fde8d5d6..3082fbb5f00d 100644 --- a/quantum/process_keycode/process_unicode_common.h +++ b/quantum/process_keycode/process_unicode_common.h @@ -89,6 +89,8 @@ void unicode_input_cancel(void); void register_hex(uint16_t hex); void register_hex32(uint32_t hex); +void register_unicode(uint32_t code_point); + void send_unicode_hex_string(const char *str); void send_unicode_string(const char *str); diff --git a/quantum/process_keycode/process_unicodemap.c b/quantum/process_keycode/process_unicodemap.c index 2f402a2fd239..789a90445bb2 100644 --- a/quantum/process_keycode/process_unicodemap.c +++ b/quantum/process_keycode/process_unicodemap.c @@ -36,25 +36,8 @@ __attribute__((weak)) uint16_t unicodemap_index(uint16_t keycode) { bool process_unicodemap(uint16_t keycode, keyrecord_t *record) { if (keycode >= QK_UNICODEMAP && keycode <= QK_UNICODEMAP_PAIR_MAX && record->event.pressed) { - unicode_input_start(); - - uint32_t code = pgm_read_dword(unicode_map + unicodemap_index(keycode)); - uint8_t input_mode = get_unicode_input_mode(); - - if (code > 0x10FFFF || (code > 0xFFFF && input_mode == UC_WIN)) { - // Character is out of range supported by the platform - unicode_input_cancel(); - } else if (code > 0xFFFF && input_mode == UC_MAC) { - // Convert to UTF-16 surrogate pair on Mac - code -= 0x10000; - uint32_t lo = code & 0x3FF, hi = (code & 0xFFC00) >> 10; - register_hex32(hi + 0xD800); - register_hex32(lo + 0xDC00); - unicode_input_finish(); - } else { - register_hex32(code); - unicode_input_finish(); - } + uint32_t code_point = pgm_read_dword(unicode_map + unicodemap_index(keycode)); + register_unicode(code_point); } return true; } From 9c1097e768aed90e4c56a3a18f6c1cc9cac52391 Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Thu, 18 Jun 2020 03:07:48 -0400 Subject: [PATCH 012/154] Fix for One Shot Layer not being cleaned up after some actions (#8832) --- tmk_core/common/action.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index b39836f0fb1e..82be9cc9209c 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -192,7 +192,14 @@ void process_record(keyrecord_t *record) { return; } - if (!process_record_quantum(record)) return; + if (!process_record_quantum(record)) { +#ifndef NO_ACTION_ONESHOT + if (is_oneshot_layer_active() && record->event.pressed) { + clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); + } +#endif + return; + } process_record_handler(record); post_process_record_quantum(record); @@ -231,7 +238,7 @@ void process_action(keyrecord_t *record, action_t action) { #ifndef NO_ACTION_ONESHOT bool do_release_oneshot = false; // notice we only clear the one shot layer if the pressed key is not a modifier. - if (is_oneshot_layer_active() && event.pressed && !IS_MOD(action.key.code) + if (is_oneshot_layer_active() && event.pressed && (action.kind.id == ACT_USAGE || !IS_MOD(action.key.code)) # ifdef SWAP_HANDS_ENABLE && !(action.kind.id == ACT_SWAP_HANDS && action.swap.code == OP_SH_ONESHOT) # endif From d88dca3ca79d908c34fb5bf4af40c52b4cfce7f8 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 18 Jun 2020 00:15:22 -0700 Subject: [PATCH 013/154] YMD75: move MCU/Bootloader rules to revision level (#9452) Work-around for an issue with QMK Configurator's API. --- keyboards/ymd75/rev1/rules.mk | 13 +++++++++++++ keyboards/ymd75/rev2/rules.mk | 13 +++++++++++++ keyboards/ymd75/rules.mk | 13 ------------- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/keyboards/ymd75/rev1/rules.mk b/keyboards/ymd75/rev1/rules.mk index 66ffbb499ddb..b77457b5ac3b 100644 --- a/keyboards/ymd75/rev1/rules.mk +++ b/keyboards/ymd75/rev1/rules.mk @@ -1,3 +1,16 @@ +# MCU name +MCU = atmega32a + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = bootloadHID + # build options BOOTMAGIC_ENABLE = yes MOUSEKEY_ENABLE = no diff --git a/keyboards/ymd75/rev2/rules.mk b/keyboards/ymd75/rev2/rules.mk index 66ffbb499ddb..b77457b5ac3b 100644 --- a/keyboards/ymd75/rev2/rules.mk +++ b/keyboards/ymd75/rev2/rules.mk @@ -1,3 +1,16 @@ +# MCU name +MCU = atmega32a + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = bootloadHID + # build options BOOTMAGIC_ENABLE = yes MOUSEKEY_ENABLE = no diff --git a/keyboards/ymd75/rules.mk b/keyboards/ymd75/rules.mk index 437f9f4a52cc..756d20c54c15 100644 --- a/keyboards/ymd75/rules.mk +++ b/keyboards/ymd75/rules.mk @@ -1,14 +1 @@ -# MCU name -MCU = atmega32a - -# Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp -BOOTLOADER = bootloadHID - DEFAULT_FOLDER = ymd75/rev1 From 716924de3e07eb4a6f39a9c8da9ba0fc64c7f796 Mon Sep 17 00:00:00 2001 From: Brad Arnett Date: Thu, 18 Jun 2020 03:01:22 -0700 Subject: [PATCH 014/154] [Keyboard] Added ymdk split64 based on walston's work (#9183) * Added ymdk split64 based on walson's work * Commented out features on walston's keymap as it was too big to compile * Update keyboards/ymdk_sp64/config.h * Update keyboards/ymdk_sp64/keymaps/daed/keymap.c * Update keyboards/ymdk_sp64/matrix.c * Update keyboards/ymdk_sp64/matrix.c * Update keyboards/ymdk_sp64/matrix.c * keymap changes * Update keyboards/ymdk_sp64/matrix.c * Update keyboards/ymdk_sp64/matrix.c * Update keyboards/ymdk_sp64/rules.mk * Update keyboards/ymdk_sp64/config.h * Update keyboards/ymdk_sp64/config.h * Update keyboards/ymdk_sp64/readme.md * Update keyboards/ymdk_sp64/rules.mk * Update keyboards/ymdk_sp64/config.h * Update keyboards/ymdk_sp64/rules.mk * Update keyboards/ymdk_sp64/ymdk_sp64.c * Update keyboards/ymdk_sp64/keymaps/walston/rules.mk * Update keyboards/ymdk_sp64/readme.md * Made requested changes and moved keyboard under ymdk directory * Update keyboards/ymdk/ymdk_sp64/keymaps/walston/keymap.c * Update keyboards/ymdk/ymdk_sp64/config.h * Update keyboards/ymdk/ymdk_sp64/config.h * Update keyboards/ymdk/ymdk_sp64/keymaps/default/keymap.c * Update keyboards/ymdk/ymdk_sp64/keymaps/default/keymap.c * updated changes for pr 9183 * updated changes for pr 9183 * updated changes for pr 9183 * Removed redundant "QMK_KEYBOARD_H" include --- keyboards/ymdk/sp64/config.h | 45 +++++ keyboards/ymdk/sp64/info.json | 79 +++++++++ keyboards/ymdk/sp64/keymaps/daed/keymap.c | 140 +++++++++++++++ keyboards/ymdk/sp64/keymaps/default/keymap.c | 74 ++++++++ keyboards/ymdk/sp64/keymaps/walston/keymap.c | 94 +++++++++++ keyboards/ymdk/sp64/keymaps/walston/rules.mk | 1 + keyboards/ymdk/sp64/matrix.c | 169 +++++++++++++++++++ keyboards/ymdk/sp64/readme.md | 17 ++ keyboards/ymdk/sp64/rules.mk | 32 ++++ keyboards/ymdk/sp64/sp64.c | 93 ++++++++++ keyboards/ymdk/sp64/sp64.h | 84 +++++++++ 11 files changed, 828 insertions(+) create mode 100644 keyboards/ymdk/sp64/config.h create mode 100644 keyboards/ymdk/sp64/info.json create mode 100644 keyboards/ymdk/sp64/keymaps/daed/keymap.c create mode 100644 keyboards/ymdk/sp64/keymaps/default/keymap.c create mode 100644 keyboards/ymdk/sp64/keymaps/walston/keymap.c create mode 100644 keyboards/ymdk/sp64/keymaps/walston/rules.mk create mode 100644 keyboards/ymdk/sp64/matrix.c create mode 100644 keyboards/ymdk/sp64/readme.md create mode 100644 keyboards/ymdk/sp64/rules.mk create mode 100644 keyboards/ymdk/sp64/sp64.c create mode 100644 keyboards/ymdk/sp64/sp64.h diff --git a/keyboards/ymdk/sp64/config.h b/keyboards/ymdk/sp64/config.h new file mode 100644 index 000000000000..fc3e2d7dc2b3 --- /dev/null +++ b/keyboards/ymdk/sp64/config.h @@ -0,0 +1,45 @@ +/* +Copyright 2019 Neil Kettle + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +#define VENDOR_ID 0x594D +#define PRODUCT_ID 0x5364 +#define DEVICE_VER 0x0200 +#define MANUFACTURER YMDK +#define PRODUCT SP64 +#define DESCRIPTION YMDK Split 64 + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +#define RIGHT_HALF + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* RGB underglow */ +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 250 /* The maximum brightness level */ +#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +#define RGBLIGHT_ANIMATIONS diff --git a/keyboards/ymdk/sp64/info.json b/keyboards/ymdk/sp64/info.json new file mode 100644 index 000000000000..798124d8480d --- /dev/null +++ b/keyboards/ymdk/sp64/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "YMDK_SP64", + "url": "", + "maintainer": "walston", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"~", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":8, "y":0}, + {"label":"*", "x":9, "y":0}, + {"label":"(", "x":10, "y":0}, + {"label":")", "x":11, "y":0}, + {"label":"_", "x":12, "y":0}, + {"label":"+", "x":13, "y":0}, + {"label":"Backspace", "x":14, "y":0, "w":2}, + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":7.5, "y":1}, + {"label":"U", "x":8.5, "y":1}, + {"label":"I", "x":9.5, "y":1}, + {"label":"O", "x":10.5, "y":1}, + {"label":"P", "x":11.5, "y":1}, + {"label":"{ ", "x":12.5, "y":1}, + {"label":"}", "x":13.5, "y":1}, + {"label":"|", "x":14.5, "y":1, "w":1.5}, + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":7.75, "y":2}, + {"label":"J", "x":8.75, "y":2}, + {"label":"K", "x":9.75, "y":2}, + {"label":"L", "x":10.75, "y":2}, + {"label":":", "x":11.75, "y":2}, + {"label":"\"", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":2, "w":2.25}, + {"label":"Shift", "x":0, "y":3, "w":2}, + {"label":"Z", "x":2, "y":3}, + {"label":"X", "x":3, "y":3}, + {"label":"C", "x":4, "y":3}, + {"label":"V", "x":5, "y":3}, + {"label":"B", "x":6, "y":3}, + {"label":"N", "x":8, "y":3}, + {"label":"M", "x":9, "y":3}, + {"label":"<", "x":10, "y":3}, + {"label":">", "x":11, "y":3}, + {"label":"?", "x":12, "y":3}, + {"label":"Shift", "x":13, "y":3}, + {"label":"Up", "x":14, "y":3}, + {"label":"F3", "x":15, "y":3}, + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4}, + {"label":"Alt", "x":2.25, "y":4, "w":1.25}, + {"label":"Space", "x":3.5, "y":4, "w":2.25}, + {"label":"Fn", "x":5.75, "y":4}, + {"label":"Space", "x":7.75, "y":4, "w":2.75}, + {"label":"Alt", "x":10.5, "y":4, "w":1.25}, + {"label":"Win", "x":11.75, "y":4, "w":1.25}, + {"label":"Left", "x":13, "y":4}, + {"label":"Down", "x":14, "y":4}, + {"label":"Right", "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/ymdk/sp64/keymaps/daed/keymap.c b/keyboards/ymdk/sp64/keymaps/daed/keymap.c new file mode 100644 index 000000000000..7174c108b34a --- /dev/null +++ b/keyboards/ymdk/sp64/keymaps/daed/keymap.c @@ -0,0 +1,140 @@ +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _GAMER, + _FN, + _RAISE, + _MODE, + _GACROS, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ │ 7 │ 8 │ 9 │ 0 │ - │ = │ BkSp │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ Tab │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ Ctrl │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ LShift │ Z │ X │ C │ V │ B │ │ N │ M │ < │ > │ ? │ Sft │ Up │ _MO │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ _FN │ Win │ Alt │ │ _RA │ │ │ Alt │ Win │ Lft │ Dwn │ Rgt │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_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_MINUS, KC_EQUAL, KC_BSPACE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRACKET, KC_RBRACKET, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENTER, + 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(_MODE), + MO(_FN), KC_LGUI, KC_LALT, KC_SPACE, MO(_RAISE), KC_SPACE, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), +/* Keymap 1: Gamer layer + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ │ 7 │ 8 │ 9 │ 0 │ - │ = │ BkSp │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ Tab │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ Ctrl │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ LShift │ Z │ X │ C │ V │ B │ │ N │ M │ < │ > │ ? │ Sft │ Up │ _MO │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ _FN │ F13 │ Alt │ │ _GA │ │ │ Alt │ Win │ Lft │ Dwn │ Rgt │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_GAMER] = LAYOUT( + KC_ESC, 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_BSPACE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRACKET, KC_RBRACKET, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENTER, + 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(_MODE), + MO(_FN), KC_F13, KC_LALT, KC_SPACE, MO(_GACROS), KC_SPACE, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* Keymap 2: Function + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ ` │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ │ │ │ │ │ │ │Left │ Up │Down │Right│ │ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_FN] = LAYOUT( + KC_GRAVE, KC_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_CAPS, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), +/* Keymap 3: Raise / Quality of life + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ ` │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ │ │ │ │ │ │ │Left │ Up │Down │Right│ │ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_RAISE] = LAYOUT( + KC_GRAVE, KC_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_CAPS, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), +/* Keymap 4: Mode switching + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ ` │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ RGB 0/1│RGBM-│RGBB+│RGBM+│ │ │ │ │ │ │ │ │ │ │ Reset │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ │RGBS-│RGBB-│RGBS+│ │ │ │Left │ Up │Down │Right│ │ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ │ │ │ │ │ │ │ │ │ GAME| BASE│ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_MODE] = LAYOUT( + KC_GRAVE, 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_RMOD, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, RGB_SPD, RGB_VAD, RGB_SPI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_GAMER), TO(_BASE), _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* Keymap 5: Gaming macros + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ ` │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ │ │ PUSH│ │ │ │ │ │ │ │ │ │ │ │ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ │ │ FALL│ │ │ │ │Left │ Up │Down │Right│ │ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ │ CAP │ │ │ │ │ │ │ │ GAME| BASE│ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_GACROS] = LAYOUT( + KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_GAMER), TO(_BASE), _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/ymdk/sp64/keymaps/default/keymap.c b/keyboards/ymdk/sp64/keymaps/default/keymap.c new file mode 100644 index 000000000000..e988d6e91b79 --- /dev/null +++ b/keyboards/ymdk/sp64/keymaps/default/keymap.c @@ -0,0 +1,74 @@ +#include QMK_KEYBOARD_H + +enum layer_names { + BASE, // default layer + _FN, // function layer + _FX // media keys +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ │ 7 │ 8 │ 9 │ 0 │ - │ = │ BkSp │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ Tab │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ Caps │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ LShift │ Z │ X │ C │ V │ B │ │ N │ M │ < │ > │ ? │ Sft │ Up │ Fn │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ Ctrl │ Win │ Alt │ │ Fn │ │ │ Alt │ Win │ Lft │ Dwn │ Rgt │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[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_MINUS, KC_EQUAL, KC_BSPACE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRACKET, KC_RBRACKET, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENTER, + 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_F3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(_FN), KC_SPACE, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT + ), +/* Function + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_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, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* Media + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_FX] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + diff --git a/keyboards/ymdk/sp64/keymaps/walston/keymap.c b/keyboards/ymdk/sp64/keymaps/walston/keymap.c new file mode 100644 index 000000000000..ada3073fb99b --- /dev/null +++ b/keyboards/ymdk/sp64/keymaps/walston/keymap.c @@ -0,0 +1,94 @@ +#include QMK_KEYBOARD_H +enum layer_names { + BASE, // default layer + _FUN, // function layer + _NUMPAD, // num-pad + _MEDIA // media keys +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ │ 7 │ 8 │ 9 │ 0 │ - │ = │ BkSp │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ Tab │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ Ctrl │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ LShift │ Z │ X │ C │ V │ B │ │ N │ M │ < │ > │ ? │ Sft │ Up │_MED │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ _NUM │_MED │ Alt │ Cmd │ Spc │ │ Space │ Cmd │ Alt │ Lft │ Dwn │ Rgt │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[BASE] = LAYOUT( + MT(RESET, 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_BSPACE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRACKET, KC_RBRACKET, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENTER, + 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, OSL(_MEDIA), + LT(_NUMPAD, KC_CAPS), TT(_MEDIA), KC_LALT, KC_LGUI, LT(_FUN, KC_SPACE), KC_SPACE, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT + ), +/* Keymap 1: Function Layer / Vim Arrows + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ │ │ │ │ │ │ │ │Left │ Up │Down │Right│ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_FUN] = 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_LEFT, KC_UP, KC_DOWN, KC_RIGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* Keymap 2: NumPad + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ │ │ │ │ │ │ │ │ 7 │ 8 │ 9 │ │ Vol-│ Vol+│ Mute │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ │ │ │ │ │ │ │ │ 4 │ 5 │ 6 │ │ |<< │ >>| │ >|| │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ │ │ │ │ │ │ │ │ 1 │ 2 │ 3 │ │ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ │ │ │ │ │ │ │ 0 │ │ │ │ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_NUMPAD] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, KC_VOLD, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, KC_MPRV, KC_MNXT, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P0, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* Keymap 3: Media + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ Backlight │ │ │ │ │ │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_MEDIA] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/ymdk/sp64/keymaps/walston/rules.mk b/keyboards/ymdk/sp64/keymaps/walston/rules.mk new file mode 100644 index 000000000000..a6c5cfa18a0c --- /dev/null +++ b/keyboards/ymdk/sp64/keymaps/walston/rules.mk @@ -0,0 +1 @@ +COMMAND_ENABLE = no diff --git a/keyboards/ymdk/sp64/matrix.c b/keyboards/ymdk/sp64/matrix.c new file mode 100644 index 000000000000..8dd2bb8d765b --- /dev/null +++ b/keyboards/ymdk/sp64/matrix.c @@ -0,0 +1,169 @@ +/* +Copyright 2013 Oleg Kostyuk +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "matrix.h" +#include +#include +#include +#include "wait.h" +#include "action_layer.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "sp64.h" +#include "debounce.h" + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; + +// Debouncing: store for each key the number of scans until it's eligible to +// change. When scanning the matrix, ignore any changes in keys that have +// already changed in the last DEBOUNCE scans. +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static void matrix_select_row(uint8_t row); + +#ifdef RIGHT_HALF +static uint8_t mcp23018_reset_loop = 0; +#endif + +void matrix_init(void) +{ + // all outputs for rows high + DDRB = 0xFF; + PORTB = 0xFF; + // all inputs for columns + DDRA = 0x00; + DDRC &= ~(0x111111<<2); + DDRD &= ~(1<= 1300) { + // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + print("trying to reset mcp23018\n"); + mcp23018_status = init_mcp23018(); + if (mcp23018_status) { + print("left side not responding\n"); + } else { + print("left side attached\n"); + } + } + } +#endif + bool changed = false; + for (uint8_t row = 0; row < MATRIX_ROWS; row++) + { + matrix_row_t cols; + + matrix_select_row(row); +#ifndef RIGHT_HALF + _delay_us(5); +#endif + + cols = ( + // cols 0..7, PORTA 0 -> 7 + (~PINA) & 0xFF + ); + +#ifdef RIGHT_HALF + uint8_t data = 0x7F; + // Receive the columns from right half + i2c_receive(I2C_ADDR_WRITE, &data, 1, MCP23018_I2C_TIMEOUT); + cols |= ((~(data) & 0x7F) << 7); +#endif + + if (matrix_debouncing[row] != cols) { + matrix_debouncing[row] = cols; + //debouncing = DEBOUNCE; + changed = true; + } + } + + debounce(matrix_debouncing, matrix, MATRIX_ROWS, changed); + + matrix_scan_quantum(); + +#ifdef DEBUG_MATRIX + for (uint8_t c = 0; c < MATRIX_COLS; c++) + for (uint8_t r = 0; r < MATRIX_ROWS; r++) + if (matrix_is_on(r, c)) xprintf("r:%d c:%d \n", r, c); +#endif + + return (uint8_t)changed; +} + +inline +matrix_row_t matrix_get_row(uint8_t row) +{ + return matrix[row]; +} + +void matrix_print(void) +{ + print("\nr/c 0123456789ABCDEF\n"); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + phex(row); print(": "); + pbin_reverse16(matrix_get_row(row)); + print("\n"); + } +} + +uint8_t matrix_key_count(void) +{ + uint8_t count = 0; + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + count += bitpop16(matrix[i]); + } + return count; +} + +static void matrix_select_row(uint8_t row) +{ +#ifdef RIGHT_HALF + uint8_t txdata[3]; + + //Set the remote row on port A + txdata[0] = GPIOA; + txdata[1] = 0xFF & ~(1<. + */ + +#include "sp64.h" + +#ifdef RIGHT_HALF +bool i2c_initialized = 0; +i2c_status_t mcp23018_status = I2C_STATUS_ERROR; + +uint8_t init_mcp23018(void) +{ + uint8_t data[3]; + mcp23018_status = I2C_STATUS_ERROR; + + // I2C subsystem + if (i2c_initialized == 0) { + i2c_init(); // on pins D(1,0) + i2c_initialized = true; + _delay_ms(1000); + } + + // set pin direction + // - unused : input : 1 + // - input : input : 1 + // - driving : output : + data[0] = IODIRA; + data[1] = 0b00000000; + data[2] = 0b11111111; + mcp23018_status = i2c_transmit(I2C_ADDR_WRITE, (uint8_t *)data, 3, MCP23018_I2C_TIMEOUT); + if (mcp23018_status != I2C_STATUS_SUCCESS) + goto out; + + // set pull-up + // - unused : on : 1 + // - input : on : 1 + // - driving : off : 0 + data[0] = GPPUA; + data[1] = 0b00000000; + data[2] = 0b11111111; + mcp23018_status = i2c_transmit(I2C_ADDR_WRITE, (uint8_t *)data, 3, MCP23018_I2C_TIMEOUT); + if (mcp23018_status != I2C_STATUS_SUCCESS) + goto out; + + // set logical value (doesn't matter on inputs) + // - unused : hi-Z : 1 + // - input : hi-Z : 1 + // - driving : hi-Z : 1 + data[0] = OLATA; + data[1] = 0b11111111; + data[2] = 0b11111111; + mcp23018_status = i2c_transmit(I2C_ADDR_WRITE, (uint8_t *)data, 3, MCP23018_I2C_TIMEOUT); + +out: + return (mcp23018_status); +} +#endif + +// Optional override functions below. +// You can leave any or all of these undefined. +// These are only required if you want to perform custom actions. + +__attribute__ ((weak)) +void matrix_init_user(void) {} + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_user(void) {} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} diff --git a/keyboards/ymdk/sp64/sp64.h b/keyboards/ymdk/sp64/sp64.h new file mode 100644 index 000000000000..63620f0c3ca1 --- /dev/null +++ b/keyboards/ymdk/sp64/sp64.h @@ -0,0 +1,84 @@ +/* Copyright 2019 Neil Kettle + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +#ifdef RIGHT_HALF +# include +# include "i2c_master.h" + +// I2C aliases and register addresses (see "mcp23018.md") +# define I2C_ADDR 0b0100000 +# define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE ) +# define I2C_ADDR_READ ( (I2C_ADDR<<1) | I2C_READ ) +# define IODIRA 0x00 // i/o direction register +# define IODIRB 0x01 +# define GPPUA 0x0C // GPIO pull-up resistor register +# define GPPUB 0x0D +# define GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) +# define GPIOB 0x13 +# define OLATA 0x14 // output latch register +# define OLATB 0x15 + +extern i2c_status_t mcp23018_status; +# define MCP23018_I2C_TIMEOUT 100 + +uint8_t init_mcp23018(void); +#endif + +#define ___ KC_NO +#define XXX KC_NO + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + * + * LEFT HAND RIGHT HAND + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ L00 │ L01 │ L02 │ L03 │ L04 │ L05 │ L06 │ │ R07 │ R08 │ R09 │ R0A │ R0B │ R0C │ R0D │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ L10 │ L11 │ L12 │ L13 │ L14 │ L15 │ │ R16 │ R17 │ R18 │ R19 │ R1A │ R1B │ R1C │ R1D │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ L20 │ L21 │ L22 │ L23 │ L24 │ L25 │ │ R26 │ R27 │ R28 │ R29 │ R2A │ R2B │ R2C │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ L30 │ L31 │ L32 │ L33 │ L34 │ L35 │ │ R36 │ R37 │ R38 │ R39 │ R3A │ R3B │ R3C │ R3D │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ L40 │ L41 │ L42 │ L43 │ L45 │ │ R46 │ R48 │ R4A │ R4B │ R4C │ R4D │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, L06, R07, R08, R09, R0A, R0B, R0C, R0D, \ + L10, L11, L12, L13, L14, L15, R16, R17, R18, R19, R1A, R1B, R1C, R1D, \ + L20, L21, L22, L23, L24, L25, R26, R27, R28, R29, R2A, R2B, R2C, \ + L30, L31, L32, L33, L34, L35, R36, R37, R38, R39, R3A, R3B, R3C, R3D, \ + L40, L41, L42, L43, L45, R46, R48, R4A, R4B, R4C, R4D \ + ) \ + /* matrix positions */ \ + { \ + { ___, ___, ___, ___, ___, ___, ___, R46, R48, R4A, R4B, R4C, R4D, R3D }, \ + { L40, L41, L42, L43, L45, L06, ___, R36, R37, R38, R39, R3A, R3B, R3C }, \ + { L30, L31, L32, L33, L34, L35, ___, R26, R27, R28, R29, R2A, R2B, R2C }, \ + { L20, L21, L22, L23, L24, L25, ___, R17, R18, R19, R1A, R1B, R1C, R1D }, \ + { L10, L11, L12, L13, L14, L15, ___, R07, R08, R09, R0A, R0B, R0C, R0D }, \ + { L00, L01, L02, L03, L04, L05, ___, R16, ___, ___, ___, ___, ___, ___ } \ + } + From db80209e697770cca0ba44e437efa548247b387f Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 19 Jun 2020 04:37:47 +1000 Subject: [PATCH 015/154] Parse version better in `qmk doctor` GCC version checks (#9324) --- lib/python/qmk/cli/doctor.py | 15 +++++++++++++-- lib/python/qmk/tests/test_cli_commands.py | 8 ++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py index 011c3dd3c23b..4d7ba52181da 100755 --- a/lib/python/qmk/cli/doctor.py +++ b/lib/python/qmk/cli/doctor.py @@ -3,6 +3,7 @@ Check out the user's QMK environment and make sure it's ready to compile. """ import platform +import re import shutil import subprocess from pathlib import Path @@ -50,6 +51,16 @@ def _deprecated_udev_rule(vid, pid=None): return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", MODE:="0666"' % vid +def parse_gcc_version(version): + m = re.match(r"(\d+)(?:\.(\d+))?(?:\.(\d+))?", version) + + return { + 'major': int(m.group(1)), + 'minor': int(m.group(2)) if m.group(2) else 0, + 'patch': int(m.group(3)) if m.group(3) else 0 + } + + def check_arm_gcc_version(): """Returns True if the arm-none-eabi-gcc version is not known to cause problems. """ @@ -66,8 +77,8 @@ def check_avr_gcc_version(): if 'output' in ESSENTIAL_BINARIES['avr-gcc']: version_number = ESSENTIAL_BINARIES['avr-gcc']['output'].strip() - major, minor, rest = version_number.split('.', 2) - if int(major) > 8: + parsed_version = parse_gcc_version(version_number) + if parsed_version['major'] > 8: cli.log.error('We do not recommend avr-gcc newer than 8. Downgrading to 8.x is recommended.') return False diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index dce270de83cf..68f8ed604744 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -115,7 +115,7 @@ def test_list_keymaps_no_keyboard_found(): def test_json2c(): result = check_subcommand('json2c', 'keyboards/handwired/onekey/keymaps/default_json/keymap.json') check_returncode(result, 0) - assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT(KC_A)};\n\n' + assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n' def test_info(): @@ -132,7 +132,7 @@ def test_info_keyboard_render(): check_returncode(result) assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout assert 'Processor: STM32F303' in result.stdout - assert 'Layout:' in result.stdout + assert 'Layouts:' in result.stdout assert 'k0' in result.stdout @@ -149,6 +149,6 @@ def test_info_matrix_render(): check_returncode(result) assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout assert 'Processor: STM32F303' in result.stdout - assert 'LAYOUT' in result.stdout + assert 'LAYOUT_ortho_1x1' in result.stdout assert '│0A│' in result.stdout - assert 'Matrix for "LAYOUT"' in result.stdout + assert 'Matrix for "LAYOUT_ortho_1x1"' in result.stdout From 016b4be7515797e28b586fca731c092814339f7d Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Fri, 19 Jun 2020 04:53:16 +0900 Subject: [PATCH 016/154] Update docs/ja/feature_backlight.md: apply #9043's change (#9454) --- docs/ja/feature_backlight.md | 58 ++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/ja/feature_backlight.md b/docs/ja/feature_backlight.md index e722656b79e8..760c6444c235 100644 --- a/docs/ja/feature_backlight.md +++ b/docs/ja/feature_backlight.md @@ -1,8 +1,8 @@ # バックライト 多くのキーボードは、キースイッチを貫通して配置されたり、キースイッチの下に配置された個々の LED によって、バックライトキーをサポートします。この機能は通常スイッチごとに単一の色しか使用できないため、[RGB アンダーグロー](ja/feature_rgblight.md)および [RGB マトリックス](ja/feature_rgb_matrix.md)機能のどちらとも異なりますが、キーボードに複数の異なる単一色の LED を取り付けることは当然可能です。 @@ -94,29 +94,29 @@ BACKLIGHT_DRIVER = pwm ハードウェア PWM は以下の表に従ってサポートされます: -| バックライトピン | AT90USB64/128 | ATmega16/32U4 | ATmega16/32U2 | ATmega32A | ATmega328P | +| バックライトピン | AT90USB64/128 | ATmega16/32U4 | ATmega16/32U2 | ATmega32A | ATmega328/P | |-------------|-------------|-------------|-------------|---------|----------| -| `B1` | | | | | Timer 1 | -| `B2` | | | | | Timer 1 | -| `B5` | Timer 1 | Timer 1 | | | | -| `B6` | Timer 1 | Timer 1 | | | | -| `B7` | Timer 1 | Timer 1 | Timer 1 | | | -| `C4` | Timer 3 | | | | | -| `C5` | Timer 3 | | Timer 1 | | | -| `C6` | Timer 3 | Timer 3 | Timer 1 | | | -| `D4` | | | | Timer 1 | | -| `D5` | | | | Timer 1 | | +| `B1` | | | | | Timer 1 | +| `B2` | | | | | Timer 1 | +| `B5` | Timer 1 | Timer 1 | | | | +| `B6` | Timer 1 | Timer 1 | | | | +| `B7` | Timer 1 | Timer 1 | Timer 1 | | | +| `C4` | Timer 3 | | | | | +| `C5` | Timer 3 | | Timer 1 | | | +| `C6` | Timer 3 | Timer 3 | Timer 1 | | | +| `D4` | | | | Timer 1 | | +| `D5` | | | | Timer 1 | | 他の全てのピンはソフトウェア PWM を使います。[オーディオ](ja/feature_audio.md)機能が無効あるいは1つのタイマだけを使っている場合は、ハードウェアタイマによってバックライト PWM を引き起こすことができます: | オーディオピン | オーディオタイマ | ソフトウェア PWM タイマ | |---------|-----------|------------------| -| `C4` | Timer 3 | Timer 1 | -| `C5` | Timer 3 | Timer 1 | -| `C6` | Timer 3 | Timer 1 | -| `B5` | Timer 1 | Timer 3 | -| `B6` | Timer 1 | Timer 3 | -| `B7` | Timer 1 | Timer 3 | +| `C4` | Timer 3 | Timer 1 | +| `C5` | Timer 3 | Timer 1 | +| `C6` | Timer 3 | Timer 1 | +| `B5` | Timer 1 | Timer 3 | +| `B6` | Timer 1 | Timer 3 | +| `B7` | Timer 1 | Timer 3 | 両方のタイマーがオーディオのために使われている場合、バックライト PWM はハードウェアタイマを使いませんが、代わりにマトリックススキャンの間に引き起こされます。この場合、PWM の計算は十分なタイミングの精度で呼ばれないかもしれないため、バックライトの明滅はサポートされず、バックライトもちらつくかもしれません。 @@ -126,13 +126,13 @@ BACKLIGHT_DRIVER = pwm | 定義 | デフォルト | 説明 | |---------------------|-------------|--------------------------------------------------------------------------------------------------------------| -| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | -| `BACKLIGHT_PINS` | *定義なし* | 実験的: 詳細は以下を見てください | -| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) | +| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | +| `BACKLIGHT_PINS` | *定義なし* | 実験的: 詳細は以下を見てください | +| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) | | `BACKLIGHT_CAPS_LOCK` | *定義なし* | バックライトを使って Caps Lock のインジケータを有効にする (専用 LED の無いキーボードのため) | | `BACKLIGHT_BREATHING` | *定義なし* | サポートされる場合は、バックライトの明滅動作を有効にする | -| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) | -| `BACKLIGHT_ON_STATE` | `1` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` | +| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) | +| `BACKLIGHT_ON_STATE` | `1` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` | ### バックライトオン状態 @@ -192,10 +192,10 @@ BACKLIGHT_DRIVER = pwm | 定義 | デフォルト | 説明 | |------------------------|-------------|-------------------------------------------------------------------------------------------------------------| -| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | -| `BACKLIGHT_PWM_DRIVER` | `PWMD4` | 使用する PWM ドライバ。ピンから PWM タイマへのマッピングについては、ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | -| `BACKLIGHT_PWM_CHANNEL` | `3` | 使用する PWM チャンネル。ピンから PWM チャンネルへのマッピングについては、ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | -| `BACKLIGHT_PAL_MODE` | `2` | 使用するピンの代替機能。ピンの AF マッピングについては ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | +| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | +| `BACKLIGHT_PWM_DRIVER` | `PWMD4` | 使用する PWM ドライバ。ピンから PWM タイマへのマッピングについては、ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | +| `BACKLIGHT_PWM_CHANNEL` | `3` | 使用する PWM チャンネル。ピンから PWM チャンネルへのマッピングについては、ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | +| `BACKLIGHT_PAL_MODE` | `2` | 使用するピンの代替機能。ピンの AF マッピングについては ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | ## Software PWM Driver :id=software-pwm-driver @@ -210,7 +210,7 @@ BACKLIGHT_DRIVER = software | 定義 | デフォルト | 説明 | |-----------------|-------------|-------------------------------------------------------------------------------------------------------------| -| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | +| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです | | `BACKLIGHT_PINS` | *定義なし* | 実験的: 詳細は以下を見てください | ### 複数のバックライトピン From 7be65f2cd04c90ee5146139509762baa3f286520 Mon Sep 17 00:00:00 2001 From: Rozakiin <6567067+Rozakiin@users.noreply.github.com> Date: Thu, 18 Jun 2020 21:14:09 +0100 Subject: [PATCH 017/154] Add VIA support to Noxary 220 and Update Noxary 280 for readability (#9348) * Update noxary 220 readme.md * Update Noxary 280 readme.md add heading and spelling * Update spelling of Noxary 280 keymap copyright * Update Noxary 280 config.h change product ID and product name, remove commented code * Change MCU name and disable Mousekey * Update Noxary 220 config.h Change vendor ID, Product ID, Product name and desc, remove commented code * Update 220.h change LAYOUT_ortho_6x4 to LAYOUT, change copyrght to Rozakiin * Change LED indicator function update copyright to Rozakiin * Add via keymap * Update Noxary 220 default keymap for readability and numpad codes * Update all Noxary 220 readme.md to conform to QMK templates * Update Noxary 280 readme.md to conform to QMK template * Disable console and command, and enable link time optimisation for VIA * Update Noxary 280 keymaps for better readability * Update keyboards/noxary/220/keymaps/default/keymap.c * Update keyboards/noxary/220/220.h * Update keyboards/noxary/220/keymaps/default/keymap.c * Update keyboards/noxary/220/keymaps/default/keymap.c * Update keyboards/noxary/220/keymaps/via/rules.mk * Update keyboards/noxary/280/keymaps/default/keymap.c * Update keyboards/noxary/280/keymaps/via/rules.mk * Update keyboards/noxary/220/rules.mk * Update keyboards/noxary/280/keymaps/via/keymap.c * Update keyboards/noxary/220/keymaps/default/keymap.c * Update keyboards/noxary/220/keymaps/default/keymap.c * Update keyboards/noxary/220/keymaps/via/keymap.c * Update keyboards/noxary/220/keymaps/via/keymap.c * Update keyboards/noxary/220/keymaps/via/keymap.c * Update keyboards/noxary/220/keymaps/via/keymap.c * Update keyboards/noxary/220/keymaps/via/keymap.c * Update keyboards/noxary/280/config.h * Update keyboards/noxary/220/rules.mk * Update keyboards/noxary/220/config.h * Update keyboards/noxary/280/readme.md Change layout links to ones with background removed --- keyboards/noxary/220/220.c | 40 +--- keyboards/noxary/220/220.h | 2 +- keyboards/noxary/220/config.h | 36 +--- keyboards/noxary/220/keymaps/default/keymap.c | 155 ++++++++++----- .../noxary/220/keymaps/default/readme.md | 2 + keyboards/noxary/220/keymaps/via/keymap.c | 122 ++++++++++++ keyboards/noxary/220/keymaps/via/readme.md | 3 + keyboards/noxary/220/keymaps/via/rules.mk | 5 + keyboards/noxary/220/readme.md | 4 +- keyboards/noxary/220/rules.mk | 5 +- keyboards/noxary/280/config.h | 35 +--- keyboards/noxary/280/keymaps/default/keymap.c | 169 +++++++++------- .../noxary/280/keymaps/default/readme.md | 2 + keyboards/noxary/280/keymaps/via/keymap.c | 185 +++++++++--------- keyboards/noxary/280/keymaps/via/readme.md | 2 + keyboards/noxary/280/keymaps/via/rules.mk | 3 + keyboards/noxary/280/readme.md | 10 +- 17 files changed, 459 insertions(+), 321 deletions(-) create mode 100644 keyboards/noxary/220/keymaps/via/keymap.c create mode 100644 keyboards/noxary/220/keymaps/via/readme.md create mode 100644 keyboards/noxary/220/keymaps/via/rules.mk diff --git a/keyboards/noxary/220/220.c b/keyboards/noxary/220/220.c index e671e15a43a4..0af57ff36d83 100644 --- a/keyboards/noxary/220/220.c +++ b/keyboards/noxary/220/220.c @@ -1,4 +1,4 @@ -/* Copyright 2019 MechMerlin +/* Copyright 2020 Rozakiin * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,37 +26,9 @@ void matrix_init_kb(void) { matrix_init_user(); } - -/* - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} - -*/ - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { - writePinLow(C6); - } else { - writePinHigh(C6); - } - led_set_user(usb_led); +bool led_update_kb(led_t led_state) { + if(led_update_user(led_state)) { + writePin(C6, led_state.num_lock); + } + return true; } \ No newline at end of file diff --git a/keyboards/noxary/220/220.h b/keyboards/noxary/220/220.h index 3f1375e2a6a4..26419976c873 100644 --- a/keyboards/noxary/220/220.h +++ b/keyboards/noxary/220/220.h @@ -1,4 +1,4 @@ -/* Copyright 2019 MechMerlin +/* Copyright 2019 Rozakiin * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/noxary/220/config.h b/keyboards/noxary/220/config.h index 1242de61bc27..757113807634 100644 --- a/keyboards/noxary/220/config.h +++ b/keyboards/noxary/220/config.h @@ -20,12 +20,12 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 +#define VENDOR_ID 0x4E58 //"NX" +#define PRODUCT_ID 0x00DC //220 #define DEVICE_VER 0x0001 #define MANUFACTURER Noxary #define PRODUCT 220 -#define DESCRIPTION A custom numpad +#define DESCRIPTION A custom numpad keyboard. /* key matrix size */ #define MATRIX_ROWS 6 @@ -57,42 +57,12 @@ along with this program. If not, see . #define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 -// #define RGB_DI_PIN E2 -// #ifdef RGB_DI_PIN -// #define RGBLED_NUM 16 -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 -// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ -// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -// /*== all animations enable ==*/ -// #define RGBLIGHT_ANIMATIONS -// /*== or choose 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 -// /*== customize breathing effect ==*/ -// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ -// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 -// /*==== use exp() and sin() ====*/ -// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 -// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 -// #endif - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 /* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST -/* number of backlight levels */ - /* 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/noxary/220/keymaps/default/keymap.c b/keyboards/noxary/220/keymaps/default/keymap.c index a72841db5467..ec49ea160d8f 100644 --- a/keyboards/noxary/220/keymaps/default/keymap.c +++ b/keyboards/noxary/220/keymaps/default/keymap.c @@ -15,62 +15,109 @@ */ #include QMK_KEYBOARD_H -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - QMKBEST = SAFE_RANGE, - QMKURL +// 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 { + _BL, + _FL1, + _FL2, + _FL3 }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - LAYOUT_ortho_6x4( - KC_ESC, BL_TOGG, BL_DEC, BL_INC, - KC_NLCK, KC_SLSH, KC_ASTR, KC_PEQL, - KC_7, KC_8, KC_9, KC_PMNS, - KC_4, KC_5, KC_6, KC_PPLS, - KC_1, KC_2, KC_3, KC_PENT, - KC_0, KC_0, KC_DEL, KC_PENT), - - LAYOUT_ortho_6x4( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + /* Base Layer + * ┌───┬───┬───┬───┐ + * │Esc│BLT│BL-│BL+│ + * ├───┼───┼───┼───┤ + * │NLK│ / │ * │ = │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │ - │ + * ├───┼───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ENT│ + * ├───┼───┼───┼───┤ + * │ 0 │ 0 │ . │ENT│ + * └───┴───┴───┴───┘ + */ + [_BL] = LAYOUT_ortho_6x4( + KC_ESC, BL_TOGG, BL_DEC, BL_INC, + KC_NLCK, KC_PSLS, KC_PAST, KC_PEQL, + KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT + ), + /* Function Layer 1 + * ┌───┬───┬───┬───┐ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * └───┴───┴───┴───┘ + */ + [_FL1] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + /* Function Layer 2 + * ┌───┬───┬───┬───┐ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * └───┴───┴───┴───┘ + */ + [_FL2] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + /* Function Layer 3 + * ┌───┬───┬───┬───┐ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * └───┴───┴───┴───┘ + */ + [_FL3] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QMKBEST: - if (record->event.pressed) { - // when keycode QMKBEST is pressed - SEND_STRING("QMK is the best thing ever!"); - } else { - // when keycode QMKBEST is released - } - break; - case QMKURL: - if (record->event.pressed) { - // when keycode QMKURL is pressed - SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); - } else { - // when keycode QMKURL is released - } - break; - } - return true; -} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/noxary/220/keymaps/default/readme.md b/keyboards/noxary/220/keymaps/default/readme.md index bff7feda38a1..40f25464a07f 100644 --- a/keyboards/noxary/220/keymaps/default/readme.md +++ b/keyboards/noxary/220/keymaps/default/readme.md @@ -1 +1,3 @@ +![Noxary 220 Layout Image](https://i.imgur.com/jVQ50lt.png) + # The default keymap for Noxary 220 \ No newline at end of file diff --git a/keyboards/noxary/220/keymaps/via/keymap.c b/keyboards/noxary/220/keymaps/via/keymap.c new file mode 100644 index 000000000000..1bfc7a8d044a --- /dev/null +++ b/keyboards/noxary/220/keymaps/via/keymap.c @@ -0,0 +1,122 @@ +/* Copyright 2020 Rozakiin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 { + _BL, + _FL1, + _FL2, + _FL3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base Layer + * ┌───┬───┬───┬───┐ + * │Esc│BLT│BL-│BL+│ + * ├───┼───┼───┼───┤ + * │NLK│ / │ * │ = │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │ - │ + * ├───┼───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ENT│ + * ├───┼───┼───┼───┤ + * │ 0 │ 0 │ . │ENT│ + * └───┴───┴───┴───┘ + */ + [_BL] = LAYOUT_ortho_6x4( + KC_ESC, BL_TOGG, BL_DEC, BL_INC, + KC_NLCK, KC_PSLS, KC_PAST, KC_PEQL, + KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_PENT + ), + /* Function Layer 1 + * ┌───┬───┬───┬───┐ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * └───┴───┴───┴───┘ + */ + [_FL1] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + /* Function Layer 2 + * ┌───┬───┬───┬───┐ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * └───┴───┴───┴───┘ + */ + [_FL2] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + /* Function Layer 3 + * ┌───┬───┬───┬───┐ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * ├───┼───┼───┼───┤ + * │ │ │ │ │ + * └───┴───┴───┴───┘ + */ + [_FL3] = LAYOUT_ortho_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), +}; diff --git a/keyboards/noxary/220/keymaps/via/readme.md b/keyboards/noxary/220/keymaps/via/readme.md new file mode 100644 index 000000000000..1e2b4542d7a1 --- /dev/null +++ b/keyboards/noxary/220/keymaps/via/readme.md @@ -0,0 +1,3 @@ +![Noxary 220 Layout Image](https://i.imgur.com/GsswjSf.png) + +# The VIA keymap for Noxary 220 \ No newline at end of file diff --git a/keyboards/noxary/220/keymaps/via/rules.mk b/keyboards/noxary/220/keymaps/via/rules.mk new file mode 100644 index 000000000000..c2e96d233b21 --- /dev/null +++ b/keyboards/noxary/220/keymaps/via/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = no +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +LTO_ENABLE = yes diff --git a/keyboards/noxary/220/readme.md b/keyboards/noxary/220/readme.md index 1fcdfcc3c744..bae50c413752 100644 --- a/keyboards/noxary/220/readme.md +++ b/keyboards/noxary/220/readme.md @@ -1,6 +1,8 @@ # Noxary 220 -A fully customizable numpad +![Noxary 220](https://i.imgur.com/8XCxJhP.png) + +A fully customizable (4x6) numpad keyboard. Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin), [Rozakiin](https://github.com/rozakiin) Hardware Supported: Noxary 220 PCB diff --git a/keyboards/noxary/220/rules.mk b/keyboards/noxary/220/rules.mk index f099fefb5d23..8d6532925a10 100644 --- a/keyboards/noxary/220/rules.mk +++ b/keyboards/noxary/220/rules.mk @@ -1,5 +1,5 @@ # MCU name -MCU = atmega32u4 +MCU = atmega32u2 # Bootloader selection # Teensy halfkay @@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug @@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -HD44780_ENABLE = no # Enable support for HD44780 based LCDs LAYOUTS = ortho_6x4 diff --git a/keyboards/noxary/280/config.h b/keyboards/noxary/280/config.h index d0a10866a92e..0fe0121733bf 100644 --- a/keyboards/noxary/280/config.h +++ b/keyboards/noxary/280/config.h @@ -20,12 +20,12 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 -#define PRODUCT_ID 0x0050 +#define VENDOR_ID 0x4E58 //"NX" +#define PRODUCT_ID 0x0118 //280 #define DEVICE_VER 0x0001 #define MANUFACTURER Noxary #define PRODUCT 280 -#define DESCRIPTION A custom TKL +#define DESCRIPTION A custom TKL keyboard. /* key matrix size */ #define MATRIX_ROWS 12 @@ -57,33 +57,6 @@ along with this program. If not, see . #define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 -// #define RGB_DI_PIN E2 -// #ifdef RGB_DI_PIN -// #define RGBLED_NUM 16 -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 -// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ -// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -// /*== all animations enable ==*/ -// #define RGBLIGHT_ANIMATIONS -// /*== or choose 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 -// /*== customize breathing effect ==*/ -// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ -// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 -// /*==== use exp() and sin() ====*/ -// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 -// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 -// #endif /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 @@ -91,8 +64,6 @@ along with this program. If not, see . /* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST -/* number of backlight levels */ - /* 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/noxary/280/keymaps/default/keymap.c b/keyboards/noxary/280/keymaps/default/keymap.c index 3d993e04253c..38fff0da2fd0 100644 --- a/keyboards/noxary/280/keymaps/default/keymap.c +++ b/keyboards/noxary/280/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2019 Rozakin +/* Copyright 2020 Rozakiin * * This 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,35 +15,34 @@ */ #include QMK_KEYBOARD_H -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - QMKBEST = SAFE_RANGE, - QMKURL -}; - // 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 _BL 0 -#define _FL1 1 -#define _FL2 2 +enum layer_names { + _BL, + _FL1, + _FL2, + _FL3 +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* _BL: Base Layer(Default) - For ISO enter use ANSI enter - * ,------------------------------------------------------------. ,--------------. - * |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| -| =| \|BSpc| | Ins|Home|PgUp| - * |------------------------------------------------------------| |--------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | Del| End|PgDn| - * |------------------------------------------------------------| `--------------' - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| Ent| - * |------------------------------------------------------------| ,----. - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift|Mo(1)| | Up | - * |------------------------------------------------------------| ,--------------. - * |Ctrl|Win |Alt | Space |Alt |Win |Mo(1) |Ctrl | |Left| Dn |Rght| - * `------------------------------------------------------------' `--------------' + /* Base Layer - For ISO enter use ANSI enter + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ + * │ESC│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12││PRT│SLK│PSE│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │BSP││INS│HME│PUP│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││DEL│END│PDN│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │ CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ ENTER │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │SFT │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │M1 │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │CTRL│Win │ALT │ SPC │ALT │WIN │M(1)│CTRL││ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ */ [_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_PSCR, KC_SLCK, KC_PAUS, @@ -51,52 +50,78 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_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, MO(_FL1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL1), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT), - /* _FL1: Function Layer 1 - For ISO enter use ANSI enter - * ,------------------------------------------------------------. ,--------------. - * | | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| |--------------| - * | | | | |RST| | | | | | | | | | | | | | - * |------------------------------------------------------------| `--------------' - * | | | | | | | | | | | | | | | - * |------------------------------------------------------------| ,----. - * | | | | | | | | | |Bl-|Bl+| | Mute| | |Vol+| - * |------------------------------------------------------------| ,--------------. - * | | | | BL_Toggle | | | | | | |Vol-| | - * `------------------------------------------------------------' `--------------' - */ - [_FL1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, _______, KC_MUTE, _______, KC_VOLU, - _______, _______, _______, BL_TOGG, _______, _______, _______, _______, _______, KC_VOLD, _______), - /* _FL2: Function Layer 2 - For ISO enter use ANSI enter - * ,------------------------------------------------------------. ,--------------. - * | | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| `--------------' - * | | | | | | | | | | | | | | | - * |------------------------------------------------------------| ,----. - * | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| ,--------------. - * | | | | | | | | | | | | | - * `------------------------------------------------------------' `--------------' - */ - [_FL2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - - + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL1), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Function Layer 1 - For ISO enter use ANSI enter + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │ │ │ │ │ │RST│ │ │ │ │ │ │ │ ││ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │BL-│BL+│ │ MUTE │ │ │VL+│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │ │ │ │ BL_TOGGLE │ │ │ │ ││ │VL-│ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + [_FL1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, _______, KC_MUTE, _______, KC_VOLU, + _______, _______, _______, BL_TOGG, _______, _______, _______, _______, _______, KC_VOLD, _______ + ), + /* Function Layer 2 - For ISO enter use ANSI enter + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │ │ │ │ │ │ │ │ ││ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + [_FL2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* Function Layer 3 - For ISO enter use ANSI enter + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │ │ │ │ │ │ │ │ ││ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + [_FL3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; - diff --git a/keyboards/noxary/280/keymaps/default/readme.md b/keyboards/noxary/280/keymaps/default/readme.md index e1a03dc002da..3b6bc24f32fd 100644 --- a/keyboards/noxary/280/keymaps/default/readme.md +++ b/keyboards/noxary/280/keymaps/default/readme.md @@ -1 +1,3 @@ +![Noxary 280 Layout Image](https://i.imgur.com/7Go0py2.png) + # The default keymap for Noxary 280 \ No newline at end of file diff --git a/keyboards/noxary/280/keymaps/via/keymap.c b/keyboards/noxary/280/keymaps/via/keymap.c index d7fe69170245..38fff0da2fd0 100644 --- a/keyboards/noxary/280/keymaps/via/keymap.c +++ b/keyboards/noxary/280/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2019 Rozakin +/* Copyright 2020 Rozakiin * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,26 +19,30 @@ // 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 _FL1 1 -#define _FL2 2 -#define _FL3 3 +enum layer_names { + _BL, + _FL1, + _FL2, + _FL3 +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* _BL: Base Layer(Default) - For ISO enter use ANSI enter - * ,------------------------------------------------------------. ,--------------. - * |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| -| =| \|BSpc| | Ins|Home|PgUp| - * |------------------------------------------------------------| |--------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | Del| End|PgDn| - * |------------------------------------------------------------| `--------------' - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| Ent| - * |------------------------------------------------------------| ,----. - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift|Mo(1)| | Up | - * |------------------------------------------------------------| ,--------------. - * |Ctrl|Win |Alt | Space |Alt |Win |Mo(1) |Ctrl | |Left| Dn |Rght| - * `------------------------------------------------------------' `--------------' + /* Base Layer - For ISO enter use ANSI enter + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ + * │ESC│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12││PRT│SLK│PSE│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │BSP││INS│HME│PUP│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││DEL│END│PDN│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │ CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ ENTER │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │SFT │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │M1 │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │CTRL│Win │ALT │ SPC │ALT │WIN │M(1)│CTRL││ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ */ [_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_PSCR, KC_SLCK, KC_PAUS, @@ -46,73 +50,78 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_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, MO(_FL1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL1), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT), - /* _FL1: Function Layer 1 - For ISO enter use ANSI enter - * ,------------------------------------------------------------. ,--------------. - * | | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| |--------------| - * | | | | |RST| | | | | | | | | | | | | | - * |------------------------------------------------------------| `--------------' - * | | | | | | | | | | | | | | | - * |------------------------------------------------------------| ,----. - * | | | | | | | | | |Bl-|Bl+| | Mute| | |Vol+| - * |------------------------------------------------------------| ,--------------. - * | | | | BL_Toggle | | | | | | |Vol-| | - * `------------------------------------------------------------' `--------------' - */ - [_FL1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, _______, KC_MUTE, _______, KC_VOLU, - _______, _______, _______, BL_TOGG, _______, _______, _______, _______, _______, KC_VOLD, _______), - /* _FL2: Function Layer 2 - For ISO enter use ANSI enter - * ,------------------------------------------------------------. ,--------------. - * | | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| `--------------' - * | | | | | | | | | | | | | | | - * |------------------------------------------------------------| ,----. - * | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| ,--------------. - * | | | | | | | | | | | | | - * `------------------------------------------------------------' `--------------' - */ - [_FL2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - /* _FL3: Function Layer 3 - For ISO enter use ANSI enter - * ,------------------------------------------------------------. ,--------------. - * | | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| `--------------' - * | | | | | | | | | | | | | | | - * |------------------------------------------------------------| ,----. - * | | | | | | | | | | | | | | | | | - * |------------------------------------------------------------| ,--------------. - * | | | | | | | | | | | | | - * `------------------------------------------------------------' `--------------' - */ - [_FL3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL1), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Function Layer 1 - For ISO enter use ANSI enter + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │ │ │ │ │ │RST│ │ │ │ │ │ │ │ ││ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │BL-│BL+│ │ MUTE │ │ │VL+│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │ │ │ │ BL_TOGGLE │ │ │ │ ││ │VL-│ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + [_FL1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, _______, KC_MUTE, _______, KC_VOLU, + _______, _______, _______, BL_TOGG, _______, _______, _______, _______, _______, KC_VOLD, _______ + ), + /* Function Layer 2 - For ISO enter use ANSI enter + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │ │ │ │ │ │ │ │ ││ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + [_FL2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* Function Layer 3 - For ISO enter use ANSI enter + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │ │ │ │ │ │ │ │ ││ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + [_FL3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; - diff --git a/keyboards/noxary/280/keymaps/via/readme.md b/keyboards/noxary/280/keymaps/via/readme.md index 71535a3bd701..e4a1d5d4ed09 100644 --- a/keyboards/noxary/280/keymaps/via/readme.md +++ b/keyboards/noxary/280/keymaps/via/readme.md @@ -1 +1,3 @@ +![Noxary 280 Layout Image](https://i.imgur.com/7Go0py2.png) + # The VIA keymap for Noxary 280 \ No newline at end of file diff --git a/keyboards/noxary/280/keymaps/via/rules.mk b/keyboards/noxary/280/keymaps/via/rules.mk index 96d2d189b2e6..c2e96d233b21 100644 --- a/keyboards/noxary/280/keymaps/via/rules.mk +++ b/keyboards/noxary/280/keymaps/via/rules.mk @@ -1,2 +1,5 @@ VIA_ENABLE = yes MOUSEKEY_ENABLE = no +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +LTO_ENABLE = yes diff --git a/keyboards/noxary/280/readme.md b/keyboards/noxary/280/readme.md index 5af7441ddf71..1668594a8ba8 100644 --- a/keyboards/noxary/280/readme.md +++ b/keyboards/noxary/280/readme.md @@ -1,9 +1,13 @@ -Noxary 280 +# Noxary 280 + +![Noxary 280 WKL](https://i.imgur.com/CuQz0qWl.png) +![Noxary 280 WK](https://i.imgur.com/iAQYzsql.png) + A fully customizable TKL keyboard. -Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin), [Rozakin](https://github.com/rozakiin) -Hardware Supported: 280 PCB +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin), [Rozakiin](https://github.com/rozakiin) +Hardware Supported: Noxary 280 PCB Hardware Availability: [Geekhack Group Buy](https://geekhack.org/index.php?topic=95660.0) Make example for this keyboard (after setting up your build environment): From 3eefe31a54df07f5624f49632d986dff9725afe4 Mon Sep 17 00:00:00 2001 From: Niclas Date: Fri, 19 Jun 2020 01:32:27 +0000 Subject: [PATCH 018/154] Keymap: Add custom keymap for Planck (#9417) * Keymap: Add custom keymap for Planck * Fixup buffet's planck keymap --- keyboards/planck/keymaps/buffet/config.h | 46 +++ keyboards/planck/keymaps/buffet/keymap.c | 384 ++++++++++++++++++ keyboards/planck/keymaps/buffet/readme.md | 104 +++++ .../planck/keymaps/buffet/rgb_matrix_user.inc | 18 + keyboards/planck/keymaps/buffet/rules.mk | 6 + 5 files changed, 558 insertions(+) create mode 100644 keyboards/planck/keymaps/buffet/config.h create mode 100644 keyboards/planck/keymaps/buffet/keymap.c create mode 100644 keyboards/planck/keymaps/buffet/readme.md create mode 100644 keyboards/planck/keymaps/buffet/rgb_matrix_user.inc create mode 100644 keyboards/planck/keymaps/buffet/rules.mk diff --git a/keyboards/planck/keymaps/buffet/config.h b/keyboards/planck/keymaps/buffet/config.h new file mode 100644 index 000000000000..478b282b3113 --- /dev/null +++ b/keyboards/planck/keymaps/buffet/config.h @@ -0,0 +1,46 @@ +#pragma once + +#define TAPPING_TERM 150 +#define PERMISSIVE_HOLD + +// Disable all RGB effects +#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_ALPHAS_MODS +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_BREATHING +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define DISABLE_RGB_MATRIX_CYCLE_ALL +#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define DISABLE_RGB_MATRIX_DUAL_BEACON +#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL +#define DISABLE_RGB_MATRIX_RAINBOW_BEACON +#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define DISABLE_RGB_MATRIX_RAINDROPS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define DISABLE_RGB_MATRIX_TYPING_HEATMAP +#define DISABLE_RGB_MATRIX_DIGITAL_RAIN +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define DISABLE_RGB_MATRIX_SPLASH +#define DISABLE_RGB_MATRIX_MULTISPLASH +#define DISABLE_RGB_MATRIX_SOLID_SPLASH +#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 diff --git a/keyboards/planck/keymaps/buffet/keymap.c b/keyboards/planck/keymaps/buffet/keymap.c new file mode 100644 index 000000000000..78a9f711c495 --- /dev/null +++ b/keyboards/planck/keymaps/buffet/keymap.c @@ -0,0 +1,384 @@ +/* Copyright 2015-2017 Jack Humbert + * 2020 Niclas Meyer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 K(kc) (1ull<<((kc) - ALPHA)) + +#define KALPHA K(ALPHA) +#define KBETA K(BETA) +#define KGAMMA K(GAMMA) +#define KDELTA K(DELTA) +#define KEPSILON K(EPSILON) +#define KZETA K(ZETA) +#define KTHETA K(THETA) +#define KIOTA K(IOTA) +#define KKAPPA K(KAPPA) + +enum keys { + ALPHA = SAFE_RANGE, + BETA, + GAMMA, + DELTA, + EPSILON, + ZETA, + THETA, + IOTA, + KAPPA, + LOCK, + NONE, +}; + +enum layers { + NORMAL, + QWERTY, + GAME, + LOWER, + RAISE, + PHI, + FN, +}; + +#define XXXX KC_NO +#define ____ KC_TRNS + +#define CQWER LM(QWERTY, MOD_LCTL) +#define AQWER LM(QWERTY, MOD_LALT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [NORMAL] = LAYOUT_planck_grid( + ALPHA, BETA, GAMMA, DELTA, ____, ____, ____, ____, DELTA, GAMMA, BETA, ALPHA, + EPSILON, ZETA, THETA, IOTA, ____, ____, ____, ____, IOTA, THETA, ZETA, EPSILON, + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, + MO(PHI), CQWER, AQWER, MO(FN), KAPPA, ____, XXXX, KAPPA, MO(FN), ____, ____, MO(PHI) + ), + [QWERTY] = LAYOUT_planck_grid( + 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_SFTENT, + MO(PHI), KC_LCTL, KC_LALT, KC_LGUI, MO(LOWER), KC_SPC, XXXX, MO(RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT + ), + [GAME] = LAYOUT_planck_grid( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_Z, KC_X, KC_C, KC_SPC, ____, XXXX, ____, KC_V, KC_B, ____, MO(PHI) + ), + [LOWER] = 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_DEL, ____, ____, ____, ____, ____, ____, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + ____, ____, ____, ____, ____, ____, ____, KC_PGUP, KC_PGDN, KC_HOME, KC_END, ____, + ____, ____, ____, ____, ____, ____, XXXX, ____, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [RAISE] = LAYOUT_planck_grid( + 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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + ____, ____, ____, ____, ____, ____, ____, KC_PGUP, KC_PGDN, KC_HOME, KC_END, ____, + ____, ____, ____, ____, ____, ____, XXXX, ____, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [PHI] = LAYOUT_planck_grid( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, ____, ____, ____, ____, ____, ____, KC_DEL, + ____, KC_F5, KC_F6, KC_F7, KC_F8, ____, ____, DF(QWERTY), DF(NORMAL), DF(GAME), ____, KC_F13, + ____, KC_F9, KC_F10, KC_F11, KC_F12, ____, ____, ____, ____, ____, ____, ____, + ____, RGB_TOG, RGB_MOD, ____, ____, ____, XXXX, ____, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [FN] = LAYOUT_planck_grid( + ____, ____, KC_UP, ____, ____, ____, ____, ____, ____, KC_UP, ____, ____, + KC_DEL, KC_LEFT, KC_DOWN, KC_RIGHT, ____, ____, ____, ____, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, + KC_HOME, KC_END, KC_PGUP, KC_PGDN, ____, ____, ____, ____, KC_PGDN, KC_PGUP, KC_HOME, KC_END, + ____, ____, ____, ____, ____, ____, XXXX, ____, ____, ____, ____, ____ + ), +}; + +static uint16_t left_chord = 0; +static uint16_t right_chord = 0; + +static bool locking = false; +static bool locked = false; +static uint16_t mods = 0; + +#define PROCESS_MOD(mod) \ + do { \ + if ((mods & MOD_##mod) && !(keys & MOD_##mod)) { \ + unregister_code16(KC_##mod); \ + } \ + if (!(mods & MOD_##mod) && (keys & MOD_##mod)) { \ + register_code16(KC_##mod); \ + } \ + } while (0) + +static void process_keys(uint16_t keys) { + if (keys == NONE) { + return; + } + + if (keys == LOCK) { + locking = !locking; + return; + } + + if ((keys & QK_ONE_SHOT_MOD) == QK_ONE_SHOT_MOD) { + PROCESS_MOD(LCTL); + PROCESS_MOD(LSFT); + PROCESS_MOD(LALT); + PROCESS_MOD(LGUI); + + mods = keys & ~QK_ONE_SHOT_MOD; + locked = false; + + if (locking) { + locking = false; + locked = true; + } + + return; + } + + // Normal key + tap_code16(keys); + locking = false; + + if (mods && !locked) { + if (mods & MOD_LCTL) { + unregister_code16(KC_LCTL); + } + + if (mods & MOD_LSFT) { + unregister_code16(KC_LSFT); + } + + if (mods & MOD_LALT) { + unregister_code16(KC_LALT); + } + + if (mods & MOD_LGUI) { + unregister_code16(KC_LGUI); + } + + mods = 0; + } +} + +static uint16_t chord_to_keys(uint16_t chord) { + switch (chord) { + // Unshifted Extra + case KKAPPA: return KC_SPC; + case KEPSILON | KZETA | KTHETA | KIOTA: return KC_ENT; + case KEPSILON | KZETA | KGAMMA | KIOTA: return KC_TAB; + case KEPSILON | KIOTA: return KC_BSPC; + case KKAPPA | KEPSILON: return KC_ESC; + + // Shifted Extra + case KKAPPA | KEPSILON | KZETA | KTHETA | KIOTA: return S(KC_ENT); + case KKAPPA | KEPSILON | KZETA | KGAMMA | KIOTA: return S(KC_TAB); + case KKAPPA | KEPSILON | KIOTA: return S(KC_BSPC); + + // Lowercase Letters + case KBETA: return KC_A; + case KZETA | KDELTA: return KC_B; + case KBETA | KGAMMA | KDELTA: return KC_C; + case KZETA | KTHETA | KIOTA: return KC_D; + case KDELTA: return KC_E; + case KGAMMA | KIOTA: return KC_F; + case KBETA | KTHETA: return KC_G; + case KZETA | KTHETA: return KC_H; + case KGAMMA: return KC_I; + case KBETA | KGAMMA | KIOTA: return KC_J; + case KBETA | KTHETA | KIOTA: return KC_K; + case KBETA | KGAMMA: return KC_L; + case KBETA | KDELTA: return KC_M; + case KZETA: return KC_N; + case KTHETA: return KC_O; + case KZETA | KGAMMA: return KC_P; + case KBETA | KTHETA | KDELTA: return KC_Q; + case KGAMMA | KDELTA: return KC_R; + case KTHETA | KIOTA: return KC_S; + case KIOTA: return KC_T; + case KZETA | KIOTA: return KC_U; + case KTHETA | KDELTA: return KC_V; + case KZETA | KGAMMA | KIOTA: return KC_W; + case KZETA | KTHETA | KDELTA: return KC_X; + case KBETA | KIOTA: return KC_Y; + case KZETA | KGAMMA | KDELTA: return KC_Z; + + // Uppercase Letters + case KKAPPA | KBETA: return S(KC_A); + case KKAPPA | KZETA | KDELTA: return S(KC_B); + case KKAPPA | KBETA | KGAMMA | KDELTA: return S(KC_C); + case KKAPPA | KZETA | KTHETA | KIOTA: return S(KC_D); + case KKAPPA | KDELTA: return S(KC_E); + case KKAPPA | KGAMMA | KIOTA: return S(KC_F); + case KKAPPA | KBETA | KTHETA: return S(KC_G); + case KKAPPA | KZETA | KTHETA: return S(KC_H); + case KKAPPA | KGAMMA: return S(KC_I); + case KKAPPA | KBETA | KGAMMA | KIOTA: return S(KC_J); + case KKAPPA | KBETA | KTHETA | KIOTA: return S(KC_K); + case KKAPPA | KBETA | KGAMMA: return S(KC_L); + case KKAPPA | KBETA | KDELTA: return S(KC_M); + case KKAPPA | KZETA: return S(KC_N); + case KKAPPA | KTHETA: return S(KC_O); + case KKAPPA | KZETA | KGAMMA: return S(KC_P); + case KKAPPA | KBETA | KTHETA | KDELTA: return S(KC_Q); + case KKAPPA | KGAMMA | KDELTA: return S(KC_R); + case KKAPPA | KTHETA | KIOTA: return S(KC_S); + case KKAPPA | KIOTA: return S(KC_T); + case KKAPPA | KZETA | KIOTA: return S(KC_U); + case KKAPPA | KTHETA | KDELTA: return S(KC_V); + case KKAPPA | KZETA | KGAMMA | KIOTA: return S(KC_W); + case KKAPPA | KZETA | KTHETA | KDELTA: return S(KC_X); + case KKAPPA | KBETA | KIOTA: return S(KC_Y); + case KKAPPA | KZETA | KGAMMA | KDELTA: return S(KC_Z); + + // Unshifted Numbers + case KEPSILON | KZETA: return KC_0; + case KEPSILON | KZETA | KIOTA: return KC_1; + case KEPSILON | KZETA | KTHETA: return KC_2; + case KEPSILON | KBETA: return KC_3; + case KEPSILON | KBETA | KDELTA: return KC_4; + case KEPSILON | KBETA | KGAMMA: return KC_5; + case KEPSILON | KBETA | KIOTA: return KC_6; + case KEPSILON | KTHETA: return KC_7; + case KEPSILON | KBETA | KGAMMA | KIOTA: return KC_8; + case KEPSILON | KGAMMA | KDELTA: return KC_9; + + // Shifted Numbers + case KKAPPA | KEPSILON | KZETA | KIOTA: return KC_EXLM; + case KKAPPA | KEPSILON | KZETA | KTHETA: return KC_AT; + case KKAPPA | KEPSILON | KBETA: return KC_HASH; + case KKAPPA | KEPSILON | KBETA | KDELTA: return KC_DLR; + case KKAPPA | KEPSILON | KBETA | KGAMMA: return KC_PERC; + case KKAPPA | KEPSILON | KBETA | KIOTA: return KC_CIRC; + case KKAPPA | KEPSILON | KTHETA: return KC_AMPR; + case KKAPPA | KEPSILON | KBETA | KGAMMA | KIOTA: return KC_ASTR; + case KKAPPA | KEPSILON | KGAMMA | KDELTA: return KC_LPRN; + case KKAPPA | KEPSILON | KZETA: return KC_RPRN; + + // Unshifted Symbols + case KEPSILON | KBETA | KTHETA | KIOTA: return KC_MINS; + case KEPSILON | KZETA | KTHETA | KDELTA: return KC_EQL; + case KEPSILON | KZETA | KGAMMA: return KC_LBRC; + case KEPSILON | KGAMMA | KIOTA: return KC_RBRC; + case KEPSILON | KBETA | KTHETA: return KC_BSLS; + case KEPSILON | KBETA | KGAMMA | KDELTA: return KC_SCLN; + case KEPSILON | KZETA | KDELTA: return KC_QUOT; + case KEPSILON | KTHETA | KIOTA: return KC_COMM; + case KEPSILON | KZETA | KGAMMA | KDELTA: return KC_DOT; + case KEPSILON | KGAMMA: return KC_SLSH; + case KEPSILON | KDELTA: return KC_GRV; + + // Shifted Symbols + case KKAPPA | KEPSILON | KBETA | KTHETA | KIOTA: return KC_UNDS; + case KKAPPA | KEPSILON | KZETA | KTHETA | KDELTA: return KC_PLUS; + case KKAPPA | KEPSILON | KZETA | KGAMMA: return KC_LCBR; + case KKAPPA | KEPSILON | KGAMMA | KIOTA: return KC_RCBR; + case KKAPPA | KEPSILON | KBETA | KTHETA: return KC_PIPE; + case KKAPPA | KEPSILON | KBETA | KGAMMA | KDELTA: return KC_COLN; + case KKAPPA | KEPSILON | KZETA | KDELTA: return KC_DQT; + case KKAPPA | KEPSILON | KTHETA | KIOTA: return KC_LT; + case KKAPPA | KEPSILON | KZETA | KGAMMA | KDELTA: return KC_GT; + case KKAPPA | KEPSILON | KGAMMA: return KC_QUES; + case KKAPPA | KEPSILON | KDELTA: return KC_TILD; + + // Modifiers + case KALPHA | KIOTA: return LOCK; + + case KALPHA: return QK_ONE_SHOT_MOD; // Release all + + case KALPHA | KBETA: return OSM(MOD_LCTL); + case KALPHA | KGAMMA: return OSM(MOD_LSFT); + case KALPHA | KDELTA: return OSM(MOD_LALT); + case KALPHA | KKAPPA: return OSM(MOD_LGUI); + + case KALPHA | KBETA | KGAMMA: return OSM(MOD_LCTL | MOD_LSFT); + case KALPHA | KBETA | KDELTA: return OSM(MOD_LCTL | MOD_LALT); + case KALPHA | KBETA | KKAPPA: return OSM(MOD_LCTL | MOD_LGUI); + case KALPHA | KGAMMA | KDELTA: return OSM(MOD_LSFT | MOD_LALT); + case KALPHA | KGAMMA | KKAPPA: return OSM(MOD_LSFT | MOD_LGUI); + case KALPHA | KDELTA | KKAPPA: return OSM(MOD_LALT | MOD_LGUI); + + case KALPHA | KBETA | KGAMMA | KDELTA: return OSM(MOD_LCTL | MOD_LSFT | MOD_LALT); + case KALPHA | KBETA | KGAMMA | KKAPPA: return OSM(MOD_LCTL | MOD_LSFT | MOD_LGUI); + case KALPHA | KBETA | KDELTA | KKAPPA: return OSM(MOD_LCTL | MOD_LALT | MOD_LGUI); + case KALPHA | KGAMMA | KDELTA | KKAPPA: return OSM(MOD_LSFT | MOD_LALT | MOD_LGUI); + + case KALPHA | KBETA | KGAMMA | KDELTA | KKAPPA: return OSM(MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI); + } + + return NONE; +} + +static uint16_t *get_hand(keypos_t *key) { + if (key->row <= 3) { + return &left_chord; + } + + if (key->row <= 6) { + return &right_chord; + } + + // row 7 + if (key->col <= 2) { + return &right_chord; + } else { + return &left_chord; + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (keycode < ALPHA) { + return true; + } + + uint16_t *chord = get_hand(&record->event.key); + + if (record->event.pressed) { + *chord |= K(keycode); + return false; + } + + if (*chord != 0) { + process_keys(chord_to_keys(*chord)); + *chord = 0; + } + + return false; +} + +#ifdef KEYBOARD_planck_ez + +#define LED_BRIGHTNESS 50 + +layer_state_t default_layer_state_set_user(layer_state_t state) { + switch (state) { + case 1U << NORMAL: + planck_ez_left_led_off(); + planck_ez_right_led_off(); + break; + case 1U << QWERTY: + planck_ez_left_led_level(LED_BRIGHTNESS); + planck_ez_right_led_off(); + break; + case 1U << GAME: + planck_ez_left_led_off(); + planck_ez_right_led_level(LED_BRIGHTNESS); + break; + } + + return state; +} + +#endif /* KEYBOARD_planck_ez */ diff --git a/keyboards/planck/keymaps/buffet/readme.md b/keyboards/planck/keymaps/buffet/readme.md new file mode 100644 index 000000000000..223595b92c0b --- /dev/null +++ b/keyboards/planck/keymaps/buffet/readme.md @@ -0,0 +1,104 @@ +# buffet's planck layout + +## Layout + +The Layout is based on keychords. +The general idea is that you're able to type everything with either hand, so that you can alternate between hands as you type. + +The keys are in a 2x4 block in the top left and top right respectively (mirrored). +They have greek letter names (see `keymap.c` for more info). + +Thumb added to any key means shift is pressed as well. + +`-` means the finger presses nothing. +`^` means the finger presses the upper row. +`v` means the finger presses the lower row. + +``` +Space: thumb +Return: vvvv vvvv +Tab: vv^v v^vv +Bspace: v--v v--v +Esc: lower pinky and thumb +``` + +### Letters + +``` +a: -^-- --^- +b: -v-^ ^-v- +c: -^^^ ^^^- +d: -vvv vvv- +e: ---^ ^--- +f: --^v v^-- +g: -^v- -v^- +h: -vv- -vv- +i: --^- -^-- +j: -^^v v^^- +k: -^vv vv^- +l: -^^- -^^- +m: -^-^ ^-^- +n: -v-- --v- +o: --v- -v-- +p: -v^- -^v- +q: -^v^ ^v^- +r: --^^ ^^-- +s: --vv vv-- +t: ---v v--- +u: -v-v v-v- +v: --v^ ^v-- +w: -v^v v^v- +x: -vv^ ^vv- +y: -^-v v-^- +z: -v^^ ^^v- +``` + +### Numbers and Symbols + +``` +0: vv-- --vv +1: vv-v v-vv +2: vvv- -vvv +3: v^-- --^v +4: v^-^ ^-^v +5: v^^- -^^v +6: v^-v v-^v +7: v-v- -v-v +8: v^^v v^^v +9: v-^^ ^^-v +-: v^vv vv^v +=: vvv^ ^vvv +[: vv^- -^vv +]: v-^v v^-v +\: v^v- -v^v +;: v^^^ ^^^v +': vv-^ ^-vv +,: v-vv vv-v +.: vv^^ ^^vv +/: v-^- -^-v +`: v--^ ^--v +``` + +### Modifiers + +Modifiers all use the top pinky key, and a combinations of modifiers you want to activate for the next keypress (very similar to how OMS work). +For the modifiers the top row of keys is used. + +``` +Control: Ringfinger +Shift: Middlefinger +Alt: Indexfinger +Super: Thumb +``` + +`^--v v--^` can be used to lock the next modifier input. + +### Remaining + +These combinations are unused. + +``` +v^v^ +v-v^ +v--- +``` diff --git a/keyboards/planck/keymaps/buffet/rgb_matrix_user.inc b/keyboards/planck/keymaps/buffet/rgb_matrix_user.inc new file mode 100644 index 000000000000..e217d1010a3b --- /dev/null +++ b/keyboards/planck/keymaps/buffet/rgb_matrix_user.inc @@ -0,0 +1,18 @@ +RGB_MATRIX_EFFECT(rainbow_stripe) + +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +static HSV rainbow_stripe_math(HSV hsv, uint8_t i, uint8_t time) { + if (i >= 14 && i <= 21) { + hsv.h = g_led_config.point[i].x - time; + } else { + hsv.v = 0; + } + return hsv; +} + +bool rainbow_stripe(effect_params_t* params) { + return effect_runner_i(params, &rainbow_stripe_math); +} + +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/planck/keymaps/buffet/rules.mk b/keyboards/planck/keymaps/buffet/rules.mk new file mode 100644 index 000000000000..7774d766577a --- /dev/null +++ b/keyboards/planck/keymaps/buffet/rules.mk @@ -0,0 +1,6 @@ +AUDIO_ENABLE = no +BOOTMAGIC_ENABLE = lite +COMMAND_ENABLE = no +MOUSEKEY_ENABLE = no + +RGB_MATRIX_CUSTOM_USER = yes From 3f85e90126c37c5ee79be52ae5d764271d4a7734 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 19 Jun 2020 13:16:57 +1000 Subject: [PATCH 019/154] Fix Eon87 info.json (#9460) * Fix Eon87 info.json * Adjust bottom row sizes --- keyboards/maartenwut/eon87/info.json | 556 ++++++++++++++------------- 1 file changed, 287 insertions(+), 269 deletions(-) diff --git a/keyboards/maartenwut/eon87/info.json b/keyboards/maartenwut/eon87/info.json index 8d7dadfab51d..b0ed86a7ead0 100644 --- a/keyboards/maartenwut/eon87/info.json +++ b/keyboards/maartenwut/eon87/info.json @@ -7,294 +7,312 @@ "layouts": { "LAYOUT_all": { "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":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":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":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":3.25, "w":1.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": 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": 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":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": 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": 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": 3.25, "w": 1.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": 1.75}, + {"x": 14, "y": 4.25}, + + {"x": 16.25, "y": 4.25}, + + {"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": 2.25}, + {"x": 6, "y": 5.25, "w": 1.25}, + {"x": 7.25, "y": 5.25, "w": 2.75}, + {"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} ] }, "LAYOUT_tkl_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": 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": 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": 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":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": 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":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": 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":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": 16.25, "y": 4.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": 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":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": 15.25, "y": 5.25}, + {"x": 16.25, "y": 5.25}, + {"x": 17.25, "y": 5.25} ] }, "LAYOUT_tkl_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": 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": 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": 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":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": 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":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": 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":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": 16.25, "y": 4.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": 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":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": 15.25, "y": 5.25}, + {"x": 16.25, "y": 5.25}, + {"x": 17.25, "y": 5.25} ] } } From 60be8d9f245c03db60e6297e357fec516b31bc62 Mon Sep 17 00:00:00 2001 From: AlisGraveNil <63020540+AlisGraveNil@users.noreply.github.com> Date: Thu, 18 Jun 2020 23:31:51 -0400 Subject: [PATCH 020/154] [Keyboard] GameBuddy macropad (#9391) * GameBuddy macropad * Update config.h * Update keyboards/clawsome/gamebuddy/config.h * Update keyboards/clawsome/gamebuddy/readme.md * Update keyboards/clawsome/gamebuddy/readme.md * Update keyboards/clawsome/gamebuddy/readme.md * Update readme.md * Update keyboards/clawsome/gamebuddy/rules.mk * Update keyboards/clawsome/gamebuddy/readme.md --- keyboards/clawsome/gamebuddy/config.h | 37 +++++++++++++++++ keyboards/clawsome/gamebuddy/gamebuddy.c | 16 ++++++++ keyboards/clawsome/gamebuddy/gamebuddy.h | 32 +++++++++++++++ keyboards/clawsome/gamebuddy/info.json | 41 +++++++++++++++++++ .../gamebuddy/keymaps/default/keymap.c | 41 +++++++++++++++++++ keyboards/clawsome/gamebuddy/readme.md | 13 ++++++ keyboards/clawsome/gamebuddy/rules.mk | 25 +++++++++++ 7 files changed, 205 insertions(+) create mode 100644 keyboards/clawsome/gamebuddy/config.h create mode 100644 keyboards/clawsome/gamebuddy/gamebuddy.c create mode 100644 keyboards/clawsome/gamebuddy/gamebuddy.h create mode 100644 keyboards/clawsome/gamebuddy/info.json create mode 100644 keyboards/clawsome/gamebuddy/keymaps/default/keymap.c create mode 100644 keyboards/clawsome/gamebuddy/readme.md create mode 100644 keyboards/clawsome/gamebuddy/rules.mk diff --git a/keyboards/clawsome/gamebuddy/config.h b/keyboards/clawsome/gamebuddy/config.h new file mode 100644 index 000000000000..822cc23abae1 --- /dev/null +++ b/keyboards/clawsome/gamebuddy/config.h @@ -0,0 +1,37 @@ +/* +Copyright 2020 AAClawson (AlisGraveNil) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x17B9 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AlisGraveNil +#define PRODUCT GameBuddy +#define DESCRIPTION A 26-key QMK-powered macropad designed for gaming! + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 7 + +#define MATRIX_ROW_PINS { D1, D0, E6, B3, B2 } +#define MATRIX_COL_PINS { F5, F6, F7, B1, C6, D7, B6 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/clawsome/gamebuddy/gamebuddy.c b/keyboards/clawsome/gamebuddy/gamebuddy.c new file mode 100644 index 000000000000..464bdef8926c --- /dev/null +++ b/keyboards/clawsome/gamebuddy/gamebuddy.c @@ -0,0 +1,16 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "gamebuddy.h" \ No newline at end of file diff --git a/keyboards/clawsome/gamebuddy/gamebuddy.h b/keyboards/clawsome/gamebuddy/gamebuddy.h new file mode 100644 index 000000000000..f1ee9ab357fd --- /dev/null +++ b/keyboards/clawsome/gamebuddy/gamebuddy.h @@ -0,0 +1,32 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 LAYOUT( \ + K00, K01, K02, K03, K04, K05, \ + K10, K11, K12, K13, K14, K15, \ + K20, K22, K23, K24, K25, \ + K30, K31, K32, K33, K34, K35, K46, \ + K44, K45 \ +) { \ + { K00, K01, K02, K03, K04, K05, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, KC_NO }, \ + { K20, KC_NO, K22, K23, K24, K25, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, K44, K45, K46 }, \ +} diff --git a/keyboards/clawsome/gamebuddy/info.json b/keyboards/clawsome/gamebuddy/info.json new file mode 100644 index 000000000000..5562f0615efe --- /dev/null +++ b/keyboards/clawsome/gamebuddy/info.json @@ -0,0 +1,41 @@ +{ + "keyboard_name": "GameBuddy", + "url": "", + "maintainer": "qmk", + "width": 7, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (D1,F5)", "x":0, "y":0}, + {"label":"K01 (D1,F6)", "x":1, "y":0}, + {"label":"K02 (D1,F7)", "x":2, "y":0}, + {"label":"K03 (D1,B1)", "x":3, "y":0}, + {"label":"K04 (D1,C6)", "x":4, "y":0}, + {"label":"K05 (D1,D7)", "x":5, "y":0}, + {"label":"K10 (D0,F5)", "x":0, "y":1}, + {"label":"K11 (D0,F6)", "x":1, "y":1}, + {"label":"K12 (D0,F7)", "x":2, "y":1}, + {"label":"K13 (D0,B1)", "x":3, "y":1}, + {"label":"K14 (D0,C6)", "x":4, "y":1}, + {"label":"K15 (D0,D7)", "x":5, "y":1}, + {"label":"K20 (E6,F5)", "x":0, "y":2, "w":2}, + {"label":"K22 (E6,F7)", "x":2, "y":2}, + {"label":"K23 (E6,B1)", "x":3, "y":2}, + {"label":"K24 (E6,C6)", "x":4, "y":2}, + {"label":"K25 (E6,D7)", "x":5, "y":2}, + {"label":"K30 (B3,F5)", "x":0, "y":3}, + {"label":"K31 (B3,F6)", "x":1, "y":3}, + {"label":"K32 (B3,F7)", "x":2, "y":3}, + {"label":"K33 (B3,B1)", "x":3, "y":3}, + {"label":"K34 (B3,C6)", "x":4, "y":3}, + {"label":"K35 (B3,D7)", "x":5, "y":3}, + {"label":"K46 (B2,B6)", "x":6, "y":3, "h":2}, + {"label":"K44 (B2,C6)", "x":4, "y":4}, + {"label":"K45 (B2,D7)", "x":5, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} + diff --git a/keyboards/clawsome/gamebuddy/keymaps/default/keymap.c b/keyboards/clawsome/gamebuddy/keymaps/default/keymap.c new file mode 100644 index 000000000000..2a5794adfd4a --- /dev/null +++ b/keyboards/clawsome/gamebuddy/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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] = { + /* + * ------------------------------- + * |ESC | 1 | 2 | 3 | 4 | 5 | + * ------------------------------- + * |TAB | V | Q | W | E | R | + * ------------------------------| + * |LSFT | A | S | D | G | + * ------------------------------------ + * |LCTL| N | X | F | C | M |SPC | + * ------------------------------| | + * |LALT|LGUI| | + * ---------------- + */ + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_V, KC_Q, KC_W, KC_E, KC_R, + KC_LSFT, KC_A, KC_S, KC_D, KC_G, + KC_LCTL, KC_N, KC_X, KC_F, KC_C, KC_M, KC_SPC, + KC_LALT, KC_LGUI + ), + +}; + diff --git a/keyboards/clawsome/gamebuddy/readme.md b/keyboards/clawsome/gamebuddy/readme.md new file mode 100644 index 000000000000..62e28dcbca49 --- /dev/null +++ b/keyboards/clawsome/gamebuddy/readme.md @@ -0,0 +1,13 @@ +# GameBuddy + +This is a 5x7 macropad designed for left-hand usage for videogames, with special focus on FPS layouts! + +* Keyboard Maintainer: [AAClawson](https://github.com/AlisGraveNil) +* Hardware Supported: GameBuddy, Pro Micro, Elite-C +* Hardware Availability: www.clawboards.xyz + +Make example for this keyboard (after setting up your build environment): + + make clawsome/gamebuddy: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/clawsome/gamebuddy/rules.mk b/keyboards/clawsome/gamebuddy/rules.mk new file mode 100644 index 000000000000..44d0c26b7531 --- /dev/null +++ b/keyboards/clawsome/gamebuddy/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From 5a5ecd7dd9729280ef72c5133c4007ef15c3f300 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 19 Jun 2020 15:51:50 +1000 Subject: [PATCH 021/154] Remove rules.mk for gboards/engine and gboards/g (#9444) --- keyboards/gboards/engine/rules.mk | 1 - keyboards/gboards/g/rules.mk | 1 - 2 files changed, 2 deletions(-) delete mode 100644 keyboards/gboards/engine/rules.mk delete mode 100644 keyboards/gboards/g/rules.mk diff --git a/keyboards/gboards/engine/rules.mk b/keyboards/gboards/engine/rules.mk deleted file mode 100644 index 186f59386d76..000000000000 --- a/keyboards/gboards/engine/rules.mk +++ /dev/null @@ -1 +0,0 @@ -SRC += engine.c diff --git a/keyboards/gboards/g/rules.mk b/keyboards/gboards/g/rules.mk deleted file mode 100644 index 186f59386d76..000000000000 --- a/keyboards/gboards/g/rules.mk +++ /dev/null @@ -1 +0,0 @@ -SRC += engine.c From b43bdc1c69bb5a57976a159bfc00c4ac1c7c7f8f Mon Sep 17 00:00:00 2001 From: Rossman360 <53881724+Rossman360@users.noreply.github.com> Date: Fri, 19 Jun 2020 18:27:27 -0400 Subject: [PATCH 022/154] rebound rev4, consolodated switch matrix from 5x12 to 7x8 (#9314) --- keyboards/montsinger/rebound/rebound.h | 2 + keyboards/montsinger/rebound/rev4/config.h | 65 +++++++++ keyboards/montsinger/rebound/rev4/info.json | 128 ++++++++++++++++++ .../rebound/rev4/keymaps/default/keymap.c | 102 ++++++++++++++ .../rebound/rev4/keymaps/rossman360/keymap.c | 120 ++++++++++++++++ .../rebound/rev4/keymaps/rossman360/rules.mk | 4 + keyboards/montsinger/rebound/rev4/rev4.h | 59 ++++++++ keyboards/montsinger/rebound/rev4/rules.mk | 33 +++++ users/rossman360/rossman360.h | 1 + 9 files changed, 514 insertions(+) create mode 100644 keyboards/montsinger/rebound/rev4/config.h create mode 100644 keyboards/montsinger/rebound/rev4/info.json create mode 100644 keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c create mode 100644 keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c create mode 100644 keyboards/montsinger/rebound/rev4/keymaps/rossman360/rules.mk create mode 100644 keyboards/montsinger/rebound/rev4/rev4.h create mode 100644 keyboards/montsinger/rebound/rev4/rules.mk diff --git a/keyboards/montsinger/rebound/rebound.h b/keyboards/montsinger/rebound/rebound.h index 848316a3668a..6bddfb2c3abc 100644 --- a/keyboards/montsinger/rebound/rebound.h +++ b/keyboards/montsinger/rebound/rebound.h @@ -24,4 +24,6 @@ #include "rev2.h" #elif defined(KEYBOARD_montsinger_rebound_rev3) #include "rev3.h" +#elif defined(KEYBOARD_montsinger_rebound_rev4) + #include "rev4.h" #endif diff --git a/keyboards/montsinger/rebound/rev4/config.h b/keyboards/montsinger/rebound/rev4/config.h new file mode 100644 index 000000000000..c4fc053ea9c0 --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/config.h @@ -0,0 +1,65 @@ +/* +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x552F +#define DEVICE_VER 0x0002 +#define MANUFACTURER Montsinger +#define PRODUCT Rebound +#define DESCRIPTION "A conjoined Let's Split" + +/* key matrix size */ + +#define MATRIX_ROWS 8 +#define MATRIX_COLS 7 + +/* + * 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) + * + */ + +#define MATRIX_ROW_PINS { D1, D0, D4, C6, F7, F6, F5, F4 } +#define MATRIX_COL_PINS { D7, E6, B4, B5, B2, B3, B1 } +#define UNUSED_PINS { B6 } + +#define ENCODERS_PAD_A { D2 } +#define ENCODERS_PAD_B { D3 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* 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 + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/montsinger/rebound/rev4/info.json b/keyboards/montsinger/rebound/rev4/info.json new file mode 100644 index 000000000000..23893b6c689f --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/info.json @@ -0,0 +1,128 @@ +{ + "keyboard":"montsinger/rebound/rev4", + "url": "https://montsinger.net", + "maintainer": "rossman360", + "width": 13, + "height": 4, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3} + ] + }, + "LAYOUT_ortho_4x12": { + "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":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3} + ] + } + } +} diff --git a/keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c b/keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c new file mode 100644 index 000000000000..be038b1f53d7 --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c @@ -0,0 +1,102 @@ +#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 +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = LAYOUT_all( + 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_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_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +[_COLEMAK] = LAYOUT_all( + KC_TAB, 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_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] = LAYOUT_all( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + 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] = LAYOUT_all( + 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_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +[_RAISE] = 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_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_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +[_ADJUST] = LAYOUT_all( + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + break; + } + return true; +} + +void encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code16(S(KC_VOLD)); + } else { + tap_code16(KC_VOLU); + } +} diff --git a/keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c b/keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c new file mode 100644 index 000000000000..a0c3ab639547 --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c @@ -0,0 +1,120 @@ +#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 ESCMOD LT(_NUM, KC_ESC) +#define RSMOD LT(_FN1, KC_RSHIFT) +# + +enum layer_names { + _BASE, + _DEL, + _FN1, + _FN2, + _NUM, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_BASE] = LAYOUT_all( + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , NTAB , + JUMPBACK, KC_A , KC_S , KC_D , KC_F , KC_G ,MO(_DEL), KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , LM(_FN1, MOD_LALT), KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS, + CMDBSP , ALTDEL , KC_NO , CTRLSP , TABMOD , PGMOD , QUIT , ENTMOD , SPCMOD , MO(_DEL),KC_NO , KC_BSPC, KC_DEL + ), + +[_FN1] = LAYOUT_all( + _______, TAB1 , TAB2 , TAB3 , TAB4 , _______, _______, UNDO , _______, _______, _______, CTAB , + KC_CAPS, _______, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , KC_NO , + _______, _______, XPANDR , _______, PMERGE , _______, _______, _______, PMERGE , KC_DOWN, _______, _______, EMDASH , + WREFRESH,_______, _______, _______, LWORD , RWORD , _______, KC_NO , _______, KC_NO , _______, _______, _______ + ), + +[_FN2] = LAYOUT_all( + _______, SPEAK1 , SPEAK2 , SPEAK3 , SPEAK4 , _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, PARADOWN, CSPEAK, _______, _______, KC_NO , KC_NO , _______, _______, _______ + ), + +[_DEL] = LAYOUT_all( + RESET, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, CTAB , + REMCAPS, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP ,KC_RIGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______, + _______, _______, _______, BLINE , KC_BSPC, BWORD , _______, KC_NO , KC_NO , _______, _______, _______, _______ + ), + +[_NUM] = LAYOUT_all( + KC_GRV , KC_1 , KC_7 , KC_8 , KC_9 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL, + KC_CAPS, _______, KC_4 , KC_5 , KC_6 , KC_BSPC, KC_LBRC, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______, + KC_COMM, KC_DOT , KC_1 , KC_2 , KC_3 ,KC_ENTER, KC_RBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______, + _______, _______, _______, _______, KC_0 , _______, _______, KC_NO , KC_NO , KC_0 , _______, _______, _______ + ) +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + switch(get_highest_layer(layer_state)){ +case _BASE: + if (clockwise) { + tap_code16(KC_VOLD); + } else { + tap_code16(KC_VOLU); + } + break; +case _DEL: + if (clockwise) { + tap_code16(KC_F11); + } else { + tap_code16(KC_F3); + } + break; + + case _FN1: + if (clockwise) { + tap_code16(S(KC_TAB)); + } else { + tap_code16(KC_TAB); + } + break; +} +} + +#ifdef OLED_DRIVER_ENABLE +void oled_task_user(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR(""), false); + + switch (get_highest_layer(layer_state)) { + case _BASE: + oled_write_P(PSTR("Rebound\n"), false); + oled_write_P(PSTR("Rev3.1\n"), false); + break; + case _FN1: + oled_write_P(PSTR("Fn\n"), false); + break; + case _FN2: + oled_write_P(PSTR("Para\n"), false); + break; + case _NUM: + oled_write_P(PSTR("Num\n"), false); + break; + case _DEL: + oled_write_P(PSTR("Del\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("CAPS") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); + +} + +#endif diff --git a/keyboards/montsinger/rebound/rev4/keymaps/rossman360/rules.mk b/keyboards/montsinger/rebound/rev4/keymaps/rossman360/rules.mk new file mode 100644 index 000000000000..fa835793e75a --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/keymaps/rossman360/rules.mk @@ -0,0 +1,4 @@ +MOUSEKEY_ENABLE = no +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +OLED_DRIVER_ENABLE = no diff --git a/keyboards/montsinger/rebound/rev4/rev4.h b/keyboards/montsinger/rebound/rev4/rev4.h new file mode 100644 index 000000000000..923f7d1a2477 --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/rev4.h @@ -0,0 +1,59 @@ +/* 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * The first section contains all of the arguments representing the + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_ortho_4x12( \ + K00, K70, K01, K71, K02, K72, K04, K84, K05, K75, K06, K76, \ + K10, K60, K11, K61, K12, K62, K14, K74, K15, K65, K16, K66, \ + K20, K50, K21, K51, K22, K52, K24, K64, K25, K55, K26, K56,\ + K30, K40, K31, K41, K32, K42, K34, K54, K35, K45, K36, K46\ + ) { \ + { K00, K01, K02, K04, K05, K06, K07}, \ + { K10, K11, K12, K14, K15, K16, K17 }, \ + { K20, K21, K22, K24, K25, K26, K27 }, \ + { K30, K31, K32, K34, K35, K36, K37 }, \ + { K40, K41, K42, K44, K45, K46, K47 }, \ + { K50, K51, K52, K54, K55, K56, K57 }, \ + { K60, K61, K62, K64, K65, K66, K67 }, \ + { K70, K71, K72, K74, K75, K76, K77 } \ +} + +#define LAYOUT_all( \ + K00, K70, K01, K71, K02, K72, K04, K74, K05, K75, K06, K76, \ + K10, K60, K11, K61, K12, K62, K13, K14, K64, K15, K65, K16, K66, \ + K20, K50, K21, K51, K22, K52, K23, K24, K54, K25, K55, K26, K56,\ + K30, K40, K31, K41, K32, K42, K33, K34, K44, K35, K45, K36, K46\ + ) { \ + { K00, K01, K02, KC_NO, K04, K05, K06}, \ + { K10, K11, K12, K13, K14, K15, K16}, \ + { K20, K21, K22, K23, K24, K25, K26}, \ + { K30, K31, K32, K33, K34, K35, K36}, \ + { K40, K41, K42, KC_NO, K44, K45, K46}, \ + { K50, K51, K52, KC_NO, K54, K55, K56}, \ + { K60, K61, K62, KC_NO, K64, K65, K66}, \ + { K70, K71, K72, KC_NO, K74, K75, K76} \ +} + diff --git a/keyboards/montsinger/rebound/rev4/rules.mk b/keyboards/montsinger/rebound/rev4/rules.mk new file mode 100644 index 000000000000..0759709231e1 --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/rules.mk @@ -0,0 +1,33 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +ENCODER_ENABLE = yes + +LAYOUTS = ortho_4x12 +LAYOUTS_HAS_RGB = no + diff --git a/users/rossman360/rossman360.h b/users/rossman360/rossman360.h index 994916b54194..8786da831396 100644 --- a/users/rossman360/rossman360.h +++ b/users/rossman360/rossman360.h @@ -2,6 +2,7 @@ #include "quantum.h" #define BWORD LCTL(KC_BSPC) +#define BLINE LALT(KC_BSPC) #define LWORD LCTL(KC_LEFT) #define RWORD LCTL(KC_RIGHT) #define JUMPBACK LSFT(KC_TAB) From c7851484457e5ab604962ae7c914b863b8de0cb2 Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Fri, 19 Jun 2020 22:35:32 +0000 Subject: [PATCH 023/154] STM32 WS2812 Open Drain Configuration (#9414) * update docs stm32 only and applies to all 3 driver * cformat --- docs/ws2812_driver.md | 11 +++++++++++ drivers/chibios/ws2812.c | 10 +++++++++- drivers/chibios/ws2812_pwm.c | 22 +++++++++++++++++----- drivers/chibios/ws2812_spi.c | 22 +++++++++++++++++----- 4 files changed, 54 insertions(+), 11 deletions(-) diff --git a/docs/ws2812_driver.md b/docs/ws2812_driver.md index 51b053b9b4a0..fe5f88585a9f 100644 --- a/docs/ws2812_driver.md +++ b/docs/ws2812_driver.md @@ -99,3 +99,14 @@ While not an exhaustive list, the following table provides the scenarios that ha | f401/f411 | :heavy_check_mark: | *Other supported ChibiOS boards and/or pins may function, it will be highly chip and configuration dependent.* + +### 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. + +Note: This only applies to STM32 boards. + + To configure the `RGB_DI_PIN` to open drain configuration add this to your config.h file: +```c + #define WS2812_EXTERNAL_PULLUP +``` diff --git a/drivers/chibios/ws2812.c b/drivers/chibios/ws2812.c index bdca565d881f..2c2d9fb2dcd4 100644 --- a/drivers/chibios/ws2812.c +++ b/drivers/chibios/ws2812.c @@ -14,6 +14,14 @@ # endif #endif +// Push Pull or Open Drain Configuration +// Default Push Pull +#ifndef WS2812_EXTERNAL_PULLUP +# define WS2812_OUTPUT_MODE PAL_MODE_OUTPUT_PUSHPULL +#else +# define WS2812_OUTPUT_MODE PAL_MODE_OUTPUT_OPENDRAIN +#endif + #define NUMBER_NOPS 6 #define CYCLES_PER_SEC (STM32_SYSCLK / NUMBER_NOPS * NOP_FUDGE) #define NS_PER_SEC (1000000000L) // Note that this has to be SIGNED since we want to be able to check for negative values of derivatives @@ -66,7 +74,7 @@ void sendByte(uint8_t byte) { } } -void ws2812_init(void) { setPinOutput(RGB_DI_PIN); } +void ws2812_init(void) { palSetLineMode(RGB_DI_PIN, WS2812_OUTPUT_MODE); } // Setleds for standard RGB void ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) { diff --git a/drivers/chibios/ws2812_pwm.c b/drivers/chibios/ws2812_pwm.c index 1a172102987b..ba45d00425a1 100644 --- a/drivers/chibios/ws2812_pwm.c +++ b/drivers/chibios/ws2812_pwm.c @@ -24,6 +24,22 @@ # define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP #endif +// Push Pull or Open Drain Configuration +// Default Push Pull +#ifndef WS2812_EXTERNAL_PULLUP +# if defined(USE_GPIOV1) +# define WS2812_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_PUSHPULL +# else +# define WS2812_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_PWM_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING +# endif +#else +# if defined(USE_GPIOV1) +# define WS2812_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_OPENDRAIN +# else +# define WS2812_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_PWM_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING +# endif +#endif + #ifndef WS2812_PWM_TARGET_PERIOD //# define WS2812_PWM_TARGET_PERIOD 800000 // Original code is 800k...? # define WS2812_PWM_TARGET_PERIOD 80000 // TODO: work out why 10x less on f303/f4x1 @@ -142,11 +158,7 @@ void ws2812_init(void) { for (i = 0; i < WS2812_COLOR_BIT_N; i++) ws2812_frame_buffer[i] = WS2812_DUTYCYCLE_0; // All color bits are zero duty cycle for (i = 0; i < WS2812_RESET_BIT_N; i++) ws2812_frame_buffer[i + WS2812_COLOR_BIT_N] = 0; // All reset bits are zero -#if defined(USE_GPIOV1) - palSetLineMode(RGB_DI_PIN, PAL_MODE_STM32_ALTERNATE_PUSHPULL); -#else - palSetLineMode(RGB_DI_PIN, PAL_MODE_ALTERNATE(WS2812_PWM_PAL_MODE) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING); -#endif + palSetLineMode(RGB_DI_PIN, WS2812_OUTPUT_MODE); // PWM Configuration //#pragma GCC diagnostic ignored "-Woverride-init" // Turn off override-init warning for this struct. We use the overriding ability to set a "default" channel config diff --git a/drivers/chibios/ws2812_spi.c b/drivers/chibios/ws2812_spi.c index 36e08e39ed37..3bbada7fef1c 100644 --- a/drivers/chibios/ws2812_spi.c +++ b/drivers/chibios/ws2812_spi.c @@ -16,6 +16,22 @@ # define WS2812_SPI_MOSI_PAL_MODE 5 #endif +// Push Pull or Open Drain Configuration +// Default Push Pull +#ifndef WS2812_EXTERNAL_PULLUP +# if defined(USE_GPIOV1) +# define WS2812_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_PUSHPULL +# else +# define WS2812_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL +# endif +#else +# if defined(USE_GPIOV1) +# define WS2812_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_OPENDRAIN +# else +# define WS2812_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN +# endif +#endif + #define BYTES_FOR_LED_BYTE 4 #define NB_COLORS 3 #define BYTES_FOR_LED (BYTES_FOR_LED_BYTE * NB_COLORS) @@ -52,11 +68,7 @@ static void set_led_color_rgb(LED_TYPE color, int pos) { } void ws2812_init(void) { -#if defined(USE_GPIOV1) - palSetLineMode(RGB_DI_PIN, PAL_MODE_STM32_ALTERNATE_PUSHPULL); -#else - palSetLineMode(RGB_DI_PIN, PAL_MODE_ALTERNATE(WS2812_SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL); -#endif + palSetLineMode(RGB_DI_PIN, WS2812_OUTPUT_MODE); // TODO: more dynamic baudrate static const SPIConfig spicfg = { From 18e561b82cdb71bed0162b3ce4083a2d269e5336 Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Fri, 19 Jun 2020 22:59:28 -0400 Subject: [PATCH 024/154] Fix incorrect delay when setting WS2812 (and similar) leds (#9302) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix incorrect delay when setting WS2812 (and similar) leds * Add documentation for WS2812_DELAY_MICROSECONDS * Remove improper cast to uint8_t Co-authored-by: Sergey Vlasov * Remove unneeded cast to uint8_t and correct math Co-authored-by: Sergey Vlasov * microseconds -> µs Co-authored-by: Ryan * Make documentation better match the spec sheet. Co-authored-by: Ryan * Rename macro to match spec sheet * Further correction to the delay maths for the SPI case. Co-authored-by: Joel Challis * Move ws2812_common.h to the drivers directory * Revert "Further correction to the delay maths for the SPI case." This reverts commit e61b56a2cfc7dfec9992a7a3af92afa50e5b8ec0. * Remove ws2812_setleds_pin(); consolidate ws2812.h Co-authored-by: Sergey Vlasov Co-authored-by: Ryan Co-authored-by: Joel Challis --- docs/ws2812_driver.md | 9 +++++++++ drivers/avr/ws2812.c | 20 +++++--------------- drivers/chibios/ws2812.c | 2 +- drivers/chibios/ws2812.h | 16 ---------------- drivers/chibios/ws2812_pwm.c | 7 +++---- drivers/chibios/ws2812_spi.c | 2 +- drivers/{avr => }/ws2812.h | 18 +++++++++--------- keyboards/wilba_tech/wt_rgb_backlight.c | 2 +- 8 files changed, 29 insertions(+), 47 deletions(-) delete mode 100644 drivers/chibios/ws2812.h rename drivers/{avr => }/ws2812.h (75%) diff --git a/docs/ws2812_driver.md b/docs/ws2812_driver.md index fe5f88585a9f..941e1bde084a 100644 --- a/docs/ws2812_driver.md +++ b/docs/ws2812_driver.md @@ -19,6 +19,15 @@ These LEDs are called "addressable" because instead of using a wire per color, e ## Driver configuration +### All drivers + +Different versions of the addressable LEDs have differing requirements for the TRST 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 +``` + ### Bitbang Default driver, the absence of configuration assumes this driver. To configure it, add this to your rules.mk: diff --git a/drivers/avr/ws2812.c b/drivers/avr/ws2812.c index 5c3d72dcb5e8..dd2ef899124d 100644 --- a/drivers/avr/ws2812.c +++ b/drivers/avr/ws2812.c @@ -36,25 +36,15 @@ static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t masklo, uint8_t maskhi); -// Setleds for standard RGB -void inline ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds) { - // wrap up usage of RGB_DI_PIN - ws2812_setleds_pin(ledarray, number_of_leds, RGB_DI_PIN); -} - -void ws2812_setleds_pin(LED_TYPE *ledarray, uint16_t number_of_leds, uint8_t pin) { - DDRx_ADDRESS(RGB_DI_PIN) |= pinmask(pin); +void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds) { + DDRx_ADDRESS(RGB_DI_PIN) |= pinmask(RGB_DI_PIN); - uint8_t masklo = ~(pinmask(pin)) & PORTx_ADDRESS(pin); - uint8_t maskhi = pinmask(pin) | PORTx_ADDRESS(pin); + uint8_t masklo = ~(pinmask(RGB_DI_PIN)) & PORTx_ADDRESS(RGB_DI_PIN); + uint8_t maskhi = pinmask(RGB_DI_PIN) | PORTx_ADDRESS(RGB_DI_PIN); ws2812_sendarray_mask((uint8_t *)ledarray, number_of_leds * sizeof(LED_TYPE), masklo, maskhi); -#ifdef RGBW - _delay_us(80); -#else - _delay_us(50); -#endif + _delay_us(WS2812_TRST_US); } /* diff --git a/drivers/chibios/ws2812.c b/drivers/chibios/ws2812.c index 2c2d9fb2dcd4..5917b7f0ecf0 100644 --- a/drivers/chibios/ws2812.c +++ b/drivers/chibios/ws2812.c @@ -51,7 +51,7 @@ // The reset gap can be 6000 ns, but depending on the LED strip it may have to be increased // to values like 600000 ns. If it is too small, the pixels will show nothing most of the time. -#define RES 10000 // Width of the low gap between bits to cause a frame to latch +#define RES (1000 * WS2812_TRST_US) // Width of the low gap between bits to cause a frame to latch void sendByte(uint8_t byte) { // WS2812 protocol wants most significant bits first diff --git a/drivers/chibios/ws2812.h b/drivers/chibios/ws2812.h deleted file mode 100644 index 41c22a00b886..000000000000 --- a/drivers/chibios/ws2812.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include "quantum/color.h" - -/* User Interface - * - * Input: - * ledarray: An array of GRB data describing the LED colors - * number_of_leds: The number of LEDs to write - * - * The functions will perform the following actions: - * - Set the data-out pin as output - * - Send out the LED data - * - Wait 50us to reset the LEDs - */ -void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds); diff --git a/drivers/chibios/ws2812_pwm.c b/drivers/chibios/ws2812_pwm.c index ba45d00425a1..7113db11e0b9 100644 --- a/drivers/chibios/ws2812_pwm.c +++ b/drivers/chibios/ws2812_pwm.c @@ -53,11 +53,10 @@ /** * @brief Number of bit-periods to hold the data line low at the end of a frame * - * The reset period for each frame must be at least 50 uS; so we add in 50 bit-times - * of zeroes at the end. (50 bits)*(1.25 uS/bit) = 62.5 uS, which gives us some - * slack in the timing requirements + * The reset period for each frame is defined in WS2812_TRST_US. + * Calculate the number of zeroes to add at the end assuming 1.25 uS/bit: */ -#define WS2812_RESET_BIT_N (50) +#define WS2812_RESET_BIT_N (1000 * WS2812_TRST_US / 1250) #define WS2812_COLOR_BIT_N (RGBLED_NUM * 24) /**< Number of data bits */ #define WS2812_BIT_N (WS2812_COLOR_BIT_N + WS2812_RESET_BIT_N) /**< Total number of bits in a frame */ diff --git a/drivers/chibios/ws2812_spi.c b/drivers/chibios/ws2812_spi.c index 3bbada7fef1c..7a1d2f05daf7 100644 --- a/drivers/chibios/ws2812_spi.c +++ b/drivers/chibios/ws2812_spi.c @@ -36,7 +36,7 @@ #define NB_COLORS 3 #define BYTES_FOR_LED (BYTES_FOR_LED_BYTE * NB_COLORS) #define DATA_SIZE (BYTES_FOR_LED * RGBLED_NUM) -#define RESET_SIZE 200 +#define RESET_SIZE (1000 * WS2812_TRST_US / (2 * 1250)) #define PREAMBLE_SIZE 4 static uint8_t txbuf[PREAMBLE_SIZE + DATA_SIZE + RESET_SIZE] = {0}; diff --git a/drivers/avr/ws2812.h b/drivers/ws2812.h similarity index 75% rename from drivers/avr/ws2812.h rename to drivers/ws2812.h index 88eb0818942c..370b14f3e8f1 100644 --- a/drivers/avr/ws2812.h +++ b/drivers/ws2812.h @@ -1,11 +1,4 @@ /* - * light weight WS2812 lib include - * - * Version 2.3 - Nev 29th 2015 - * Author: Tim (cpldcpu@gmail.com) - * - * Please do not change this file! All configuration is handled in "ws2812_config.h" - * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or @@ -24,12 +17,20 @@ #include "quantum/color.h" +/* + * Older WS2812s can handle a reset time (TRST) of 50us, but recent + * component revisions require a minimum of 280us. + */ + +#if !defined(WS2812_TRST_US) +#define WS2812_TRST_US 280 +#endif + /* User Interface * * Input: * ledarray: An array of GRB data describing the LED colors * number_of_leds: The number of LEDs to write - * pin (optional): A pin_t definition for the line to drive * * The functions will perform the following actions: * - Set the data-out pin as output @@ -37,4 +38,3 @@ * - Wait 50us to reset the LEDs */ void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds); -void ws2812_setleds_pin(LED_TYPE *ledarray, uint16_t number_of_leds, uint8_t pin); diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index e2506bf3f90d..92e14165ee25 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -55,7 +55,7 @@ #endif #if defined(RGB_BACKLIGHT_DAWN60) -#include "drivers/avr/ws2812.h" +#include "ws2812.h" LED_TYPE g_ws2812_leds[WS2812_LED_TOTAL]; #endif From 8b572de5236589ea91e2f0cce218298e67b9f5ee Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Sat, 20 Jun 2020 03:37:04 +0000 Subject: [PATCH 025/154] format code according to conventions [skip ci] --- drivers/chibios/ws2812.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/chibios/ws2812.c b/drivers/chibios/ws2812.c index 5917b7f0ecf0..0440cac7550d 100644 --- a/drivers/chibios/ws2812.c +++ b/drivers/chibios/ws2812.c @@ -51,7 +51,7 @@ // The reset gap can be 6000 ns, but depending on the LED strip it may have to be increased // to values like 600000 ns. If it is too small, the pixels will show nothing most of the time. -#define RES (1000 * WS2812_TRST_US) // Width of the low gap between bits to cause a frame to latch +#define RES (1000 * WS2812_TRST_US) // Width of the low gap between bits to cause a frame to latch void sendByte(uint8_t byte) { // WS2812 protocol wants most significant bits first From 05e6cc265509af3286ab0e695839e311acc58b55 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 19 Jun 2020 20:45:25 -0700 Subject: [PATCH 026/154] Enable Mousekeys for Keebio Quefrency rev1 (#9478) --- keyboards/keebio/quefrency/rev1/rules.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/keebio/quefrency/rev1/rules.mk b/keyboards/keebio/quefrency/rev1/rules.mk index 58e9a76b2302..14423312b07e 100644 --- a/keyboards/keebio/quefrency/rev1/rules.mk +++ b/keyboards/keebio/quefrency/rev1/rules.mk @@ -1 +1,3 @@ BOOTLOADER = caterina + +MOUSEKEY_ENABLE = yes # Mouse keys From d9eae3ef033d3adce7da1ba3d57cc9480659deb0 Mon Sep 17 00:00:00 2001 From: MelGeek <65591833+melgeek001365@users.noreply.github.com> Date: Sat, 20 Jun 2020 12:49:15 +0800 Subject: [PATCH 027/154] Support IS31FL3741 and IS31FL3741A. (#9201) --- common_features.mk | 9 +- drivers/issi/is31fl3741.c | 289 +++++++++++++++++++++++++++++++++++ drivers/issi/is31fl3741.h | 55 +++++++ quantum/rgb_matrix.h | 2 + quantum/rgb_matrix_drivers.c | 27 +++- 5 files changed, 376 insertions(+), 6 deletions(-) create mode 100644 drivers/issi/is31fl3741.c create mode 100644 drivers/issi/is31fl3741.h diff --git a/common_features.mk b/common_features.mk index bdc6f883eb9c..e23de553b379 100644 --- a/common_features.mk +++ b/common_features.mk @@ -144,7 +144,7 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) endif endif -VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 IS31FL3737 WS2812 custom +VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom LED_MATRIX_ENABLE ?= no ifneq ($(strip $(LED_MATRIX_ENABLE)), no) @@ -205,6 +205,13 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3737) QUANTUM_LIB_SRC += i2c_master.c endif +ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3741) + OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/issi + SRC += is31fl3741.c + QUANTUM_LIB_SRC += i2c_master.c +endif + ifeq ($(strip $(RGB_MATRIX_ENABLE)), WS2812) OPT_DEFS += -DWS2812 WS2812_DRIVER_REQUIRED := yes diff --git a/drivers/issi/is31fl3741.c b/drivers/issi/is31fl3741.c new file mode 100644 index 000000000000..45d2b4099098 --- /dev/null +++ b/drivers/issi/is31fl3741.c @@ -0,0 +1,289 @@ +/* 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 "wait.h" + +#include "is31fl3741.h" +#include +#include "i2c_master.h" +#include "progmem.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 ISSI_ADDR_DEFAULT 0x60 + +#define ISSI_COMMANDREGISTER 0xFD +#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE +#define ISSI_INTERRUPTMASKREGISTER 0xF0 +#define ISSI_INTERRUPTSTATUSREGISTER 0xF1 +#define ISSI_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 ISSI_REG_CONFIGURATION 0x00 // PG4 +#define ISSI_REG_GLOBALCURRENT 0x01 // PG4 +#define ISSI_REG_PULLDOWNUP 0x02 // PG4 +#define ISSI_REG_RESET 0x3F // PG4 + +#ifndef ISSI_TIMEOUT +# define ISSI_TIMEOUT 100 +#endif + +#ifndef ISSI_PERSISTENCE +# define ISSI_PERSISTENCE 0 +#endif + +#define ISSI_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[DRIVER_COUNT][ISSI_MAX_LEDS]; +bool g_pwm_buffer_update_required = false; +bool g_scaling_registers_update_required[DRIVER_COUNT] = {false}; + +uint8_t g_scaling_registers[DRIVER_COUNT][ISSI_MAX_LEDS]; + +uint32_t IS31FL3741_get_cw_sw_position(uint8_t cs, uint8_t sw) { + uint32_t pos = 0; + + if (cs < 31) { + if (sw < 7) { + pos = (sw - 1) * 30 + (cs - 1); + + } else { + pos = 0xB4 + (sw - 7) * 30 + (cs - 1); + } + } else { + pos = 0xB4 + 0x5A + (sw - 1) * 9 + (cs - 31); + } + + return pos; +} + +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; + } +#else + i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT); +#endif +} + +bool IS31FL3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { + // unlock the command register and select PG2 + IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM0); + + for (int i = 0; i < 342; i += 18) { + g_twi_transfer_buffer[0] = i % 180; + + if (i == 180) { + // unlock the command register and select PG2 + IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM1); + } + + 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) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, ISSI_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 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) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, ISSI_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, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + + // Select PG4 + IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + + // Set to Normal operation + IS31FL3741_write_register(addr, ISSI_REG_CONFIGURATION, 0x01); + + // Set Golbal Current Control Register + IS31FL3741_write_register(addr, ISSI_REG_GLOBALCURRENT, 0xFF); + // Set Pull up & Down for SWx CSy + IS31FL3741_write_register(addr, ISSI_REG_PULLDOWNUP, 0x77); + +// IS31FL3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF); + +// Wait 10ms to ensure the device has woken up. + wait_ms(10); +} + +void IS31FL3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { + if (index >= 0 && index < DRIVER_LED_TOTAL) { + is31_led led = g_is31_leds[index]; + uint32_t rp = 0, gp = 0, bp = 0; + + rp = IS31FL3741_get_cw_sw_position(led.rcs, led.rsw); + gp = IS31FL3741_get_cw_sw_position(led.gcs, led.gsw); + bp = IS31FL3741_get_cw_sw_position(led.bcs, led.bsw); + + g_pwm_buffer[led.driver][rp] = red; + g_pwm_buffer[led.driver][gp] = green; + g_pwm_buffer[led.driver][bp] = blue; + g_pwm_buffer_update_required = true; + } +} + +void IS31FL3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + IS31FL3741_set_color(i, red, green, blue); + } +} + +void IS31FL3741_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { + is31_led led = g_is31_leds[index]; + + uint32_t scaling_register_r = IS31FL3741_get_cw_sw_position(led.rcs, led.rsw); + uint32_t scaling_register_g = IS31FL3741_get_cw_sw_position(led.gcs, led.gsw); + uint32_t scaling_register_b = IS31FL3741_get_cw_sw_position(led.bcs, led.bsw); + + if (red) { + g_scaling_registers[led.driver][scaling_register_r] = 0xFF; + } else { + g_scaling_registers[led.driver][scaling_register_r] = 0x00; + } + + if (green) { + g_scaling_registers[led.driver][scaling_register_g] = 0xFF; + } else { + g_scaling_registers[led.driver][scaling_register_g] = 0x00; + } + + if (blue) { + g_scaling_registers[led.driver][scaling_register_b] = 0xFF; + } else { + g_scaling_registers[led.driver][scaling_register_b] = 0x00; + } + + g_scaling_registers_update_required[led.driver] = true; +} + +void IS31FL3741_update_pwm_buffers(uint8_t addr1, uint8_t addr2) { + if (g_pwm_buffer_update_required) { + IS31FL3741_write_pwm_buffer(addr1, g_pwm_buffer[0]); + } + + g_pwm_buffer_update_required = false; +} + +void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) { + uint32_t rp = 0, gp = 0, bp = 0; + + rp = IS31FL3741_get_cw_sw_position(pled->rcs, pled->rsw); + gp = IS31FL3741_get_cw_sw_position(pled->gcs, pled->gsw); + bp = IS31FL3741_get_cw_sw_position(pled->bcs, pled->bsw); + + g_pwm_buffer[pled->driver][rp] = red; + g_pwm_buffer[pled->driver][gp] = green; + g_pwm_buffer[pled->driver][bp] = blue; + + g_pwm_buffer_update_required = 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, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + IS31FL3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_SCALING_0); + + for (int i = 0; i < 180; ++i) { + IS31FL3741_write_register(addr, i, g_scaling_registers[0][i]); + } + + // 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); + + for (int i = 0; i < 171; ++i) { + IS31FL3741_write_register(addr, i, g_scaling_registers[0][180 + i]); + } + } +} + +void IS31FL3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) { + uint32_t rp = 0, gp = 0, bp = 0; + + rp = IS31FL3741_get_cw_sw_position(pled->rcs, pled->rsw); + gp = IS31FL3741_get_cw_sw_position(pled->gcs, pled->gsw); + bp = IS31FL3741_get_cw_sw_position(pled->bcs, pled->bsw); + + g_scaling_registers[pled->driver][rp] = red; + g_scaling_registers[pled->driver][gp] = green; + g_scaling_registers[pled->driver][bp] = blue; +} diff --git a/drivers/issi/is31fl3741.h b/drivers/issi/is31fl3741.h new file mode 100644 index 000000000000..3fa853467be2 --- /dev/null +++ b/drivers/issi/is31fl3741.h @@ -0,0 +1,55 @@ +/* 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 + +typedef struct is31_led { + uint8_t driver : 2; + uint8_t rcs; + uint8_t rsw; + uint8_t gcs; + uint8_t gsw; + uint8_t bcs; + uint8_t bsw; +} __attribute__((packed)) is31_led; + +extern const is31_led g_is31_leds[DRIVER_LED_TOTAL]; +extern const is31_led g_is31_indicator_leds[DRIVER_INDICATOR_LED_TOTAL]; + +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_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); + +void IS31FL3741_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 IS31FL3741_update_pwm_buffers(uint8_t addr1, uint8_t addr2); +void IS31FL3741_update_led_control_registers(uint8_t addr1, uint8_t addr2); +void IS31FL3741_set_scaling_registers(const is31_led *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); diff --git a/quantum/rgb_matrix.h b/quantum/rgb_matrix.h index d9ce391068cf..03e9e8572c57 100644 --- a/quantum/rgb_matrix.h +++ b/quantum/rgb_matrix.h @@ -32,6 +32,8 @@ # include "is31fl3733.h" #elif defined(IS31FL3737) # include "is31fl3737.h" +#elif defined(IS31FL3741) +# include "is31fl3741.h" #elif defined(WS2812) # include "ws2812.h" #endif diff --git a/quantum/rgb_matrix_drivers.c b/quantum/rgb_matrix_drivers.c index ea41b0d3962f..204b6c551f97 100644 --- a/quantum/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix_drivers.c @@ -23,7 +23,7 @@ * be here if shared between boards. */ -#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3737) +#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3737) || defined(IS31FL3741) # include "i2c_master.h" @@ -34,8 +34,10 @@ static void init(void) { IS31FL3731_init(DRIVER_ADDR_2); # elif defined(IS31FL3733) IS31FL3733_init(DRIVER_ADDR_1, 0); -# else +# elif defined(IS31FL3737) IS31FL3737_init(DRIVER_ADDR_1); +# else + IS31FL3741_init(DRIVER_ADDR_1); # endif for (int index = 0; index < DRIVER_LED_TOTAL; index++) { bool enabled = true; @@ -44,8 +46,10 @@ static void init(void) { IS31FL3731_set_led_control_register(index, enabled, enabled, enabled); # elif defined(IS31FL3733) IS31FL3733_set_led_control_register(index, enabled, enabled, enabled); -# else +# elif defined(IS31FL3737) IS31FL3737_set_led_control_register(index, enabled, enabled, enabled); +# else + IS31FL3741_set_led_control_register(index, enabled, enabled, enabled); # endif } // This actually updates the LED drivers @@ -55,8 +59,10 @@ static void init(void) { # elif defined(IS31FL3733) IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0); IS31FL3733_update_led_control_registers(DRIVER_ADDR_2, 1); -# else +# elif defined(IS31FL3737) IS31FL3737_update_led_control_registers(DRIVER_ADDR_1, DRIVER_ADDR_2); +# else + IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); # endif } @@ -84,7 +90,7 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color = IS31FL3733_set_color, .set_color_all = IS31FL3733_set_color_all, }; -# else +# elif defined(IS31FL3737) static void flush(void) { IS31FL3737_update_pwm_buffers(DRIVER_ADDR_1, DRIVER_ADDR_2); } const rgb_matrix_driver_t rgb_matrix_driver = { @@ -93,6 +99,17 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color = IS31FL3737_set_color, .set_color_all = IS31FL3737_set_color_all, }; +# else +static void flush(void) { + IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, DRIVER_ADDR_2); +} + +const rgb_matrix_driver_t rgb_matrix_driver = { + .init = init, + .flush = flush, + .set_color = IS31FL3741_set_color, + .set_color_all = IS31FL3741_set_color_all, +}; # endif #elif defined(WS2812) From 580cb2c1dfc4b5b00744a1a6f39107d6e91e1159 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat, 20 Jun 2020 21:02:16 +0900 Subject: [PATCH 028/154] [Update] Files with Japanese translations related to #8822 (#9455) * The TAG of the original document has been updated to facilitate future verification. * The TAG of the original document has been updated to facilitate future verification. * The TAG of the original document has been updated to facilitate future verification. --- docs/ja/faq_debug.md | 4 ++-- docs/ja/flashing.md | 4 ++-- docs/ja/getting_started_vagrant.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/ja/faq_debug.md b/docs/ja/faq_debug.md index 856e9473a177..b70edf63d756 100644 --- a/docs/ja/faq_debug.md +++ b/docs/ja/faq_debug.md @@ -1,8 +1,8 @@ # デバッグの FAQ このページは、キーボードのトラブルシューティングについての様々な一般的な質問を説明します。 diff --git a/docs/ja/flashing.md b/docs/ja/flashing.md index 713d4fdf9e00..15828514525d 100644 --- a/docs/ja/flashing.md +++ b/docs/ja/flashing.md @@ -1,8 +1,8 @@ # 書き込みの手順とブートローダ情報 キーボードが使用するブートローダにはかなり多くの種類があり、ほぼ全てが異なる書き込みの方法を使います。幸いなことに、[QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) のようなプロジェクトは、あまり深く考える必要無しに様々なタイプと互換性を持つことを目指していますが、この文章では様々なタイプのブートローダとそれらを書き込むために利用可能な方法について説明します。 diff --git a/docs/ja/getting_started_vagrant.md b/docs/ja/getting_started_vagrant.md index 66fb89510773..58eca5c0a302 100644 --- a/docs/ja/getting_started_vagrant.md +++ b/docs/ja/getting_started_vagrant.md @@ -1,8 +1,8 @@ # Vagrant クイックスタート このプロジェクトは、プライマリオペレーティングシステムに大きな変更を加えることなくキーボードの新しいファームウェアを非常に簡単に構築することができる `Vagrantfile` を含みます。これは、あなたがプロジェクトをクローンしビルドを実行した時に、ビルドのために Vagrantfile を使っている他のユーザと全く同じ環境を持つことも保証します。これにより、人々はあなたが遭遇した問題の解決をより簡単に行えるようになります。 From de79d55187be24e714e1351810fa81ecad35474e Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat, 20 Jun 2020 13:47:50 -0700 Subject: [PATCH 029/154] New Keyboard: E8.5 TKL (#9447) Co-authored-by: Ryan --- keyboards/exclusive/e85/config.h | 209 +++++++++++++ keyboards/exclusive/e85/e85.c | 17 + keyboards/exclusive/e85/e85.h | 87 ++++++ keyboards/exclusive/e85/info.json | 293 ++++++++++++++++++ .../exclusive/e85/keymaps/default/keymap.c | 37 +++ .../exclusive/e85/keymaps/standard/keymap.c | 37 +++ .../exclusive/e85/keymaps/tsangan/keymap.c | 37 +++ keyboards/exclusive/e85/keymaps/via/config.h | 1 + keyboards/exclusive/e85/keymaps/via/keymap.c | 45 +++ keyboards/exclusive/e85/keymaps/via/rules.mk | 3 + keyboards/exclusive/e85/readme.md | 17 + keyboards/exclusive/e85/rules.mk | 32 ++ keyboards/exclusive/readme.md | 1 + 13 files changed, 816 insertions(+) create mode 100644 keyboards/exclusive/e85/config.h create mode 100644 keyboards/exclusive/e85/e85.c create mode 100644 keyboards/exclusive/e85/e85.h create mode 100644 keyboards/exclusive/e85/info.json create mode 100644 keyboards/exclusive/e85/keymaps/default/keymap.c create mode 100644 keyboards/exclusive/e85/keymaps/standard/keymap.c create mode 100644 keyboards/exclusive/e85/keymaps/tsangan/keymap.c create mode 100644 keyboards/exclusive/e85/keymaps/via/config.h create mode 100644 keyboards/exclusive/e85/keymaps/via/keymap.c create mode 100644 keyboards/exclusive/e85/keymaps/via/rules.mk create mode 100644 keyboards/exclusive/e85/readme.md create mode 100644 keyboards/exclusive/e85/rules.mk diff --git a/keyboards/exclusive/e85/config.h b/keyboards/exclusive/e85/config.h new file mode 100644 index 000000000000..d122c93619c3 --- /dev/null +++ b/keyboards/exclusive/e85/config.h @@ -0,0 +1,209 @@ +/* +Copyright 2020 MechMerlin + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4558 // EX +#define PRODUCT_ID 0xE851 // E8.5 Version 1 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Exclusive +#define PRODUCT E8.5 Hotswap PCB +#define DESCRIPTION A custom TKL keyboard + +/* key matrix size */ +#define MATRIX_ROWS 11 +#define MATRIX_COLS 9 + +/* + * 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) + * + */ + +// 0 1 2 3 4 5 6 7 8 9 A +#define MATRIX_ROW_PINS { E6, B0, B1, B2, B3, B7, F7, F6, F5, F4, F1 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B6 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 6 + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 18 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* 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 1 + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/exclusive/e85/e85.c b/keyboards/exclusive/e85/e85.c new file mode 100644 index 000000000000..20cd0e03f5f5 --- /dev/null +++ b/keyboards/exclusive/e85/e85.c @@ -0,0 +1,17 @@ +/* Copyright 2020 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "e85.h" diff --git a/keyboards/exclusive/e85/e85.h b/keyboards/exclusive/e85/e85.h new file mode 100644 index 000000000000..19b2dff5507d --- /dev/null +++ b/keyboards/exclusive/e85/e85.h @@ -0,0 +1,87 @@ +/* Copyright 2020 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 ___ KC_NO + +// This is the layout for the soldered PCB +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K68, K67, K65, K64, K63, K66, K62, K61, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K78, K70, K77, K75, K74, K73, K76, K72, K71, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K88, K87, K85, K84, K94, K86, K82, K81, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K98, K97, K95, K83, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, KA8, KA7, KA5, KA4, KA3, K92, \ + K50, K51, K52, K56, K58, K57, K54, K53, KA6, KA2, KA1 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \ + { K50, K51, K52, K53, K54, KC_NO, K56, K57, K58 }, \ + { KC_NO, K61, K62, K63, K64, K65, K66, K67, K68 }, \ + { K70, K71, K72, K73, K74, K75, K76, K77, K78 }, \ + { KC_NO, K81, K82, K83, K84, K85, K86, K87, K88 }, \ + { KC_NO, KC_NO, K92, KC_NO, K94, K95, KC_NO, K97, K98 }, \ + { KC_NO, KA1, KA2, KA3, KA4, KA5, KA6, KA7, KA8 }, \ +} + +// This is the layout for one hotswap PCB and can also be used on the soldered edition +#define LAYOUT_ansi_standard( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K68, K67, K65, K64, K63, K66, K62, K61, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K78, K70, K77, K75, K73, K76, K72, K71, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K88, K87, K85, K84, K83, K86, K82, K81, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K98, K97, K95, K93, \ + K40, K42, K43, K44, K45, K46, K47, K48, KA8, KA7, KA5, KA4, K92, \ + K50, K51, K52, K56, K58, K57, K54, K53, KA6, KA2, KA1 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38 }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48 }, \ + { K50, K51, K52, K53, K54, KC_NO, K56, K57, K58 }, \ + { KC_NO, K61, K62, K63, K64, K65, K66, K67, K68 }, \ + { K70, K71, K72, K73, KC_NO, K75, K76, K77, K78 }, \ + { KC_NO, K81, K82, K83, K84, K85, K86, K87, K88 }, \ + { KC_NO, KC_NO, K92, K93, KC_NO, K95, KC_NO, K97, K98 }, \ + { KC_NO, KA1, KA2, KC_NO, KA4, KA5, KA6, KA7, KA8 }, \ +} + +// This is the layout for one hotswap PCB and can also be used on the soldered edition +#define LAYOUT_ansi_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K68, K67, K65, K64, K63, K66, K62, K61, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K78, K70, K77, K75, K73, K76, K72, K71, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K88, K87, K85, K84, K83, K86, K82, K81, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K98, K97, K95, K93, \ + K40, K42, K43, K44, K45, K46, K47, K48, KA8, KA7, KA5, KA4, K92, \ + K50, K51, K52, K56, K57, K54, K53, KA6, KA2, KA1 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38 }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48 }, \ + { K50, K51, K52, K53, K54, KC_NO, K56, K57, KC_NO }, \ + { KC_NO, K61, K62, K63, K64, K65, K66, K67, K68 }, \ + { K70, K71, K72, K73, KC_NO, K75, K76, K77, K78 }, \ + { KC_NO, K81, K82, K83, K84, K85, K86, K87, K88 }, \ + { KC_NO, KC_NO, K92, K93, KC_NO, K95, KC_NO, K97, K98 }, \ + { KC_NO, KA1, KA2, KC_NO, KA4, KA5, KA6, KA7, KA8 }, \ +} diff --git a/keyboards/exclusive/e85/info.json b/keyboards/exclusive/e85/info.json new file mode 100644 index 000000000000..cc888a1576b1 --- /dev/null +++ b/keyboards/exclusive/e85/info.json @@ -0,0 +1,293 @@ +{ + "keyboard_name": "Exclusive E8.5 TKL", + "url": "", + "maintainer": "qmk", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT_all": { + "key_count": 91, + "layout": [ + {"label":"K00 (E6,D0)", "x":0, "y":0}, + {"label":"K01 (E6,D1)", "x":1.25, "y":0}, + {"label":"K02 (E6,D2)", "x":2.25, "y":0}, + {"label":"K03 (E6,D3)", "x":3.25, "y":0}, + {"label":"K04 (E6,D5)", "x":4.25, "y":0}, + {"label":"K05 (E6,D4)", "x":5.5, "y":0}, + {"label":"K06 (E6,D6)", "x":6.5, "y":0}, + {"label":"K07 (E6,D7)", "x":7.5, "y":0}, + {"label":"K08 (E6,B4)", "x":8.5, "y":0}, + {"label":"K68 (F7,B4)", "x":9.75, "y":0}, + {"label":"K67 (F7,D7)", "x":10.75, "y":0}, + {"label":"K65 (F7,D4)", "x":11.75, "y":0}, + {"label":"K64 (F7,D5)", "x":12.75, "y":0}, + {"label":"K63 (F7,D3)", "x":14, "y":0}, + {"label":"K66 (F7,D6)", "x":15.25, "y":0}, + {"label":"K62 (F7,D2)", "x":16.25, "y":0}, + {"label":"K61 (F7,D1)", "x":17.25, "y":0}, + {"label":"K10 (B0,D0)", "x":0, "y":1.5}, + {"label":"K11 (B0,D1)", "x":1, "y":1.5}, + {"label":"K12 (B0,D2)", "x":2, "y":1.5}, + {"label":"K13 (B0,D3)", "x":3, "y":1.5}, + {"label":"K14 (B0,D5)", "x":4, "y":1.5}, + {"label":"K15 (B0,D4)", "x":5, "y":1.5}, + {"label":"K16 (B0,D6)", "x":6, "y":1.5}, + {"label":"K17 (B0,D7)", "x":7, "y":1.5}, + {"label":"K18 (B0,B4)", "x":8, "y":1.5}, + {"label":"K78 (F6,B4)", "x":9, "y":1.5}, + {"label":"K70 (F6,D0)", "x":10, "y":1.5}, + {"label":"K77 (F6,D7)", "x":11, "y":1.5}, + {"label":"K75 (F6,D4)", "x":12, "y":1.5}, + {"label":"K74 (F6,D5)", "x":13, "y":1.5}, + {"label":"K73 (F6,D3)", "x":14, "y":1.5}, + {"label":"K76 (F6,D6)", "x":15.25, "y":1.5}, + {"label":"K72 (F6,D2)", "x":16.25, "y":1.5}, + {"label":"K71 (F6,D1)", "x":17.25, "y":1.5}, + {"label":"K20 (B1,D0)", "x":0, "y":2.5, "w":1.5}, + {"label":"K21 (B1,D1)", "x":1.5, "y":2.5}, + {"label":"K22 (B1,D2)", "x":2.5, "y":2.5}, + {"label":"K23 (B1,D3)", "x":3.5, "y":2.5}, + {"label":"K24 (B1,D5)", "x":4.5, "y":2.5}, + {"label":"K25 (B1,D4)", "x":5.5, "y":2.5}, + {"label":"K26 (B1,D6)", "x":6.5, "y":2.5}, + {"label":"K27 (B1,D7)", "x":7.5, "y":2.5}, + {"label":"K28 (B1,B4)", "x":8.5, "y":2.5}, + {"label":"K88 (F5,B4)", "x":9.5, "y":2.5}, + {"label":"K87 (F5,D7)", "x":10.5, "y":2.5}, + {"label":"K85 (F5,D4)", "x":11.5, "y":2.5}, + {"label":"K84 (F5,D5)", "x":12.5, "y":2.5}, + {"label":"K94 (F4,D5)", "x":13.5, "y":2.5, "w":1.5}, + {"label":"K86 (F5,D6)", "x":15.25, "y":2.5}, + {"label":"K82 (F5,D2)", "x":16.25, "y":2.5}, + {"label":"K81 (F5,D1)", "x":17.25, "y":2.5}, + {"label":"K30 (B2,D0)", "x":0, "y":3.5, "w":1.75}, + {"label":"K31 (B2,D1)", "x":1.75, "y":3.5}, + {"label":"K32 (B2,D2)", "x":2.75, "y":3.5}, + {"label":"K33 (B2,D3)", "x":3.75, "y":3.5}, + {"label":"K34 (B2,D5)", "x":4.75, "y":3.5}, + {"label":"K35 (B2,D4)", "x":5.75, "y":3.5}, + {"label":"K36 (B2,D6)", "x":6.75, "y":3.5}, + {"label":"K37 (B2,D7)", "x":7.75, "y":3.5}, + {"label":"K38 (B2,B4)", "x":8.75, "y":3.5}, + {"label":"K98 (F4,B4)", "x":9.75, "y":3.5}, + {"label":"K97 (F4,D7)", "x":10.75, "y":3.5}, + {"label":"K95 (F4,D4)", "x":11.75, "y":3.5}, + {"label":"K83 (F5,D3)", "x":12.75, "y":3.5, "w":2.25}, + {"label":"K40 (B3,D0)", "x":0, "y":4.5, "w":1.25}, + {"label":"K41 (B3,D1)", "x":1.25, "y":4.5}, + {"label":"K42 (B3,D2)", "x":2.25, "y":4.5}, + {"label":"K43 (B3,D3)", "x":3.25, "y":4.5}, + {"label":"K44 (B3,D5)", "x":4.25, "y":4.5}, + {"label":"K45 (B3,D4)", "x":5.25, "y":4.5}, + {"label":"K46 (B3,D6)", "x":6.25, "y":4.5}, + {"label":"K47 (B3,D7)", "x":7.25, "y":4.5}, + {"label":"K48 (B3,B4)", "x":8.25, "y":4.5}, + {"label":"KA8 (F1,B4)", "x":9.25, "y":4.5}, + {"label":"KA7 (F1,D7)", "x":10.25, "y":4.5}, + {"label":"KA5 (F1,D4)", "x":11.25, "y":4.5}, + {"label":"KA4 (F1,D5)", "x":12.25, "y":4.5, "w":1.75}, + {"label":"KA3 (F1,D3)", "x":14, "y":4.5}, + {"label":"K92 (F4,D2)", "x":16.25, "y":4.5}, + {"label":"K50 (B7,D0)", "x":0, "y":5.5, "w":1.25}, + {"label":"K51 (B7,D1)", "x":1.25, "y":5.5, "w":1.25}, + {"label":"K52 (B7,D2)", "x":2.5, "y":5.5, "w":1.25}, + {"label":"K56 (B7,D6)", "x":3.75, "y":5.5, "w":6.25}, + {"label":"K58 (B7,B4)", "x":10, "y":5.5, "w":1.25}, + {"label":"K57 (B7,D7)", "x":11.25, "y":5.5, "w":1.25}, + {"label":"K54 (B7,D5)", "x":12.5, "y":5.5, "w":1.25}, + {"label":"K53 (B7,D3)", "x":13.75, "y":5.5, "w":1.25}, + {"label":"KA6 (F1,D6)", "x":15.25, "y":5.5}, + {"label":"KA2 (F1,D2)", "x":16.25, "y":5.5}, + {"label":"KA1 (F1,D1)", "x":17.25, "y":5.5} + ] + }, + + "LAYOUT_ansi_standard": { + "key_count": 88, + "layout": [ + {"label":"K00 (E6,D0)", "x":0, "y":0}, + {"label":"K01 (E6,D1)", "x":1.25, "y":0}, + {"label":"K02 (E6,D2)", "x":2.25, "y":0}, + {"label":"K03 (E6,D3)", "x":3.25, "y":0}, + {"label":"K04 (E6,D5)", "x":4.25, "y":0}, + {"label":"K05 (E6,D4)", "x":5.5, "y":0}, + {"label":"K06 (E6,D6)", "x":6.5, "y":0}, + {"label":"K07 (E6,D7)", "x":7.5, "y":0}, + {"label":"K08 (E6,B4)", "x":8.5, "y":0}, + {"label":"K68 (F7,B4)", "x":9.75, "y":0}, + {"label":"K67 (F7,D7)", "x":10.75, "y":0}, + {"label":"K65 (F7,D4)", "x":11.75, "y":0}, + {"label":"K64 (F7,D5)", "x":12.75, "y":0}, + {"label":"K63 (F7,D3)", "x":14, "y":0}, + {"label":"K66 (F7,D6)", "x":15.25, "y":0}, + {"label":"K62 (F7,D2)", "x":16.25, "y":0}, + {"label":"K61 (F7,D1)", "x":17.25, "y":0}, + {"label":"K10 (B0,D0)", "x":0, "y":1.5}, + {"label":"K11 (B0,D1)", "x":1, "y":1.5}, + {"label":"K12 (B0,D2)", "x":2, "y":1.5}, + {"label":"K13 (B0,D3)", "x":3, "y":1.5}, + {"label":"K14 (B0,D5)", "x":4, "y":1.5}, + {"label":"K15 (B0,D4)", "x":5, "y":1.5}, + {"label":"K16 (B0,D6)", "x":6, "y":1.5}, + {"label":"K17 (B0,D7)", "x":7, "y":1.5}, + {"label":"K18 (B0,B4)", "x":8, "y":1.5}, + {"label":"K78 (F6,B4)", "x":9, "y":1.5}, + {"label":"K70 (F6,D0)", "x":10, "y":1.5}, + {"label":"K77 (F6,D7)", "x":11, "y":1.5}, + {"label":"K75 (F6,D4)", "x":12, "y":1.5}, + {"label":"K73 (F6,D3)", "x":13, "y":1.5, "w":2}, + {"label":"K76 (F6,D6)", "x":15.25, "y":1.5}, + {"label":"K72 (F6,D2)", "x":16.25, "y":1.5}, + {"label":"K71 (F6,D1)", "x":17.25, "y":1.5}, + {"label":"K20 (B1,D0)", "x":0, "y":2.5, "w":1.5}, + {"label":"K21 (B1,D1)", "x":1.5, "y":2.5}, + {"label":"K22 (B1,D2)", "x":2.5, "y":2.5}, + {"label":"K23 (B1,D3)", "x":3.5, "y":2.5}, + {"label":"K24 (B1,D5)", "x":4.5, "y":2.5}, + {"label":"K25 (B1,D4)", "x":5.5, "y":2.5}, + {"label":"K26 (B1,D6)", "x":6.5, "y":2.5}, + {"label":"K27 (B1,D7)", "x":7.5, "y":2.5}, + {"label":"K28 (B1,B4)", "x":8.5, "y":2.5}, + {"label":"K88 (F5,B4)", "x":9.5, "y":2.5}, + {"label":"K87 (F5,D7)", "x":10.5, "y":2.5}, + {"label":"K85 (F5,D4)", "x":11.5, "y":2.5}, + {"label":"K84 (F5,D5)", "x":12.5, "y":2.5}, + {"label":"K83 (F5,D3)", "x":13.5, "y":2.5, "w":1.5}, + {"label":"K86 (F5,D6)", "x":15.25, "y":2.5}, + {"label":"K82 (F5,D2)", "x":16.25, "y":2.5}, + {"label":"K81 (F5,D1)", "x":17.25, "y":2.5}, + {"label":"K30 (B2,D0)", "x":0, "y":3.5, "w":1.75}, + {"label":"K31 (B2,D1)", "x":1.75, "y":3.5}, + {"label":"K32 (B2,D2)", "x":2.75, "y":3.5}, + {"label":"K33 (B2,D3)", "x":3.75, "y":3.5}, + {"label":"K34 (B2,D5)", "x":4.75, "y":3.5}, + {"label":"K35 (B2,D4)", "x":5.75, "y":3.5}, + {"label":"K36 (B2,D6)", "x":6.75, "y":3.5}, + {"label":"K37 (B2,D7)", "x":7.75, "y":3.5}, + {"label":"K38 (B2,B4)", "x":8.75, "y":3.5}, + {"label":"K98 (F4,B4)", "x":9.75, "y":3.5}, + {"label":"K97 (F4,D7)", "x":10.75, "y":3.5}, + {"label":"K95 (F4,D4)", "x":11.75, "y":3.5}, + {"label":"K93 (F4,D3)", "x":12.75, "y":3.5, "w":2.25}, + {"label":"K40 (B3,D0)", "x":0, "y":4.5, "w":2.25}, + {"label":"K42 (B3,D2)", "x":2.25, "y":4.5}, + {"label":"K43 (B3,D3)", "x":3.25, "y":4.5}, + {"label":"K44 (B3,D5)", "x":4.25, "y":4.5}, + {"label":"K45 (B3,D4)", "x":5.25, "y":4.5}, + {"label":"K46 (B3,D6)", "x":6.25, "y":4.5}, + {"label":"K47 (B3,D7)", "x":7.25, "y":4.5}, + {"label":"K48 (B3,B4)", "x":8.25, "y":4.5}, + {"label":"KA8 (F1,B4)", "x":9.25, "y":4.5}, + {"label":"KA7 (F1,D7)", "x":10.25, "y":4.5}, + {"label":"KA5 (F1,D4)", "x":11.25, "y":4.5}, + {"label":"KA4 (F1,D5)", "x":12.25, "y":4.5, "w":2.75}, + {"label":"K92 (F4,D2)", "x":16.25, "y":4.5}, + {"label":"K50 (B7,D0)", "x":0, "y":5.5, "w":1.25}, + {"label":"K51 (B7,D1)", "x":1.25, "y":5.5, "w":1.25}, + {"label":"K52 (B7,D2)", "x":2.5, "y":5.5, "w":1.25}, + {"label":"K56 (B7,D6)", "x":3.75, "y":5.5, "w":6.25}, + {"label":"K58 (B7,B4)", "x":10, "y":5.5, "w":1.25}, + {"label":"K57 (B7,D7)", "x":11.25, "y":5.5, "w":1.25}, + {"label":"K54 (B7,D5)", "x":12.5, "y":5.5, "w":1.25}, + {"label":"K53 (B7,D3)", "x":13.75, "y":5.5, "w":1.25}, + {"label":"KA6 (F1,D6)", "x":15.25, "y":5.5}, + {"label":"KA2 (F1,D2)", "x":16.25, "y":5.5}, + {"label":"KA1 (F1,D1)", "x":17.25, "y":5.5} + ] + }, + + "LAYOUT_ansi_tsangan": { + "key_count": 87, + "layout": [ + {"label":"K00 (E6,D0)", "x":0, "y":0}, + {"label":"K01 (E6,D1)", "x":1.25, "y":0}, + {"label":"K02 (E6,D2)", "x":2.25, "y":0}, + {"label":"K03 (E6,D3)", "x":3.25, "y":0}, + {"label":"K04 (E6,D5)", "x":4.25, "y":0}, + {"label":"K05 (E6,D4)", "x":5.5, "y":0}, + {"label":"K06 (E6,D6)", "x":6.5, "y":0}, + {"label":"K07 (E6,D7)", "x":7.5, "y":0}, + {"label":"K08 (E6,B4)", "x":8.5, "y":0}, + {"label":"K68 (F7,B4)", "x":9.75, "y":0}, + {"label":"K67 (F7,D7)", "x":10.75, "y":0}, + {"label":"K65 (F7,D4)", "x":11.75, "y":0}, + {"label":"K64 (F7,D5)", "x":12.75, "y":0}, + {"label":"K63 (F7,D3)", "x":14, "y":0}, + {"label":"K66 (F7,D6)", "x":15.25, "y":0}, + {"label":"K62 (F7,D2)", "x":16.25, "y":0}, + {"label":"K61 (F7,D1)", "x":17.25, "y":0}, + {"label":"K10 (B0,D0)", "x":0, "y":1.5}, + {"label":"K11 (B0,D1)", "x":1, "y":1.5}, + {"label":"K12 (B0,D2)", "x":2, "y":1.5}, + {"label":"K13 (B0,D3)", "x":3, "y":1.5}, + {"label":"K14 (B0,D5)", "x":4, "y":1.5}, + {"label":"K15 (B0,D4)", "x":5, "y":1.5}, + {"label":"K16 (B0,D6)", "x":6, "y":1.5}, + {"label":"K17 (B0,D7)", "x":7, "y":1.5}, + {"label":"K18 (B0,B4)", "x":8, "y":1.5}, + {"label":"K78 (F6,B4)", "x":9, "y":1.5}, + {"label":"K70 (F6,D0)", "x":10, "y":1.5}, + {"label":"K77 (F6,D7)", "x":11, "y":1.5}, + {"label":"K75 (F6,D4)", "x":12, "y":1.5}, + {"label":"K73 (F6,D3)", "x":13, "y":1.5, "w":2}, + {"label":"K76 (F6,D6)", "x":15.25, "y":1.5}, + {"label":"K72 (F6,D2)", "x":16.25, "y":1.5}, + {"label":"K71 (F6,D1)", "x":17.25, "y":1.5}, + {"label":"K20 (B1,D0)", "x":0, "y":2.5, "w":1.5}, + {"label":"K21 (B1,D1)", "x":1.5, "y":2.5}, + {"label":"K22 (B1,D2)", "x":2.5, "y":2.5}, + {"label":"K23 (B1,D3)", "x":3.5, "y":2.5}, + {"label":"K24 (B1,D5)", "x":4.5, "y":2.5}, + {"label":"K25 (B1,D4)", "x":5.5, "y":2.5}, + {"label":"K26 (B1,D6)", "x":6.5, "y":2.5}, + {"label":"K27 (B1,D7)", "x":7.5, "y":2.5}, + {"label":"K28 (B1,B4)", "x":8.5, "y":2.5}, + {"label":"K88 (F5,B4)", "x":9.5, "y":2.5}, + {"label":"K87 (F5,D7)", "x":10.5, "y":2.5}, + {"label":"K85 (F5,D4)", "x":11.5, "y":2.5}, + {"label":"K84 (F5,D5)", "x":12.5, "y":2.5}, + {"label":"K83 (F5,D3)", "x":13.5, "y":2.5, "w":1.5}, + {"label":"K86 (F5,D6)", "x":15.25, "y":2.5}, + {"label":"K82 (F5,D2)", "x":16.25, "y":2.5}, + {"label":"K81 (F5,D1)", "x":17.25, "y":2.5}, + {"label":"K30 (B2,D0)", "x":0, "y":3.5, "w":1.75}, + {"label":"K31 (B2,D1)", "x":1.75, "y":3.5}, + {"label":"K32 (B2,D2)", "x":2.75, "y":3.5}, + {"label":"K33 (B2,D3)", "x":3.75, "y":3.5}, + {"label":"K34 (B2,D5)", "x":4.75, "y":3.5}, + {"label":"K35 (B2,D4)", "x":5.75, "y":3.5}, + {"label":"K36 (B2,D6)", "x":6.75, "y":3.5}, + {"label":"K37 (B2,D7)", "x":7.75, "y":3.5}, + {"label":"K38 (B2,B4)", "x":8.75, "y":3.5}, + {"label":"K98 (F4,B4)", "x":9.75, "y":3.5}, + {"label":"K97 (F4,D7)", "x":10.75, "y":3.5}, + {"label":"K95 (F4,D4)", "x":11.75, "y":3.5}, + {"label":"K93 (F4,D3)", "x":12.75, "y":3.5, "w":2.25}, + {"label":"K40 (B3,D0)", "x":0, "y":4.5, "w":2.25}, + {"label":"K42 (B3,D2)", "x":2.25, "y":4.5}, + {"label":"K43 (B3,D3)", "x":3.25, "y":4.5}, + {"label":"K44 (B3,D5)", "x":4.25, "y":4.5}, + {"label":"K45 (B3,D4)", "x":5.25, "y":4.5}, + {"label":"K46 (B3,D6)", "x":6.25, "y":4.5}, + {"label":"K47 (B3,D7)", "x":7.25, "y":4.5}, + {"label":"K48 (B3,B4)", "x":8.25, "y":4.5}, + {"label":"KA8 (F1,B4)", "x":9.25, "y":4.5}, + {"label":"KA7 (F1,D7)", "x":10.25, "y":4.5}, + {"label":"KA5 (F1,D4)", "x":11.25, "y":4.5}, + {"label":"KA4 (F1,D5)", "x":12.25, "y":4.5, "w":2.75}, + {"label":"K92 (F4,D2)", "x":16.25, "y":4.5}, + {"label":"K50 (B7,D0)", "x":0, "y":5.5, "w":1.5}, + {"label":"K51 (B7,D1)", "x":1.5, "y":5.5}, + {"label":"K52 (B7,D2)", "x":2.5, "y":5.5, "w":1.5}, + {"label":"K56 (B7,D6)", "x":4, "y":5.5, "w":7}, + {"label":"K57 (B7,D7)", "x":11, "y":5.5, "w":1.5}, + {"label":"K54 (B7,D5)", "x":12.5, "y":5.5}, + {"label":"K53 (B7,D3)", "x":13.5, "y":5.5, "w":1.5}, + {"label":"KA6 (F1,D6)", "x":15.25, "y":5.5}, + {"label":"KA2 (F1,D2)", "x":16.25, "y":5.5}, + {"label":"KA1 (F1,D1)", "x":17.25, "y":5.5} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/exclusive/e85/keymaps/default/keymap.c b/keyboards/exclusive/e85/keymaps/default/keymap.c new file mode 100644 index 000000000000..80f8e0eeb4b4 --- /dev/null +++ b/keyboards/exclusive/e85/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2020 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_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, MO(1), KC_PSCR, KC_SLCK, 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_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_MOD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/exclusive/e85/keymaps/standard/keymap.c b/keyboards/exclusive/e85/keymaps/standard/keymap.c new file mode 100644 index 000000000000..c6778180be1a --- /dev/null +++ b/keyboards/exclusive/e85/keymaps/standard/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2020 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_ansi_standard( + 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(1), KC_PSCR, KC_SLCK, 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_APP, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ansi_standard( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_MOD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/exclusive/e85/keymaps/tsangan/keymap.c b/keyboards/exclusive/e85/keymaps/tsangan/keymap.c new file mode 100644 index 000000000000..80f8e0eeb4b4 --- /dev/null +++ b/keyboards/exclusive/e85/keymaps/tsangan/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2020 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_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, MO(1), KC_PSCR, KC_SLCK, 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_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_MOD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/exclusive/e85/keymaps/via/config.h b/keyboards/exclusive/e85/keymaps/via/config.h new file mode 100644 index 000000000000..78f3f6a69656 --- /dev/null +++ b/keyboards/exclusive/e85/keymaps/via/config.h @@ -0,0 +1 @@ + #define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file diff --git a/keyboards/exclusive/e85/keymaps/via/keymap.c b/keyboards/exclusive/e85/keymaps/via/keymap.c new file mode 100644 index 000000000000..c55c35ce192f --- /dev/null +++ b/keyboards/exclusive/e85/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2020 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_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, MO(1), KC_PSCR, KC_SLCK, 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_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_MOD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/exclusive/e85/keymaps/via/rules.mk b/keyboards/exclusive/e85/keymaps/via/rules.mk new file mode 100644 index 000000000000..29a6f75191f0 --- /dev/null +++ b/keyboards/exclusive/e85/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration \ No newline at end of file diff --git a/keyboards/exclusive/e85/readme.md b/keyboards/exclusive/e85/readme.md new file mode 100644 index 000000000000..fe5af17de8d6 --- /dev/null +++ b/keyboards/exclusive/e85/readme.md @@ -0,0 +1,17 @@ +# Exclusive E8.5 Hotswap + +Custom hotswap PCB for Exclusive E8.5. + +The switch matrix is identical between all three PCB variants of this board. Choose the correct LAYOUT that best matches the physical LAYOUT of your PCB. + +* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +* Hardware Supported: E8.5 Hotswap/Soldered, atmega32u4 +* Hardware Availability: [Geekhack GB](https://geekhack.org/index.php?topic=103520) + +Make example for this keyboard (after setting up your build environment): + + make exclusive/e85:default + +**Reset Key**: The board can be reset by shorting the two holes underneath the PCB, or pressing the reset button on the reverse side. + +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/exclusive/e85/rules.mk b/keyboards/exclusive/e85/rules.mk new file mode 100644 index 000000000000..e9c1ed8f1f89 --- /dev/null +++ b/keyboards/exclusive/e85/rules.mk @@ -0,0 +1,32 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +LTO_ENABLE = yes diff --git a/keyboards/exclusive/readme.md b/keyboards/exclusive/readme.md index 486e07d99b27..bee613bf4509 100644 --- a/keyboards/exclusive/readme.md +++ b/keyboards/exclusive/readme.md @@ -8,3 +8,4 @@ All files related to firmware of keyboards designed by Exclusive. * [e6-v2](./e6v2/): maintainers [MechMerlin](https://github.com/mechmerlin), [amnesia0287](https://github.com/amnesia0287) * [e7-v1](./e7v1): maintainer [masterzen](https://github.com/masterzen) * [e6.5](./e65): maintainer [masterzen](https://github.com/masterzen) +* [e8.5](./e85): maintainer [MechMerlin](https://github.com/mechmerlin) From 69b484600f672ef9b1368c121512d579f9b7fc98 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 21 Jun 2020 06:51:50 +1000 Subject: [PATCH 030/154] Remove more useless code (#9475) --- keyboards/absinthe/rules.mk | 12 ------------ keyboards/hhkb/ansi/config.h | 5 ----- keyboards/hhkb/jp/config.h | 5 ----- keyboards/kingly_keys/smd_milk/2_milk.c | 16 --------------- keyboards/kingly_keys/smd_milk/2_milk.h | 26 ------------------------- 5 files changed, 64 deletions(-) delete mode 100644 keyboards/kingly_keys/smd_milk/2_milk.c delete mode 100644 keyboards/kingly_keys/smd_milk/2_milk.h diff --git a/keyboards/absinthe/rules.mk b/keyboards/absinthe/rules.mk index f0b8037c912c..8f534909dfd5 100644 --- a/keyboards/absinthe/rules.mk +++ b/keyboards/absinthe/rules.mk @@ -11,16 +11,6 @@ MCU = atmega32u4 # ATmega328P USBasp BOOTLOADER = atmel-dfu -# If you don't know the bootloader type, then you can specify the -# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line -# Otherwise, delete this section -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -# OPT_DEFS += -DBOOTLOADER_SIZE=4096 - # Build Options # change yes to no to disable # @@ -39,7 +29,5 @@ MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -HD44780_ENABLE = no # Enable support for HD44780 based LCDs ENCODER_ENABLE = yes RGBLIGHT_ENABLE = yes -# EXTRAFLAGS += -flto diff --git a/keyboards/hhkb/ansi/config.h b/keyboards/hhkb/ansi/config.h index 689fd556819d..53d958cc176b 100644 --- a/keyboards/hhkb/ansi/config.h +++ b/keyboards/hhkb/ansi/config.h @@ -54,11 +54,6 @@ along with this program. If not, see . #define SUART_IN_BIT 1 #ifdef __AVR_ATmega32U4__ - /* iom32u4.h has no definition of UCSR1D. copy from iom32u2.h */ - #define UCSR1D _SFR_MEM8(0xCB) - #define RTSEN 0 - #define CTSEN 1 - #define SERIAL_UART_BAUD 115200 #define SERIAL_UART_DATA UDR1 #define SERIAL_UART_UBRR ((F_CPU/(16.0*SERIAL_UART_BAUD)-1+0.5)) diff --git a/keyboards/hhkb/jp/config.h b/keyboards/hhkb/jp/config.h index 01dab6d440cd..9f6819b86e9e 100644 --- a/keyboards/hhkb/jp/config.h +++ b/keyboards/hhkb/jp/config.h @@ -54,11 +54,6 @@ along with this program. If not, see . #define SUART_IN_BIT 1 #ifdef __AVR_ATmega32U4__ - /* iom32u4.h has no definition of UCSR1D. copy from iom32u2.h */ - #define UCSR1D _SFR_MEM8(0xCB) - #define RTSEN 0 - #define CTSEN 1 - #define SERIAL_UART_BAUD 115200 #define SERIAL_UART_DATA UDR1 #define SERIAL_UART_UBRR ((F_CPU/(16.0*SERIAL_UART_BAUD)-1+0.5)) diff --git a/keyboards/kingly_keys/smd_milk/2_milk.c b/keyboards/kingly_keys/smd_milk/2_milk.c deleted file mode 100644 index 95fa50e02979..000000000000 --- a/keyboards/kingly_keys/smd_milk/2_milk.c +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright 2019 Sebastian 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 . - */ -#include "smd_milk.h" diff --git a/keyboards/kingly_keys/smd_milk/2_milk.h b/keyboards/kingly_keys/smd_milk/2_milk.h deleted file mode 100644 index 8f294817f912..000000000000 --- a/keyboards/kingly_keys/smd_milk/2_milk.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2019 Sebastian 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 - -#include "quantum.h" - -#define LAYOUT( \ - K00, \ - K01 \ -) { \ - { K00 }, \ - { K01 } \ -} From 02781979d6af096e8adb6bb02af7639b73c8f267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20=C4=90or=C4=91evi=C4=87?= Date: Sat, 20 Jun 2020 22:58:48 +0200 Subject: [PATCH 031/154] [Docs] Improve Unicode documentation (#8676) --- docs/feature_macros.md | 89 +++++++++++----------- docs/feature_unicode.md | 159 +++++++++++++++++++++++----------------- 2 files changed, 137 insertions(+), 111 deletions(-) diff --git a/docs/feature_macros.md b/docs/feature_macros.md index 1c7705a51609..acd40d1bf349 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -6,34 +6,34 @@ Macros allow you to send multiple keystrokes when pressing just one key. QMK has ## The New Way: `SEND_STRING()` & `process_record_user` -Sometimes you just want a key to type out words or phrases. For the most common situations we've provided `SEND_STRING()`, which will type out your string (i.e. a sequence of characters) for you. All ASCII characters that are easily translated to a keycode are supported (e.g. `\n\t`). +Sometimes you want a key to type out words or phrases. For the most common situations, we've provided `SEND_STRING()`, which will type out a string (i.e. a sequence of characters) for you. All ASCII characters that are easily translatable to a keycode are supported (e.g. `qmk 123\n\t`). Here is an example `keymap.c` for a two-key keyboard: ```c enum custom_keycodes { - QMKBEST = SAFE_RANGE, + QMKBEST = SAFE_RANGE, }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { + switch (keycode) { case QMKBEST: - if (record->event.pressed) { - // when keycode QMKBEST is pressed - SEND_STRING("QMK is the best thing ever!"); - } else { - // when keycode QMKBEST is released - } - break; - - } - return true; + if (record->event.pressed) { + // when keycode QMKBEST is pressed + SEND_STRING("QMK is the best thing ever!"); + } else { + // when keycode QMKBEST is released + } + break; + } + return true; }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { - {QMKBEST, KC_ESC} - } + [0] = { + {QMKBEST, KC_ESC}, + // ... + }, }; ``` @@ -49,42 +49,45 @@ You can do that by adding another keycode and adding another case to the switch ```c enum custom_keycodes { - QMKBEST = SAFE_RANGE, - QMKURL, - MY_OTHER_MACRO + QMKBEST = SAFE_RANGE, + QMKURL, + MY_OTHER_MACRO, }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { + switch (keycode) { case QMKBEST: - if (record->event.pressed) { - // when keycode QMKBEST is pressed - SEND_STRING("QMK is the best thing ever!"); - } else { - // when keycode QMKBEST is released - } - break; + if (record->event.pressed) { + // when keycode QMKBEST is pressed + SEND_STRING("QMK is the best thing ever!"); + } else { + // when keycode QMKBEST is released + } + break; + case QMKURL: - if (record->event.pressed) { - // when keycode QMKURL is pressed - SEND_STRING("https://qmk.fm/\n"); - } else { - // when keycode QMKURL is released - } - break; + if (record->event.pressed) { + // when keycode QMKURL is pressed + SEND_STRING("https://qmk.fm/\n"); + } else { + // when keycode QMKURL is released + } + break; + case MY_OTHER_MACRO: - if (record->event.pressed) { - SEND_STRING(SS_LCTL("ac")); // selects all and copies - } - break; - } - return true; + if (record->event.pressed) { + SEND_STRING(SS_LCTL("ac")); // selects all and copies + } + break; + } + return true; }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { - {MY_CUSTOM_MACRO, MY_OTHER_MACRO} - } + [0] = { + {MY_CUSTOM_MACRO, MY_OTHER_MACRO}, + // ... + }, }; ``` diff --git a/docs/feature_unicode.md b/docs/feature_unicode.md index aedffe4ea253..02a7bea5dabe 100644 --- a/docs/feature_unicode.md +++ b/docs/feature_unicode.md @@ -2,11 +2,25 @@ Unicode characters can be input straight from your keyboard! There are some limitations, however. -QMK has three different methods for enabling Unicode input and defining keycodes: +In order to enable Unicode support on your keyboard, you will need to do the following: -## Basic Unicode +1. Choose one of three supported Unicode implementations: [Basic Unicode](#basic-unicode), [Unicode Map](#unicode-map), [UCIS](#ucis). +2. Find which [input mode](#input-modes) is the best match for your operating system and setup. +3. [Set](#setting-the-input-mode) the appropriate input mode (or modes) in your configuration. +4. Add Unicode keycodes to your keymap. -This method supports Unicode code points up to `0x7FFF`. This covers characters for most modern languages, as well as symbols, but it doesn't cover emoji. + +## 1. Methods :id=methods + +QMK supports three different methods for enabling Unicode input and adding Unicode characters to your keymap. Each has its pros and cons in terms of flexibility and ease of use. Choose the one that best fits your use case. + +The Basic method should be enough for most users. However, if you need a wider range of supported characters (including emoji, rare symbols etc.), you should use Unicode Map. + +
+ +### 1.1. Basic Unicode :id=basic-unicode + +The easiest to use method, albeit somewhat limited. It stores Unicode characters as keycodes in the keymap itself, so it only supports code points up to `0x7FFF`. This covers characters for most modern languages (including East Asian), as well as symbols, but it doesn't cover emoji. Add the following to your `rules.mk`: @@ -14,11 +28,13 @@ Add the following to your `rules.mk`: UNICODE_ENABLE = yes ``` -Then add `UC(c)` keycodes to your keymap, where _c_ is the code point (preferably in hexadecimal, up to 4 digits long). For example: `UC(0x45B)`, `UC(0x30C4)`. +Then add `UC(c)` keycodes to your keymap, where _c_ is the code point of the desired character (preferably in hexadecimal, up to 4 digits long). For example, `UC(0x40B)` will output [Ћ](https://unicode-table.com/en/040B/), and `UC(0x30C4)` will output [ツ](https://unicode-table.com/en/30C4). -## Unicode Map +
-This method supports all possible code points (up to `0x10FFFF`); however, you need to maintain a separate mapping table in your keymap file, which may contain at most 16384 entries. +### 1.2. Unicode Map :id=unicode-map + +In addition to standard character ranges, this method also covers emoji, ancient scripts, rare symbols etc. In fact, all possible code points (up to `0x10FFFF`) are supported. Here, Unicode characters are stored in a separate mapping table. You need to maintain a `unicode_map` array in your keymap file, which may contain at most 16384 entries. Add the following to your `rules.mk`: @@ -26,7 +42,7 @@ Add the following to your `rules.mk`: UNICODEMAP_ENABLE = yes ``` -Then add `X(i)` keycodes to your keymap, where _i_ is an array index into the mapping table: +Then add `X(i)` keycodes to your keymap, where _i_ is the desired character's index in the mapping table. This can be a numeric value, but it's recommended to keep the indices in an enum and access them by name. ```c enum unicode_names { @@ -44,15 +60,17 @@ const uint32_t PROGMEM unicode_map[] = { Then you can use `X(BANG)`, `X(SNEK)` etc. in your keymap. -### Lower and Upper Case +#### Lower and Upper Case Characters often come in lower and upper case pairs, such as å and Å. To make inputting these characters easier, you can use `XP(i, j)` in your keymap, where _i_ and _j_ are the mapping table indices of the lower and upper case character, respectively. If you're holding down Shift or have Caps Lock turned on when you press the key, the second (upper case) character will be inserted; otherwise, the first (lower case) version will appear. This is most useful when creating a keymap for an international layout with special characters. Instead of having to put the lower and upper case versions of a character on separate keys, you can have them both on the same key by using `XP()`. This helps blend Unicode keys in with regular alphas. -Due to keycode size constraints, _i_ and _j_ can each only refer to one of the first 128 characters in your `unicode_map`. In other words, 0 ≤ _i_ ≤ 127 and 0 ≤ _j_ ≤ 127. This is enough for most use cases, but if you'd like to customize the index calculation, you can override the [`unicodemap_index()`](https://github.com/qmk/qmk_firmware/blob/71f640d47ee12c862c798e1f56392853c7b1c1a8/quantum/process_keycode/process_unicodemap.c#L40) function. This also allows you to, say, check Ctrl instead of Shift/Caps. +Due to keycode size constraints, _i_ and _j_ can each only refer to one of the first 128 characters in your `unicode_map`. In other words, 0 ≤ _i_ ≤ 127 and 0 ≤ _j_ ≤ 127. This is enough for most use cases, but if you'd like to customize the index calculation, you can override the [`unicodemap_index()`](https://github.com/qmk/qmk_firmware/blob/71f640d47ee12c862c798e1f56392853c7b1c1a8/quantum/process_keycode/process_unicodemap.c#L36) function. This also allows you to, say, check Ctrl instead of Shift/Caps. + +
-## UCIS +### 1.3. UCIS :id=ucis This method also supports all possible code points. As with the Unicode Map method, you need to maintain a mapping table in your keymap file. However, there are no built-in keycodes for this feature — you have to create a custom keycode or function that invokes this functionality. @@ -77,7 +95,7 @@ By default, each table entry may be up to 3 code points long. This number can be To use UCIS input, call `qk_ucis_start()`. Then, type the mnemonic for the character (such as "rofl") and hit Space, Enter or Esc. QMK should erase the "rofl" text and insert the laughing emoji. -### Customization +#### Customization There are several functions that you can define in your keymap to customize the functionality of this feature. @@ -87,7 +105,8 @@ There are several functions that you can define in your keymap to customize the You can find the default implementations of these functions in [`process_ucis.c`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_ucis.c). -## Input Modes + +## 2. Input Modes :id=input-modes Unicode input in QMK works by inputting a sequence of characters to the OS, sort of like a macro. Unfortunately, the way this is done differs for each platform. Specifically, each platform requires a different combination of keys to trigger Unicode input. Therefore, a corresponding input mode has to be set in QMK. @@ -96,54 +115,67 @@ The following input modes are available: * **`UC_MAC`**: macOS built-in Unicode hex input. Supports code points up to `0x10FFFF` (all possible code points). To enable, go to _System Preferences > Keyboard > Input Sources_, add _Unicode Hex Input_ to the list (it's under _Other_), then activate it from the input dropdown in the Menu Bar. - By default, this mode uses the left Option key (`KC_LALT`) for Unicode input, but this can be changed by defining [`UNICODE_KEY_MAC`](#input-key-configuration) with another keycode. + By default, this mode uses the left Option key (`KC_LALT`) for Unicode input, but this can be changed by defining [`UNICODE_KEY_MAC`](#input-key-configuration) with a different keycode. - !> Using the _Unicode Hex Input_ input source may disable some Option based shortcuts, such as Option + Left Arrow and Option + Right Arrow. + !> Using the _Unicode Hex Input_ input source may disable some Option-based shortcuts, such as Option+Left and Option+Right. - !> `UC_OSX` is a deprecated alias of `UC_MAC` that will be removed in a future version of QMK. + !> `UC_OSX` is a deprecated alias of `UC_MAC` that will be removed in future versions of QMK. All new keymaps should use `UC_MAC`. * **`UC_LNX`**: Linux built-in IBus Unicode input. Supports code points up to `0x10FFFF` (all possible code points). Enabled by default and works almost anywhere on IBus-enabled distros. Without IBus, this mode works under GTK apps, but rarely anywhere else. - By default, this mode uses Ctrl+Shift+U (`LCTL(LSFT(KC_U))`) to start Unicode input, but this can be changed by defining [`UNICODE_KEY_LNX`](#input-key-configuration) with another keycode. This might be required for IBus versions ≥1.5.15, where Ctrl+Shift+U behavior is consolidated into Ctrl+Shift+E. + By default, this mode uses Ctrl+Shift+U (`LCTL(LSFT(KC_U))`) to start Unicode input, but this can be changed by defining [`UNICODE_KEY_LNX`](#input-key-configuration) with a different keycode. This might be required for IBus versions ≥1.5.15, where Ctrl+Shift+U behavior is consolidated into Ctrl+Shift+E. * **`UC_WIN`**: _(not recommended)_ Windows built-in hex numpad Unicode input. Supports code points up to `0xFFFF`. - To enable, create a registry key under `HKEY_CURRENT_USER\Control Panel\Input Method\EnableHexNumpad` of type `REG_SZ` called `EnableHexNumpad` and set its value to `1`. This can be done from the Command Prompt by running `reg add "HKCU\Control Panel\Input Method" -v EnableHexNumpad -t REG_SZ -d 1` with administrator privileges. Reboot afterwards. + To enable, create a registry key under `HKEY_CURRENT_USER\Control Panel\Input Method` of type `REG_SZ` called `EnableHexNumpad` and set its value to `1`. This can be done from the Command Prompt by running `reg add "HKCU\Control Panel\Input Method" -v EnableHexNumpad -t REG_SZ -d 1` with administrator privileges. Reboot afterwards. This mode is not recommended because of reliability and compatibility issues; use the `UC_WINC` mode instead. * **`UC_BSD`**: _(non implemented)_ Unicode input under BSD. Not implemented at this time. If you're a BSD user and want to help add support for it, please [open an issue on GitHub](https://github.com/qmk/qmk_firmware/issues). * **`UC_WINC`**: Windows Unicode input using [WinCompose](https://github.com/samhocevar/wincompose). As of v0.9.0, supports code points up to `0x10FFFF` (all possible code points). - To enable, install the [latest release](https://github.com/samhocevar/wincompose/releases/latest). Once installed, WinCompose will automatically run on startup. Works reliably under all version of Windows supported by the app. - By default, this mode uses right Alt (`KC_RALT`) as the Compose key, but this can be changed in the WinCompose settings and by defining [`UNICODE_KEY_WINC`](#input-key-configuration) with another keycode. + To enable, install the [latest release](https://github.com/samhocevar/wincompose/releases/latest). Once installed, WinCompose will automatically run on startup. This mode works reliably under all version of Windows supported by the app. + By default, this mode uses right Alt (`KC_RALT`) as the Compose key, but this can be changed in the WinCompose settings and by defining [`UNICODE_KEY_WINC`](#input-key-configuration) with a different keycode. + -### Switching Input Modes +## 3. Setting the Input Mode :id=setting-the-input-mode -There are two ways to set the input mode for Unicode: by keycode or by function. Keep in mind that both methods write to persistent storage (EEPROM), and are loaded each time the keyboard starts. So once you've set it the first time, you don't need to set it again unless you want to change it, or you've reset the EEPROM settings. +To set your desired input mode, add the following define to your `config.h`: -You can switch the input mode at any time by using one of the following keycodes. The easiest way is to add the ones you use to your keymap. +```c +#define UNICODE_SELECTED_MODES UC_LNX +``` -|Keycode |Alias |Input Mode |Description | -|----------------------|---------|------------|--------------------------------------------------------------| -|`UNICODE_MODE_FORWARD`|`UC_MOD` |Next in list|[Cycle](#input-mode-cycling) through selected modes | -|`UNICODE_MODE_REVERSE`|`UC_RMOD`|Prev in list|[Cycle](#input-mode-cycling) through selected modes in reverse| -|`UNICODE_MODE_MAC` |`UC_M_MA`|`UC_MAC` |Switch to macOS input | -|`UNICODE_MODE_LNX` |`UC_M_LN`|`UC_LNX` |Switch to Linux input | -|`UNICODE_MODE_WIN` |`UC_M_WI`|`UC_WIN` |Switch to Windows input | -|`UNICODE_MODE_BSD` |`UC_M_BS`|`UC_BSD` |Switch to BSD input (not implemented) | -|`UNICODE_MODE_WINC` |`UC_M_WC`|`UC_WINC` |Switch to Windows input using WinCompose | +This example sets the board's default input mode to `UC_LNX`. You can replace this with `UC_MAC`, `UC_WINC`, or any of the other modes listed [above](#input-modes). The board will automatically use the selected mode on startup, unless you manually switch to another mode (see [below](#keycodes)). -You can also switch the input mode by calling `set_unicode_input_mode(x)` in your code, where _x_ is one of the above input mode constants (e.g. `UC_LNX`). Since the function only needs to be called once, it's recommended that you do it in `eeconfig_init_user()` (or a similar function). For example: +You can also select multiple input modes, which allows you to easily cycle through them using the `UC_MOD`/`UC_RMOD` keycodes. ```c -void eeconfig_init_user(void) { - set_unicode_input_mode(UC_LNX); -} +#define UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WINC ``` -### Audio Feedback +Note that the values are separated by commas. The board will remember the last used input mode and will continue using it on next power-up. You can disable this and force it to always start with the first mode in the list by adding `#define UNICODE_CYCLE_PERSIST false` to your `config.h`. + +#### Keycodes + +You can switch the input mode at any time by using the following keycodes. Adding these to your keymap allows you to quickly switch to a specific input mode, including modes not listed in `UNICODE_SELECTED_MODES`. + +|Keycode |Alias |Input Mode |Description | +|----------------------|---------|------------|-----------------------------------------------------------------------------| +|`UNICODE_MODE_FORWARD`|`UC_MOD` |Next in list|Cycle through selected modes, reverse direction when Shift is held | +|`UNICODE_MODE_REVERSE`|`UC_RMOD`|Prev in list|Cycle through selected modes in reverse, forward direction when Shift is held| +|`UNICODE_MODE_MAC` |`UC_M_MA`|`UC_MAC` |Switch to macOS input | +|`UNICODE_MODE_LNX` |`UC_M_LN`|`UC_LNX` |Switch to Linux input | +|`UNICODE_MODE_WIN` |`UC_M_WI`|`UC_WIN` |Switch to Windows input | +|`UNICODE_MODE_BSD` |`UC_M_BS`|`UC_BSD` |Switch to BSD input _(not implemented)_ | +|`UNICODE_MODE_WINC` |`UC_M_WC`|`UC_WINC` |Switch to Windows input using WinCompose | + +You can also switch the input mode by calling `set_unicode_input_mode(x)` in your code, where _x_ is one of the above input mode constants (e.g. `UC_LNX`). + +?> Using `UNICODE_SELECTED_MODES` is preferable to calling `set_unicode_input_mode()` in `matrix_init_user()` or similar functions, since it's better integrated into the Unicode system and has the added benefit of avoiding unnecessary writes to EEPROM. + +#### Audio Feedback If you have the [Audio feature](feature_audio.md) enabled on the board, you can set melodies to be played when you press the above keys. That way you can have some audio feedback when switching input modes. @@ -157,20 +189,21 @@ For instance, you can add these definitions to your `config.h` file: #define UNICODE_SONG_WINC UNICODE_WINDOWS ``` -### Additional Customization + +## Additional Customization Because Unicode is a large and versatile feature, there are a number of options you can customize to make it work better on your system. -#### Start and Finish Input Functions +### Start and Finish Input Functions The functions for starting and finishing Unicode input on your platform can be overridden locally. Possible uses include customizing input mode behavior if you don't use the default keys, or adding extra visual/audio feedback to Unicode input. -* `void unicode_input_start(void)` – This sends the initial sequence that tells your platform to enter Unicode input mode. For example, it presses Ctrl+Shift+U on Linux and holds the Option key on macOS. -* `void unicode_input_finish(void)` – This is called to exit Unicode input mode, for example by pressing Space or releasing the Option key. +* `void unicode_input_start(void)` – This sends the initial sequence that tells your platform to enter Unicode input mode. For example, it holds the left Alt key followed by Num+ on Windows, and presses the `UNICODE_KEY_LNX` combination (default: Ctrl+Shift+U) on Linux. +* `void unicode_input_finish(void)` – This is called to exit Unicode input mode, for example by pressing Space or releasing the Alt key. You can find the default implementations of these functions in [`process_unicode_common.c`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_unicode_common.c). -#### Input Key Configuration +### Input Key Configuration You can customize the keys used to trigger Unicode input for macOS, Linux and WinCompose by adding corresponding defines to your `config.h`. The default values match the platforms' default settings, so you shouldn't need to change this unless Unicode input isn't working, or you want to use a different key (e.g. in order to free up left or right Alt). @@ -180,54 +213,47 @@ You can customize the keys used to trigger Unicode input for macOS, Linux and Wi |`UNICODE_KEY_LNX` |`uint16_t`|`LCTL(LSFT(KC_U))`|`#define UNICODE_KEY_LNX LCTL(LSFT(KC_E))`| |`UNICODE_KEY_WINC`|`uint8_t` |`KC_RALT` |`#define UNICODE_KEY_WINC KC_RGUI` | -#### Input Mode Cycling -You can choose which input modes are available for cycling through. By default, this is disabled. If you want to enable it, limiting it to just the modes you use makes sense. Note that the values in the list are comma-delimited. +## Sending Unicode Strings -```c -#define UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WIN, UC_WINC -``` +QMK provides several functions that allow you to send Unicode input to the host programmatically: -You can cycle through the selected modes by using the `UC_MOD`/`UC_RMOD` keycodes, or by calling `cycle_unicode_input_mode(offset)` in your code (`offset` is how many modes to move forward by, so +1 corresponds to `UC_MOD`). +### `send_unicode_string()` -By default, when the keyboard boots, it will initialize the input mode to the last one you used. You can disable this and make it start with the first mode in the list every time by adding the following to your `config.h`: +This function is much like `send_string()`, but it allows you to input UTF-8 characters directly. It supports all code points, provided the selected input mode also supports it. Make sure your `keymap.c` file is formatted using UTF-8 encoding. ```c -#define UNICODE_CYCLE_PERSIST false +send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻"); ``` -!> Using `UNICODE_SELECTED_MODES` means you don't have to initially set the input mode in `matrix_init_user()` (or a similar function); the Unicode system will do that for you on startup. This has the added benefit of avoiding unnecessary writes to EEPROM. +Example uses include sending Unicode strings when a key is pressed, as described in [Macros](feature_macros.md). -## `send_unicode_string()` +### `send_unicode_hex_string()` -This function is much like `send_string()` but allows you to input UTF-8 characters directly, and supports all code points (provided the selected input method also supports it). Make sure your `keymap.c` is formatted in UTF-8 encoding. +Similar to `send_unicode_string()`, but the characters are represented by their Unicode code points, written in hexadecimal and separated by spaces. For example, the table flip above would be achieved with: ```c -send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻"); +send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B"); ``` -## `send_unicode_hex_string()` +An easy way to convert your Unicode string to this format is to use [this site](https://r12a.github.io/app-conversion/) and take the result in the "Hex/UTF-32" section. -Similar to `send_unicode_string()`, but the characters are represented by their code point values in ASCII, separated by spaces. For example, the table flip above would be achieved with: -```c -send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B"); -``` +## Additional Language Support -An easy way to convert your Unicode string to this format is by using [this site](https://r12a.github.io/app-conversion/), and taking the result in the "Hex/UTF-32" section. +In `quantum/keymap_extras`, you'll see various language files — these work the same way as the ones for alternative layouts such as Colemak or BÉPO. When you include one of these language headers, you gain access to keycodes specific to that language / national layout. Such keycodes are defined by a 2-letter country/language code, followed by an underscore and a 4-letter abbreviation of the character to which the key corresponds. For example, including `keymap_french.h` and using `FR_UGRV` in your keymap will output `ù` when typed on a system with a native French AZERTY layout. -## Additional Language Support +If the primary system layout you use on your machine is different from US ANSI, using these language-specific keycodes can help your QMK keymaps better match what will actually be output on the screen. However, keep in mind that these keycodes are just aliases for the corresponding default US keycodes under the hood, and that the HID protocol used by keyboards is itself inherently based on US ANSI. -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware. ## International Characters on Windows -### AutoHotkey allows Windows users to create custom hotkeys among others. +### AutoHotkey -The method does not require Unicode support in the keyboard itself but depends instead of [AutoHotkey](https://autohotkey.com) running in the background. +The method does not require Unicode support in the keyboard itself but instead depends on [AutoHotkey](https://autohotkey.com) running in the background. First you need to select a modifier combination that is not in use by any of your programs. -CtrlAltWin is not used very widely and should therefore be perfect for this. +Ctrl+Alt+Win is not used very widely and should therefore be perfect for this. There is a macro defined for a mod-tab combo `LCAG_T`. Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`. This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key. @@ -242,8 +268,5 @@ AutoHotkey inserts the Text right of `Send, ` when this combination is pressed. ### US International -If you enable the US International layout on the system, it will use punctuation to accent the characters. - -For instance, typing "\`a" will result in à. - +If you enable the US International layout on the system, it will use punctuation to accent the characters. For instance, typing "\`a" will result in à. You can find details on how to enable this [here](https://support.microsoft.com/en-us/help/17424/windows-change-keyboard-layout). From e58ab6d326f7d99e9b518ae3b3a9da5045104d63 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Sat, 20 Jun 2020 23:03:06 +0200 Subject: [PATCH 032/154] update shell.nix (#8910) * now uses gcc 8.4 * fixes building boards with adafruit feather (in my case pancake) --- shell.nix | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/shell.nix b/shell.nix index 8906bacfae9d..78bc005f7e57 100644 --- a/shell.nix +++ b/shell.nix @@ -8,26 +8,21 @@ let in { dfu-programmer = addDarwinSupport super.dfu-programmer; teensy-loader-cli = addDarwinSupport super.teensy-loader-cli; - - avrgcc = super.avrgcc.overrideAttrs (oldAttrs: rec { - name = "avr-gcc-8.1.0"; - src = super.fetchurl { - url = "mirror://gcc/releases/gcc-8.1.0/gcc-8.1.0.tar.xz"; - sha256 = "0lxil8x0jjx7zbf90cy1rli650akaa6hpk8wk8s62vk2jbwnc60x"; - }; - }); }; nixpkgs = builtins.fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/0260747427737b980f0.tar.gz"; - sha256 = "1p2yc6b40xvvxvmlqd9wb440pkrimnlc2wsbpa5rddlpx1dn8qmf"; + url = "https://github.com/NixOS/nixpkgs/archive/903266491b7b9b0379e88709feca0af900def0d9.tar.gz"; + sha256 = "1b5wjrfgyha6s15k1yjyx41hvrpmd5szpkpkxk6l5hyrfqsr8wip"; }; pkgs = import nixpkgs { overlays = [ overlay ]; }; in with pkgs; -let avr_incflags = [ +let + avrlibc = pkgsCross.avr.libcCross; + + avr_incflags = [ "-isystem ${avrlibc}/avr/include" "-B${avrlibc}/avr/lib/avr5" "-L${avrlibc}/avr/lib/avr5" @@ -41,7 +36,12 @@ stdenv.mkDerivation { name = "qmk-firmware"; buildInputs = [ dfu-programmer dfu-util diffutils git python3 ] - ++ lib.optional avr [ avrbinutils avrgcc avrlibc avrdude ] + ++ lib.optional avr [ + pkgsCross.avr.buildPackages.binutils + pkgsCross.avr.buildPackages.gcc8 + avrlibc + avrdude + ] ++ lib.optional arm [ gcc-arm-embedded ] ++ lib.optional teensy [ teensy-loader-cli ]; From b6e9ef8dd1f2d9e7f0ea82b60e823bf25f5164b6 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 20 Jun 2020 22:19:56 +0100 Subject: [PATCH 033/154] CI: Run 'qmk info' on keyboard changes (#9212) --- .github/workflows/info.yml | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/info.yml diff --git a/.github/workflows/info.yml b/.github/workflows/info.yml new file mode 100644 index 000000000000..31a11058361c --- /dev/null +++ b/.github/workflows/info.yml @@ -0,0 +1,49 @@ +name: PR Lint keyboards + +on: + pull_request: + paths: + - 'keyboards/**' + +jobs: + info: + runs-on: ubuntu-latest + + container: qmkfm/base_container + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Print info + run: | + git rev-parse --short HEAD + echo ${{ github.event.pull_request.base.sha }} + git diff --name-only ${{ github.event.pull_request.base.sha }}... + + - name: Run qmk info + shell: 'bash {0}' + run: | + QMK_CHANGES=$(git diff --name-only ${{ github.event.pull_request.base.sha }}...) + QMK_KEYBOARDS=$(qmk list-keyboards) + + exit_code=0 + for KB in $QMK_KEYBOARDS; do + KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)') + if [[ -z "$KEYBOARD_CHANGES" ]]; then + # skip as no changes for this keyboard + continue + fi + + KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/) + if [[ $KEYMAP_ONLY -gt 0 ]]; then + echo "linting ${KB}" + + # TODO: info info always returns 0 - right now the only way to know failure is to inspect log lines + qmk info -kb ${KB} 2>&1 | tee /tmp/$$ + !(grep -cq ☒ /tmp/$$) + : $((exit_code = $exit_code + $?)) + fi + done + exit $exit_code From 5c07363054c02d09754a32ff4005c9535eeb6ec8 Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Sat, 20 Jun 2020 17:39:45 -0400 Subject: [PATCH 034/154] spidey3 userspace: GUI F-Key lock was affecting some non-F-keys (#9469) --- users/spidey3/spidey3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/users/spidey3/spidey3.c b/users/spidey3/spidey3.c index 9d696494f744..4e364628aa98 100644 --- a/users/spidey3/spidey3.c +++ b/users/spidey3/spidey3.c @@ -223,7 +223,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } break; - case KC_F1 ... KC_F24: + case KC_F1 ... KC_F12: return process_gflock(keycode, record); } From d7f9e6fcf1e13d77298cb1f5169cea240709c163 Mon Sep 17 00:00:00 2001 From: siano Date: Sat, 20 Jun 2020 23:47:09 +0200 Subject: [PATCH 035/154] Added missing RGB controls on layer 1. (#9481) --- keyboards/xd87/keymaps/mac_underglow/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/xd87/keymaps/mac_underglow/keymap.c b/keyboards/xd87/keymaps/mac_underglow/keymap.c index 34b260f35ae6..e5bdebab5cf9 100755 --- a/keyboards/xd87/keymaps/mac_underglow/keymap.c +++ b/keyboards/xd87/keymaps/mac_underglow/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( RESET, EEP_RST, DEBUG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_INC, - KC_TRNS, KC_TRNS, KC_TRNS, 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_BRTG, BL_DEC, - KC_TRNS, KC_TRNS, 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_VAI, RGB_MOD, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_BRTG, BL_DEC, + KC_TRNS, KC_TRNS, RGB_VAD, RGB_RMOD,RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; From 8252f378d9b453b0078699363543be501c9b81d8 Mon Sep 17 00:00:00 2001 From: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Sat, 20 Jun 2020 17:57:33 -0400 Subject: [PATCH 036/154] Add velocikey to alice keymap (#9476) --- keyboards/projectkb/alice/keymaps/stanrc85/keymap.c | 2 +- users/stanrc85/rules.mk | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c b/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c index 667ffe4f696c..300362c281e7 100644 --- a/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c +++ b/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN2_60] = LAYOUT_default( BL_TOGG, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, - BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + BL_INC, VLK_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, BL_DEC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT) diff --git a/users/stanrc85/rules.mk b/users/stanrc85/rules.mk index d544b2d95a83..83cda852d84b 100644 --- a/users/stanrc85/rules.mk +++ b/users/stanrc85/rules.mk @@ -24,4 +24,5 @@ ifeq ($(strip $(KEYBOARD)), projectkb/alice/rev1) SRC += rgblight_layers.c VIA_ENABLE = yes LTO_ENABLE = no + VELOCIKEY_ENABLE=yes endif \ No newline at end of file From 30cdf9331a0a5b78ddc9d0aff45ff1168de97ae8 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 20 Jun 2020 15:07:26 -0700 Subject: [PATCH 037/154] Change `led` variable in rgb_matrix_drivers to avoid conflicts (#9412) * Change `led` to `led_matrix` in rgb_matrix_drivers Is a minor change that only affects the driver file. However, this will allow somebody to run rgblight along side rgb matrix using the ws2812 driver, as well. Specifically, so you can use the custom driver for rgblight to set a different pin (barring a change to the `ws2812_setleds` function). Courtesy of discord conversion: https://discordapp.com/channels/440868230475677696/568161140534935572/721555623191248906 * Change name to be super specific * Update rgb_matrix_drivers.c --- quantum/rgb_matrix_drivers.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/quantum/rgb_matrix_drivers.c b/quantum/rgb_matrix_drivers.c index 204b6c551f97..22259360868e 100644 --- a/quantum/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix_drivers.c @@ -115,27 +115,27 @@ const rgb_matrix_driver_t rgb_matrix_driver = { #elif defined(WS2812) // LED color buffer -LED_TYPE led[DRIVER_LED_TOTAL]; +LED_TYPE rgb_matrix_ws2812_array[DRIVER_LED_TOTAL]; static void init(void) {} static void flush(void) { // Assumes use of RGB_DI_PIN - ws2812_setleds(led, DRIVER_LED_TOTAL); + ws2812_setleds(rgb_matrix_ws2812_array, DRIVER_LED_TOTAL); } // Set an led in the buffer to a color static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) { - led[i].r = r; - led[i].g = g; - led[i].b = b; + rgb_matrix_ws2812_array[i].r = r; + rgb_matrix_ws2812_array[i].g = g; + rgb_matrix_ws2812_array[i].b = b; # ifdef RGBW - convert_rgb_to_rgbw(led[i]); + convert_rgb_to_rgbw(rgb_matrix_ws2812_array[i]); # endif } static void setled_all(uint8_t r, uint8_t g, uint8_t b) { - for (int i = 0; i < sizeof(led) / sizeof(led[0]); i++) { + for (int i = 0; i < sizeof(rgb_matrix_ws2812_array) / sizeof(rgb_matrix_ws2812_array[0]); i++) { setled(i, r, g, b); } } From f36112e957e6ce815563766d86f8bbcc278b3f78 Mon Sep 17 00:00:00 2001 From: cole smith <38364556+daysgobye@users.noreply.github.com> Date: Sat, 20 Jun 2020 15:13:43 -0700 Subject: [PATCH 038/154] added keyboard 5x12 to boardsource folder (#9438) * added keyboard 5x12 to boardsource folder * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/boardsource/5x12/5x12.c | 1 + keyboards/boardsource/5x12/5x12.h | 17 +++ keyboards/boardsource/5x12/config.h | 143 ++++++++++++++++++ keyboards/boardsource/5x12/info.json | 77 ++++++++++ .../boardsource/5x12/keymaps/default/keymap.c | 39 +++++ keyboards/boardsource/5x12/readme.md | 13 ++ keyboards/boardsource/5x12/rules.mk | 33 ++++ 7 files changed, 323 insertions(+) create mode 100644 keyboards/boardsource/5x12/5x12.c create mode 100644 keyboards/boardsource/5x12/5x12.h create mode 100644 keyboards/boardsource/5x12/config.h create mode 100644 keyboards/boardsource/5x12/info.json create mode 100644 keyboards/boardsource/5x12/keymaps/default/keymap.c create mode 100644 keyboards/boardsource/5x12/readme.md create mode 100644 keyboards/boardsource/5x12/rules.mk diff --git a/keyboards/boardsource/5x12/5x12.c b/keyboards/boardsource/5x12/5x12.c new file mode 100644 index 000000000000..579cd5effc1a --- /dev/null +++ b/keyboards/boardsource/5x12/5x12.c @@ -0,0 +1 @@ +#include "5x12.h" \ No newline at end of file diff --git a/keyboards/boardsource/5x12/5x12.h b/keyboards/boardsource/5x12/5x12.h new file mode 100644 index 000000000000..bbc0689b442e --- /dev/null +++ b/keyboards/boardsource/5x12/5x12.h @@ -0,0 +1,17 @@ +#pragma once +#include "quantum.h" + +#define LAYOUT_ortho_5x12( \ + 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, K30, K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47, \ + K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, K59 \ + ) { \ + {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, K30, K31, K32, K33, K34, K35}, \ + {K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47}, \ + {K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, K59} \ + } + diff --git a/keyboards/boardsource/5x12/config.h b/keyboards/boardsource/5x12/config.h new file mode 100644 index 000000000000..1cd7101589aa --- /dev/null +++ b/keyboards/boardsource/5x12/config.h @@ -0,0 +1,143 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xF7E0 +#define PRODUCT_ID 0x0412 +#define DEVICE_VER 0x0000 +#define MANUFACTURER Boardsource +#define PRODUCT 5x12 +#define DESCRIPTION 50 percent ortho keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 +#define MATRIX_ROW_PINS { D2, D3, D1, D0, D4 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6, D7 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* 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 1 diff --git a/keyboards/boardsource/5x12/info.json b/keyboards/boardsource/5x12/info.json new file mode 100644 index 000000000000..a4cfc398a23b --- /dev/null +++ b/keyboards/boardsource/5x12/info.json @@ -0,0 +1,77 @@ +{ + "keyboard_name": "boardsource 5x12", + "url": "https://boardsource.xyz", + "maintainer": "boardsource", + "width": 12, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "K01", "x": 0, "y": 0 }, + { "label": "K02", "x": 1, "y": 0 }, + { "label": "K03", "x": 2, "y": 0 }, + { "label": "K04", "x": 3, "y": 0 }, + { "label": "K05", "x": 4, "y": 0 }, + { "label": "K06", "x": 5, "y": 0 }, + { "label": "K07", "x": 6, "y": 0 }, + { "label": "K08", "x": 7, "y": 0 }, + { "label": "K09", "x": 8, "y": 0 }, + { "label": "K010", "x": 9, "y": 0 }, + { "label": "K011", "x": 10, "y": 0 }, + { "label": "K012", "x": 11, "y": 0 }, + + { "label": "K11", "x": 0, "y": 1 }, + { "label": "K12", "x": 1, "y": 1 }, + { "label": "K13", "x": 2, "y": 1 }, + { "label": "K14", "x": 3, "y": 1 }, + { "label": "K15", "x": 4, "y": 1 }, + { "label": "K16", "x": 5, "y": 1 }, + { "label": "K17", "x": 6, "y": 1 }, + { "label": "K18", "x": 7, "y": 1 }, + { "label": "K19", "x": 8, "y": 1 }, + { "label": "K110", "x": 9, "y": 1 }, + { "label": "K111", "x": 10, "y": 1 }, + { "label": "K112", "x": 11, "y": 1 }, + + { "label": "K21", "x": 0, "y": 2 }, + { "label": "K22", "x": 1, "y": 2 }, + { "label": "K23", "x": 2, "y": 2 }, + { "label": "K24", "x": 3, "y": 2 }, + { "label": "K25", "x": 4, "y": 2 }, + { "label": "K26", "x": 5, "y": 2 }, + { "label": "K27", "x": 6, "y": 2 }, + { "label": "K28", "x": 7, "y": 2 }, + { "label": "K29", "x": 8, "y": 2 }, + { "label": "K210", "x": 9, "y": 2 }, + { "label": "K211", "x": 10, "y": 2 }, + { "label": "K212", "x": 11, "y": 2 }, + + { "label": "K31", "x": 0, "y": 3 }, + { "label": "K32", "x": 1, "y": 3 }, + { "label": "K33", "x": 2, "y": 3 }, + { "label": "K34", "x": 3, "y": 3 }, + { "label": "K35", "x": 4, "y": 3 }, + { "label": "K36", "x": 5, "y": 3 }, + { "label": "K37", "x": 6, "y": 3 }, + { "label": "K38", "x": 7, "y": 3 }, + { "label": "K39", "x": 8, "y": 3 }, + { "label": "K310", "x": 9, "y": 3 }, + { "label": "K311", "x": 10, "y": 3 }, + { "label": "K312", "x": 11, "y": 3 }, + + { "label": "K41", "x": 0, "y": 4 }, + { "label": "K42", "x": 1, "y": 4 }, + { "label": "K43", "x": 2, "y": 4 }, + { "label": "K44", "x": 3, "y": 4 }, + { "label": "K45", "x": 4, "y": 4 }, + { "label": "K46", "x": 5, "y": 4 }, + { "label": "K47", "x": 6, "y": 4 }, + { "label": "K48", "x": 7, "y": 4 }, + { "label": "K49", "x": 8, "y": 4 }, + { "label": "K410", "x": 9, "y": 4 }, + { "label": "K411", "x": 10, "y": 4 }, + { "label": "K412", "x": 11, "y": 4 } + ] + } + } +} diff --git a/keyboards/boardsource/5x12/keymaps/default/keymap.c b/keyboards/boardsource/5x12/keymaps/default/keymap.c new file mode 100644 index 000000000000..19bdde0ffb9c --- /dev/null +++ b/keyboards/boardsource/5x12/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER, +}; + +// Readability keycodes +#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, + RESET, _______, _______, _______, _______, _______, _______, _______, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ) + +}; diff --git a/keyboards/boardsource/5x12/readme.md b/keyboards/boardsource/5x12/readme.md new file mode 100644 index 000000000000..f1bf8a84c302 --- /dev/null +++ b/keyboards/boardsource/5x12/readme.md @@ -0,0 +1,13 @@ +# 5x12 + +![boardsource 5x12](https://i.imgur.com/xuNxpgh.jpg) + +* Keyboard Maintainer: [Boardsource](https://github.com/daysgobye) +* Hardware Supported: 5x12 v1 +* Hardware Availability: this keyboard is available from the [Boardsource store](https://boardsource.xyz/store/5ecb822386879c9a0c22db84) + +Make example for this keyboard (after setting up your build environment): + + make boardsource/5x12: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/boardsource/5x12/rules.mk b/keyboards/boardsource/5x12/rules.mk new file mode 100644 index 000000000000..f26c7fa800c2 --- /dev/null +++ b/keyboards/boardsource/5x12/rules.mk @@ -0,0 +1,33 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +LAYOUTS = ortho_5x12 From b7da69ec85c5f3e3981dd4590c52139a1539bc17 Mon Sep 17 00:00:00 2001 From: AlexOConnorHub <43659595+AlexOConnorHub@users.noreply.github.com> Date: Sun, 21 Jun 2020 03:10:01 -0400 Subject: [PATCH 039/154] Adding information to feature_encoders.md (#9486) Co-authored-by: Ryan --- docs/feature_encoders.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_encoders.md b/docs/feature_encoders.md index 7799b78d6e42..8f9ba1a80a79 100644 --- a/docs/feature_encoders.md +++ b/docs/feature_encoders.md @@ -26,7 +26,7 @@ If your encoder's clockwise directions are incorrect, you can swap the A & B pad #define ENCODER_DIRECTION_FLIP ``` -Additionally, the resolution can be specified in the same file (the default & suggested is 4): +Additionally, the resolution, which defines how many pulses the encoder registers between each detent, can be defined with: ```c #define ENCODER_RESOLUTION 4 From 32340e14fb8491b9e381b1b5d971a2ee946ded72 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 21 Jun 2020 19:54:53 +1000 Subject: [PATCH 040/154] Update newbs MSYS2 pacman instructions (#9445) --- docs/newbs_getting_started.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index a4ee9c0f52af..dfb2d54fc4ff 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -41,16 +41,11 @@ We've tried to make QMK as easy to set up as possible. You only have to prepare You will need to install MSYS2, Git, and the QMK CLI. -* Follow the installation instructions on the [MSYS2 homepage](http://www.msys2.org). -* Close any open MSYS2 terminals and open a new MSYS2 MinGW 64-bit terminal. NOTE: This is **not** the same as the MSYS terminal that opens when installation is completed. +Follow the installation instructions on the [MSYS2 homepage](http://www.msys2.org). Close any open MSYS terminals and open a new MinGW 64-bit terminal. **NOTE: This is *not* the same as the MSYS terminal that opens when installation is completed.** -After opening a new MSYS2 MinGW 64-bit terminal, make sure `pacman` is up to date with: +Then, run the following: - pacman -Syu - -You may be asked to close and reopen the window. Do this and keep running the above command until it says `there is nothing to do`. Then run the following: - - pacman -S git mingw-w64-x86_64-toolchain mingw-w64-x86_64-python3-pip + pacman --needed --noconfirm --disable-download-timeout -S git mingw-w64-x86_64-toolchain mingw-w64-x86_64-python3-pip python3 -m pip install qmk ### macOS From 2f85f6fbffaf6a7a2b747c7d6064fb86a21d91f6 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sun, 21 Jun 2020 20:17:16 +0900 Subject: [PATCH 041/154] [Docs] Japanese translation of breaking_changes*.md (#8576) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add japanese translation 'docs/ja/breaking_changes.md' Note: this is cherry-pick from umi-umi's translation in PR #7248 * update ja/breaking_changes.md * update ja/breaking_changes.md, add ja/breaking_changes_instructions.md * translating ja/breaking_changes_instructions.md * translating ja/breaking_changes_instructions.md * translated ja/breaking_changes_instructions.md * update ja/breaking_changes.md, ja/breaking_changes_instructions.md Breaking change の訳語を「破壊的な変更」から「互換性を破る変更」に変更。 ただし、文中の用語としては、Breaking change をそのまま使用するむねドキュメントの導入部で 訳注でしめし、文中では、原語のまま使用する。 * update docs/ja/_summary.md * Update docs/ja/breaking_changes.md Co-Authored-By: shela * Update docs/ja/breaking_changes.md Co-Authored-By: shela * Update docs/ja/breaking_changes.md Co-Authored-By: shela * Update docs/ja/breaking_changes.md Co-Authored-By: shela * Update docs/ja/breaking_changes.md Co-Authored-By: shela * Update docs/ja/breaking_changes.md Co-Authored-By: shela * Update docs/ja/breaking_changes.md * update docs/ja/breaking_changes.md * update docs/ja/breaking_changes.md * update docs/ja/breaking_changes.md * update docs/ja/breaking_changes.md * update docs/ja/breaking_changes.md * Update docs/ja/breaking_changes_instructions.md Co-Authored-By: shela * Update docs/ja/breaking_changes_instructions.md Co-Authored-By: shela * update docs/ja/breaking_changes.md * Update docs/ja/breaking_changes_instructions.md Co-Authored-By: shela * Update docs/ja/breaking_changes_instructions.md * Update docs/ja/breaking_changes_instructions.md Co-Authored-By: shela * update docs/ja/breaking_changes_instructions.md * update docs/ja/breaking_changes_instructions.md * The base of the translation of docs/ja/breaking_changes_instructions.md was changed to 0.9.0. * The base of the translation of docs/ja/breaking_changes.md was changed to 0.9.0. * Update docs/ja/breaking_changes.md Co-authored-by: s-show * update docs/ja/breaking_changes.md * Update docs/ja/breaking_changes_instructions.md Co-authored-by: shela * update docs/ja/breaking_changes.md * update docs/ja/breaking_changes.md Co-authored-by: umi-umi <57262844+umi-umi@users.noreply.github.com> Co-authored-by: shela Co-authored-by: s-show --- docs/ja/_summary.md | 2 +- docs/ja/breaking_changes.md | 120 +++++++++++++++++++++++ docs/ja/breaking_changes_instructions.md | 51 ++++++++++ 3 files changed, 172 insertions(+), 1 deletion(-) create mode 100644 docs/ja/breaking_changes.md create mode 100644 docs/ja/breaking_changes_instructions.md diff --git a/docs/ja/_summary.md b/docs/ja/_summary.md index e6423c6c26f5..987df23d76db 100644 --- a/docs/ja/_summary.md +++ b/docs/ja/_summary.md @@ -106,7 +106,7 @@ * [Velocikey](ja/feature_velocikey.md) * QMK の開発 - * 破壊的な変更 + * 互換性を破る変更/Breaking changes * [概要](ja/breaking_changes.md) * [プルリクエストにフラグが付けられた](ja/breaking_changes_instructions.md) * 履歴 diff --git a/docs/ja/breaking_changes.md b/docs/ja/breaking_changes.md new file mode 100644 index 000000000000..936d0a4722c0 --- /dev/null +++ b/docs/ja/breaking_changes.md @@ -0,0 +1,120 @@ +# Breaking changes/互換性を破る変更 + + + +このドキュメントは QMK の互換性を破る変更(Breaking change) のプロセスについて説明します。 +互換性を破る変更とは、互換性がなかったり潜在的な危険が生じるように QMK の動作を変える変更を指します。 +ユーザが QMK ツリーを更新しても自分のキーマップが壊れない事を確信できるように、これらの変更を制限します。(訳注:以後、原文のまま Breaking change を用語として使用します。) + +Breaking change ピリオドとは、危険な変更、または予想外の変更を QMK へ行なう PR をマージする時のことです。 +付随するテスト期間があるため、問題が起きることはまれか、有りえないと確信しています。 + +## 過去の Breaking change には何が含まれますか? + +* [2020年5月30日](ja/ChangeLog/20200530.md) +* [2020年2月29日](ja/ChangeLog/20200229.md) +* [2019年8月30日](ja/ChangeLog/20190830.md) + +## 次の Breaking change はいつですか? + +次の Breaking change は2020年8月29日に予定されています。 + +### 重要な日付 + +* [x] 2020年 5月30日 - `develop` が作成されました。毎週リベースされます。 +* [ ] 2020年 8月 1日 - `develop` は新しいPRを取り込みません。 +* [ ] 2020年 8月 1日 - テスターの募集。 +* [ ] 2020年 8月27日 - `master`がロックされ、PR はマージされません。 +* [ ] 2020年 8月29日 - `develop` を `master` にマージします。 +* [ ] 2020年 8月29日 - `master` のロックが解除されます。PR を再びマージすることができます。 + +## どのような変更が含まれますか? + +最新の Breaking change 候補を見るには、[`breaking_change` ラベル](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+label%3Abreaking_change+is%3Apr)を参照してください。 +現在から `develop` が閉じられるまでの間に新しい変更が追加される可能性があり、そのラベルが適用された PR はマージされることは保証されていません。 + +このラウンドに、あなたの Breaking change を含めたい場合は、`breaking_change` ラベルを持つ PR を作成し、`develop` が閉じる前に承認してもらう必要があります。 +`develop` が閉じた後は、新しい Breaking change は受け付けられません。 + +受け入れの基準: + +* PR が完了し、マージの準備ができている +* PR が ChangeLog を持つ + +# チェックリスト + +ここでは、Breaking change プロセスを実行する時に使用する様々なプロセスについて説明します。 + +## `master` から `develop` をリベースします + +これは `develop` が開いている間、毎週金曜日に実行されます。 + +プロセス: + +``` +cd qmk_firmware +git checkout master +git pull --ff-only +git checkout develop +git rebase master +git push --force +``` + +## `develop` ブランチの作成 + +以前の `develop` ブランチがマージされた直後に、これが発生します。 + +* `qmk_firmware` git commands + * [ ] `git checkout master` + * [ ] `git pull --ff-only` + * [ ] `git checkout -b develop` + * [ ] Edit `readme.md` + * [ ] これがテストブランチであることを上部に大きな通知で追加します。 + * [ ] このドキュメントへのリンクを含めます + * [ ] `git commit -m 'Branch point for Breaking Change'` + * [ ] `git tag breakpoint___
` + * [ ] `git tag ` # ブレーキング ポイント タグがバージョンの増分を混乱させないようにします + * [ ] `git push origin develop` + * [ ] `git push --tags` + +## マージの 4 週間前 + +* `develop` は新しい PR に対して閉じられ、現在の PR の修正のみがマージされる可能性があります。 +* テスターの呼び出しを投稿します + * [ ] Discord + * [ ] GitHub PR + * [ ] https://reddit.com/r/olkb + +## マージの 1 週間前 + +* master が < 2 日前> から <マージの日> まで閉じられることを発表します + * [ ] Discord + * [ ] GitHub PR + * [ ] https://reddit.com/r/olkb + +## マージの 2 日前 + +* master が 2 日間閉じられることを発表します + * [ ] Discord + * [ ] GitHub PR + * [ ] https://reddit.com/r/olkb + +## マージの日 + +* `qmk_firmware` git commands + * [ ] `git checkout develop` + * [ ] `git pull --ff-only` + * [ ] `git rebase origin/master` + * [ ] Edit `readme.md` + * [ ] `develop` についてのメモを削除 + * [ ] ChangeLog を 1 つのファイルにまとめます。 + * [ ] `git commit -m 'Merge point for Breaking Change'` + * [ ] `git push origin develop` +* GitHub Actions + * [ ] `develop`の PR を作成します + * [ ] travis がクリーンに戻ったことを確認します + * [ ] `develop` PR をマージします diff --git a/docs/ja/breaking_changes_instructions.md b/docs/ja/breaking_changes_instructions.md new file mode 100644 index 000000000000..69d17d73c5f5 --- /dev/null +++ b/docs/ja/breaking_changes_instructions.md @@ -0,0 +1,51 @@ +# breaking changes/互換性を破る変更: プルリクエストにフラグが付けられた + + + +QMK のメンバーがあなたのプルリクエストに返信し、あなたの提出したものは Breaking change (互換性を破る変更) であると述べている場合があります。メンバーの判断では、あなたが提案した変更は QMK やその利用者にとってより大きな影響を持つと考えられます。 + +プルリクエストにフラグが立てられる原因となるものには、以下のようなものがあります: + +- **ユーザーのキーマップに対する編集** + ユーザーが自分のキーマップを QMK に提出した後、しばらくしてさらに更新してプルリクエストを開いたところ、それが `qmk/qmk_firmware` リポジトリで編集されていたためにマージできなかったことに気づくことがあるかもしれません。すべてのユーザーが Git や GitHub を使いこなせるわけではないので、ユーザー自身で問題を修正できないことに気づくかもしれません。 +- **期待される動作の変更** + QMK の動作を変更すると、既存の QMK 機能への変更を組み込んだ新しいファームウェアをフラッシュした場合、ユーザはハードウェアまたは QMK が壊れていると考え、希望する動作を復元する手段がないことに気付くことがあります。 +- **ユーザーのアクションを必要とする変更** + 変更には、ツールチェインを更新したり、Git で何らかのアクションを取るなど、ユーザーがアクションを行う必要がある場合もあります。 +- **精査が必要な変更** + 時には、投稿がプロジェクトとしての QMK に影響を与えることもあります。これは、著作権やライセンスの問題、コーディング規約、大規模な機能のオーバーホール、コミュニティによるより広範なテストを必要とする「リスクの高い」変更、あるいは全く別のものである可能性があります。 +- **エンドユーザーとのコミュニケーションを必要とする変更** + これには、将来の非推奨化への警告、時代遅れの慣習、その他伝えなければならないが上記のカテゴリのどれかに当てはまらないものが含まれます。 + +## 何をすればいいのか? + +提出したものが Breaking change だと判断された場合、手続きをスムーズに進めるためにできることがいくつかあります。 + +### PR を分割することを検討する + +あなたがコアコードを投稿していて、それが Breaking change プロセスを経る必要がある唯一の理由が、あなたの変更に合わせてキーマップを更新していることである場合、古いキーマップが機能し続けるような方法であなたの機能を投稿できるかどうかを検討してください。 +そののち、Breaking change プロセスを経て古いコードを削除する別の PR を提出してください。 + +### ChangeLog エントリの提供 + +Breaking change プロセスを経て提出する際には、変更ログのエントリを含めることを我々は要請します。 +エントリーは、あなたのプルリクエストが行う変更の短い要約としてください – [ここの各セクションは changelog として開始されました](ja/ChangeLog/20190830.md "n.b. This should link to the 2019 Aug 30 Breaking Changes doc - @noroadsleft")。 + +変更ログは `docs/ChangeLog/YYYYMMDD/PR####.md` に置いてください。 +ここで、`YYYYMMDD` は QMK の breaking change ブランチ – 通常は `develop` という名称 – が `master` ブランチにマージされる日付、`####` はプルリクエストの番号です。 + +ユーザー側でのアクションを必要とする場合、あなたの変更ログは、どのようなアクションを取らなければならないかをユーザーに指示するか、そのようなアクションを指示する場所にリンクする必要があります。 + +### 変更点を文書化する + +提出物の目的を理解し、それが必要とする可能性のある意味合いやアクションを理解することで、レビュープロセスをより簡単にすることができます。この目的のためには変更履歴で十分かもしれませんが、より広範囲の変更を行う場合には、変更履歴には不向きな詳細レベルが必要になるかもしれません。 + +あなたのプルリクエストにコメントしたり、質問やコメント、変更要求に対応したりすることは、非常にありがたいことです。 + +### 助けを求める + +あなたの提出物にフラグが立ったことで、あなたはびっくりしてしまったかもしれません。もし、あなた自身が脅されたり、圧倒されたりしていると感じたら、私たちに知らせてください。プルリクエストにコメントするか、[Discord で QMK チームに連絡を取ってください](https://discord.gg/Uq7gcHh)。 From a91034b802bd91ec4aa9db963adbd0d2deb2f40b Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sun, 21 Jun 2020 21:45:27 +0900 Subject: [PATCH 042/154] [Update] Change Original TAGs of Japanese translations (#9453) * The TAGs of the original document has been updated to facilitate future verification. * docs/ja/driver_installation_zadig.md * docs/ja/feature_audio.md * docs/ja/feature_auto_shift.md * docs/ja/feature_bluetooth.md * docs/ja/hardware_avr.md * docs/ja/hardware_drivers.md * docs/ja/getting_started_make_guide.md * The TAG of the original document has been updated to facilitate future verification. * The TAG of the original document has been updated to facilitate future verification. * update docs/ja/feature_tap_dance.md --- docs/ja/cli_configuration.md | 4 ++-- docs/ja/driver_installation_zadig.md | 4 ++-- docs/ja/feature_audio.md | 4 ++-- docs/ja/feature_auto_shift.md | 4 ++-- docs/ja/feature_bluetooth.md | 4 ++-- docs/ja/feature_tap_dance.md | 4 ++-- docs/ja/getting_started_make_guide.md | 4 ++-- docs/ja/hardware_avr.md | 4 ++-- docs/ja/hardware_drivers.md | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/ja/cli_configuration.md b/docs/ja/cli_configuration.md index d21a27596d4f..f4857a602941 100644 --- a/docs/ja/cli_configuration.md +++ b/docs/ja/cli_configuration.md @@ -1,8 +1,8 @@ # QMK CLI 設定 このドキュメントは `qmk config` がどのように動作するかを説明します。 diff --git a/docs/ja/driver_installation_zadig.md b/docs/ja/driver_installation_zadig.md index 268940ec066e..1d5e8552a486 100644 --- a/docs/ja/driver_installation_zadig.md +++ b/docs/ja/driver_installation_zadig.md @@ -1,8 +1,8 @@ # Zadig を使ったブートローダドライバのインストール QMK はホストにたいして通常の HID キーボードデバイスとして振る舞うため特別なドライバは必要ありません。しかし、Windows でのキーボードへの書き込みは、多くの場合、キーボードをリセットした時に現れるブートローダデバイスで*行います*。 diff --git a/docs/ja/feature_audio.md b/docs/ja/feature_audio.md index 0f845161eb86..2d13c3f7ccc2 100644 --- a/docs/ja/feature_audio.md +++ b/docs/ja/feature_audio.md @@ -1,8 +1,8 @@ # オーディオ キーボードは音を出すことができます!Planck、Preonic あるいは特定の PWM 対応ピンにアクセスできる AVR キーボードがある場合は、単純なスピーカーを接続してビープ音を鳴らすことができます。これらのビープ音を使ってレイヤーの変化、モディファイア、特殊キーを示したり、あるいは単にイカした8ビットの曲を鳴らすことができます。 diff --git a/docs/ja/feature_auto_shift.md b/docs/ja/feature_auto_shift.md index c230f93815ef..50d40b17b1f4 100644 --- a/docs/ja/feature_auto_shift.md +++ b/docs/ja/feature_auto_shift.md @@ -1,8 +1,8 @@ # 自動シフト: なぜシフトキーが必要ですか? キーをタップすると、その文字を取得します。キーをタップするが、*わずかに*長く押し続けると、シフト状態になります。ほら!シフトキーは必要ありません! diff --git a/docs/ja/feature_bluetooth.md b/docs/ja/feature_bluetooth.md index 90b88bd7c24b..4443a4e3ea50 100644 --- a/docs/ja/feature_bluetooth.md +++ b/docs/ja/feature_bluetooth.md @@ -1,8 +1,8 @@ # Bluetooth ## Bluetooth の既知のサポートハードウェア diff --git a/docs/ja/feature_tap_dance.md b/docs/ja/feature_tap_dance.md index 5583b04ce484..5425b2a4208e 100644 --- a/docs/ja/feature_tap_dance.md +++ b/docs/ja/feature_tap_dance.md @@ -1,8 +1,8 @@ # タップダンス: 1つのキーが3つ、5つまたは100の異なる動作をします ## イントロダクション diff --git a/docs/ja/getting_started_make_guide.md b/docs/ja/getting_started_make_guide.md index d33485ce1114..0d39583a1dcd 100644 --- a/docs/ja/getting_started_make_guide.md +++ b/docs/ja/getting_started_make_guide.md @@ -1,8 +1,8 @@ # より詳細な `make` 手順 `make` コマンドの完全な構文は `::` です: diff --git a/docs/ja/hardware_avr.md b/docs/ja/hardware_avr.md index 6eb86a378673..fecbfd71ffb8 100644 --- a/docs/ja/hardware_avr.md +++ b/docs/ja/hardware_avr.md @@ -2,8 +2,8 @@ このページでは QMK における AVR マイコンのサポートについて説明します。AVR マイコンには、Atmel 社製の atmega32u4、atmega32u2、at90usb1286 やその他のマイコンを含みます。AVR マイコンは、簡単に動かせるよう設計された8ビットの MCU です。キーボードでよく使用される AVR マイコンには USB 機能や大きなキーボードマトリックスのためのたくさんの GPIO を搭載しています。これらは、現在、キーボードで使われる最も一般的な MCU です。 diff --git a/docs/ja/hardware_drivers.md b/docs/ja/hardware_drivers.md index cc85589e7b25..f77b48ba8e6f 100644 --- a/docs/ja/hardware_drivers.md +++ b/docs/ja/hardware_drivers.md @@ -2,8 +2,8 @@ QMK はたくさんの異なるハードウェアで使われています。最も一般的な MCU とマトリックス構成をサポートしていますが、キーボードへ他のハードウェアを追加し制御するためのドライバーもいくつか用意されています。例えば、マウスやポインティングデバイス、分割キーボード用の IO エキスパンダ、Bluetooth モジュール、LCD、OLED、TFT 液晶などがあります。 From b0a31f0bf3347fa7c6342a369c50c1b1fc7321ca Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sun, 21 Jun 2020 21:49:43 +0900 Subject: [PATCH 043/154] update ja/hardware_keyboard_guidelines.md (#9457) --- docs/ja/hardware_keyboard_guidelines.md | 71 ++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/docs/ja/hardware_keyboard_guidelines.md b/docs/ja/hardware_keyboard_guidelines.md index 5a9de52ef42f..ebcbb155420e 100644 --- a/docs/ja/hardware_keyboard_guidelines.md +++ b/docs/ja/hardware_keyboard_guidelines.md @@ -2,8 +2,8 @@ QMK は開始以来、コミュニティにおけるキーボードの作成や保守に貢献しているあなたのような人たちのおかげで飛躍的に成長しました。私たちが成長するにつれて、うまくやるためのいくつかのパターンを発見しました。他の人たちがあなたの苦労の恩恵を受けやすくするため、それにあわせてもらえるようお願いします。 @@ -66,10 +66,77 @@ Clueboard は、サブフォルダをまとめるためとキーボードのリ 全てのプロジェクトには、マトリックスサイズ、製品名、USB VID/PID、説明、その他の設定などが含まれた `config.h` ファイルが必要です。一般に、このファイルを使用して常に機能するキーボードの重要な情報やデフォルトを設定します。 +また、`config.h` ファイルはサブフォルダにも置くことができ、その読み込み順は以下の通りです。 + +* `keyboards/top_folder/config.h` + * `keyboards/top_folder/sub_1/config.h` + * `keyboards/top_folder/sub_1/sub_2/config.h` + * `keyboards/top_folder/sub_1/sub_2/sub_3/config.h` + * `keyboards/top_folder/sub_1/sub_2/sub_3/sub_4/config.h` + * `users/a_user_folder/config.h` + * `keyboards/top_folder/keymaps/a_keymap/config.h` + * `keyboards/top_folder/sub_1/sub_2/sub_3/sub_4/post_config.h` + * `keyboards/top_folder/sub_1/sub_2/sub_3/post_config.h` + * `keyboards/top_folder/sub_1/sub_2/post_config.h` + * `keyboards/top_folder/sub_1/post_config.h` +* `keyboards/top_folder/post_config.h` + +`post_config.h` ファイルは、`config.h` ファイルで指定された内容に応じて、追加の後処理を行うために使用することができます。 +例えば、キーマップレベルの `config.h` ファイルで `IOS_DEVICE_ENABLE` マクロを以下のように定義すると、`post_config.h` ファイルでより詳細な設定を行うことができます。 + +* `keyboards/top_folder/keymaps/a_keymap/config.h` + ```c + #define IOS_DEVICE_ENABLE + ``` +* `keyboards/top_folder/post_config.h` + ```c + #ifndef IOS_DEVICE_ENABLE + // USB_MAX_POWER_CONSUMPTION value for this keyboard + #define USB_MAX_POWER_CONSUMPTION 400 + #else + // fix iPhone and iPad power adapter issue + // iOS device need lessthan 100 + #define USB_MAX_POWER_CONSUMPTION 100 + #endif + + #ifdef RGBLIGHT_ENABLE + #ifndef IOS_DEVICE_ENABLE + #define RGBLIGHT_LIMIT_VAL 200 + #define RGBLIGHT_VAL_STEP 17 + #else + #define RGBLIGHT_LIMIT_VAL 35 + #define RGBLIGHT_VAL_STEP 4 + #endif + #ifndef RGBLIGHT_HUE_STEP + #define RGBLIGHT_HUE_STEP 10 + #endif + #ifndef RGBLIGHT_SAT_STEP + #define RGBLIGHT_SAT_STEP 17 + #endif + #endif + ``` + +?> 上記の例のように `post_config.h` でオプションを定義する場合、キーボードやユーザレベルの `config.h` で同じオプションを定義してはいけません。 + ### `rules.mk` このファイルが存在するということは、フォルダがキーボードであり、`make` コマンドで使用できることを意味します。ここでキーボードのビルド環境を構築し、デフォルトの機能を設定します。 +`rules.mk` ファイルはサブフォルダにも置くことができ、その読み込み順は以下の通りです。 + +* `keyboards/top_folder/rules.mk` + * `keyboards/top_folder/sub_1/rules.mk` + * `keyboards/top_folder/sub_1/sub_2/rules.mk` + * `keyboards/top_folder/sub_1/sub_2/sub_3/rules.mk` + * `keyboards/top_folder/sub_1/sub_2/sub_3/sub_4/rules.mk` + * `keyboards/top_folder/keymaps/a_keymap/rules.mk` + * `users/a_user_folder/rules.mk` +* `common_features.mk` + +`rules.mk` ファイルに書かれた多くの設定は `common_features.mk` によって解釈され、必要なソースファイルやコンパイラのオプションが設定されます。 + +?> 詳しくは `build_keyboard.mk` と `common_features.mk` を見てください。 + ### `` ここではキーボードのカスタマイズされたコードを記述します。通常、初期化してキーボードのハードウェアを制御するコードを記述します。キーボードが LED やスピーカー、その他付属ハードウェアのないキーマトリックスのみで構成されている場合は空にできます。 From 3e0f8f9c8bada31c014c09a61b0c7d21e5614329 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sun, 21 Jun 2020 21:56:06 +0900 Subject: [PATCH 044/154] update docs/ja/feature_bootmagic.md (#9459) --- docs/ja/feature_bootmagic.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/docs/ja/feature_bootmagic.md b/docs/ja/feature_bootmagic.md index 1f38914edae8..20a93d5c4482 100644 --- a/docs/ja/feature_bootmagic.md +++ b/docs/ja/feature_bootmagic.md @@ -1,8 +1,8 @@ # ブートマジック 再書き込みせずにキーボードの挙動を変更することができる、3つの独立した関連する機能があります。それぞれは似たような機能を持ちますが、キーボードがどのように設定されているかによって異なる方法でアクセスされます。 @@ -149,6 +149,17 @@ BOOTMAGIC_ENABLE = lite !> ブートマジックライトを使用すると、EEPROM を**常にリセットします**。つまり保存された全ての設定は失われます。 +## 分割キーボード + +`SPLIT_HAND_PIN` のようなオプションで、左右の設定があらかじめ決められている場合は、キーボードの左右で別のキーを設定する必要があるかもしれません。これを行うには、`config.h` ファイルに以下のエントリを追加します。 + +```c +#define BOOTMAGIC_LITE_ROW_RIGHT 4 +#define BOOTMAGIC_LITE_COLUMN_RIGHT 1 +``` + +デフォルトでは、これらの値は設定されていません。 + ## 高度なブートマジックライト `bootmagic_lite` 関数は必要に応じてコード内で置き換えることができるように、弱く定義されています。これの良い例は Zeal60 キーボードで、追加の処理が必要です。 From e79fb2c26e62b8820c8bdf7e142a605ccefe24ad Mon Sep 17 00:00:00 2001 From: shela Date: Mon, 22 Jun 2020 04:03:35 +0900 Subject: [PATCH 045/154] [Docs] fix indentation (#9491) --- docs/ja/feature_pointing_device.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ja/feature_pointing_device.md b/docs/ja/feature_pointing_device.md index 8b26ac102f15..1d655627dde3 100644 --- a/docs/ja/feature_pointing_device.md +++ b/docs/ja/feature_pointing_device.md @@ -32,7 +32,7 @@ report_mouse_t (ここでは "mouseReport") が以下のプロパティを持つ ```c case MS_SPECIAL: - report_mouse_t currentReport = pointing_device_get_report(); + report_mouse_t currentReport = pointing_device_get_report(); if (record->event.pressed) { currentReport.v = 127; currentReport.h = 127; @@ -42,7 +42,7 @@ case MS_SPECIAL: currentReport.h = -127; currentReport.buttons &= ~MOUSE_BTN1; } - pointing_device_set_report(currentReport); + pointing_device_set_report(currentReport); break; ``` From af4bc251f9d4032abf12d0377b5e948701e82713 Mon Sep 17 00:00:00 2001 From: Gregorio <38576492+ohchiko@users.noreply.github.com> Date: Mon, 22 Jun 2020 04:59:43 +0700 Subject: [PATCH 046/154] Updates on Mixi default keymaps and fixes on configuration (#9467) --- keyboards/mixi/config.h | 4 +- keyboards/mixi/keymaps/default/keymap.c | 43 ++++++++--------- keyboards/mixi/keymaps/default/readme.md | 2 +- keyboards/mixi/keymaps/via/keymap.c | 60 +++++++++++++++--------- keyboards/mixi/mixi.c | 3 +- keyboards/mixi/readme.md | 2 +- 6 files changed, 67 insertions(+), 47 deletions(-) diff --git a/keyboards/mixi/config.h b/keyboards/mixi/config.h index cb89dd2cb0ae..aed57f3241c9 100644 --- a/keyboards/mixi/config.h +++ b/keyboards/mixi/config.h @@ -21,8 +21,8 @@ { C6, F7, B6 } \ } -#define ENCODERS_PAD_A { F5 } -#define ENCODERS_PAD_B { F4 } +#define ENCODERS_PAD_A { D7, B1 } +#define ENCODERS_PAD_B { E6, B3 } /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 diff --git a/keyboards/mixi/keymaps/default/keymap.c b/keyboards/mixi/keymaps/default/keymap.c index 806a7a924c19..21c3c669a053 100644 --- a/keyboards/mixi/keymaps/default/keymap.c +++ b/keyboards/mixi/keymaps/default/keymap.c @@ -6,36 +6,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* - * | Knob: Layer +/- | - * .---------------------------------------. - * | Mute | Play/Pause | Hold: Layer 2 | - * |----------|------------|---------------| - * | Previous | Up | Next | - * |----------|------------|---------------| - * | Left | Down | Right | - * '---------------------------------------' + * | Knob: Layer +/- | + * .------------------------------------------------. + * | Volume Mute | Media Play/Pause | Hold: Layer 2 | + * |-------------|------------------|---------------| + * | Media Prev | Up | Media Next | + * |-------------|------------------|---------------| + * | Left | Down | Right | + * '------------------------------------------------' */ [0] = LAYOUT( - KC_MUTE, KC_MPLY, MO(2), - KC_MNXT, KC_UP , KC_MPRV , + KC_MUTE, KC_MPLY, MO(2) , + KC_MPRV, KC_UP , KC_MNXT, KC_LEFT, KC_DOWN , KC_RGHT ), /* - * .-----------------------. - * | NUM 7 | NUM 8 | NUM 9 | - * |-------|-------|-------| - * | NUM 4 | NUM 5 | NUM 6 | - * |-------|-------|-------| - * | NUM 1 | NUM 2 | NUM 3 | - * '-----------------------' + * | Knob: Layer +/- | + * .---------------------------------------------------. + * | RGB Toggle | Media Play/Pause | Hold: Layer 2 | + * |----------------|------------------|---------------| + * | Media Previous | RGB Bright+ | Media Next | + * |----------------|------------------|---------------| + * | RGB Anim- | RGB Bright- | RGB Anim+ | + * '---------------------------------------------------' */ [1] = LAYOUT( - KC_P7, KC_P8, KC_P8, - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3 + RGB_TOG , KC_TRNS, KC_TRNS, + KC_TRNS , RGB_VAI, KC_TRNS, + RGB_RMOD, RGB_VAD, RGB_MOD ), /* @@ -58,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; const rgblight_segment_t PROGMEM _base_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, RGBLED_NUM, HSV_WHITE} + {0, RGBLED_NUM, HSV_BLUE} ); const rgblight_segment_t PROGMEM _middle_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, RGBLED_NUM, HSV_GREEN} diff --git a/keyboards/mixi/keymaps/default/readme.md b/keyboards/mixi/keymaps/default/readme.md index 863fa6f5d68d..c780eb5f4e2a 100644 --- a/keyboards/mixi/keymaps/default/readme.md +++ b/keyboards/mixi/keymaps/default/readme.md @@ -1,4 +1,4 @@ -![Mixi Layout Image](https://i.imgur.com/UIXj9O6.png) +![Mixi Layout Image](https://i.imgur.com/WCtQ6GG.jpg) # Default Mixi Layout diff --git a/keyboards/mixi/keymaps/via/keymap.c b/keyboards/mixi/keymaps/via/keymap.c index 806a7a924c19..4ffaf111dc63 100644 --- a/keyboards/mixi/keymaps/via/keymap.c +++ b/keyboards/mixi/keymaps/via/keymap.c @@ -6,36 +6,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* - * | Knob: Layer +/- | - * .---------------------------------------. - * | Mute | Play/Pause | Hold: Layer 2 | - * |----------|------------|---------------| - * | Previous | Up | Next | - * |----------|------------|---------------| - * | Left | Down | Right | - * '---------------------------------------' + * | Knob: Layer +/- | + * .------------------------------------------------. + * | Volume Mute | Media Play/Pause | Hold: Layer 2 | + * |-------------|------------------|---------------| + * | Media Prev | Up | Media Next | + * |-------------|------------------|---------------| + * | Left | Down | Right | + * '------------------------------------------------' */ [0] = LAYOUT( - KC_MUTE, KC_MPLY, MO(2), - KC_MNXT, KC_UP , KC_MPRV , + KC_MUTE, KC_MPLY, MO(2) , + KC_MPRV, KC_UP , KC_MNXT, KC_LEFT, KC_DOWN , KC_RGHT ), /* - * .-----------------------. - * | NUM 7 | NUM 8 | NUM 9 | - * |-------|-------|-------| - * | NUM 4 | NUM 5 | NUM 6 | - * |-------|-------|-------| - * | NUM 1 | NUM 2 | NUM 3 | - * '-----------------------' + * | Knob: Layer +/- | + * .---------------------------------------------------. + * | RGB Toggle | Media Play/Pause | Hold: Layer 2 | + * |----------------|------------------|---------------| + * | Media Previous | RGB Bright+ | Media Next | + * |----------------|------------------|---------------| + * | RGB Anim- | RGB Bright- | RGB Anim+ | + * '---------------------------------------------------' */ [1] = LAYOUT( - KC_P7, KC_P8, KC_P8, - KC_P4, KC_P5, KC_P6, - KC_P1, KC_P2, KC_P3 + RGB_TOG , KC_TRNS, KC_TRNS, + KC_TRNS , RGB_VAI, KC_TRNS, + RGB_RMOD, RGB_VAD, RGB_MOD ), /* @@ -53,12 +54,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO , KC_NO, KC_TRNS, EEP_RST, RESET, DEBUG , KC_NO , KC_NO, KC_NO + ), + + /* + * | Knob: N/A | + * .-----------------. + * | N/A | N/A | N/A | + * |-----------------| + * | N/A | N/A | N/A | + * |-----------------| + * | N/A | N/A | N/A | + * '-----------------' + */ + [3] = + LAYOUT( + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO ) }; const rgblight_segment_t PROGMEM _base_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, RGBLED_NUM, HSV_WHITE} + {0, RGBLED_NUM, HSV_BLUE} ); const rgblight_segment_t PROGMEM _middle_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, RGBLED_NUM, HSV_GREEN} diff --git a/keyboards/mixi/mixi.c b/keyboards/mixi/mixi.c index 533cf3b88179..43625bcd568d 100644 --- a/keyboards/mixi/mixi.c +++ b/keyboards/mixi/mixi.c @@ -3,8 +3,9 @@ void eeconfig_init_kb(void) { #ifdef RGBLIGHT_ENABLE rgblight_enable(); // Enable RGB underglow by default + rgblight_sethsv(0, 255, 255); #ifdef RGBLIGHT_ANIMATIONS - rgblight_mode(RGBLIGHT_MODE_TWINKLE + 5); // Set to RGB_TWINKLE animation by default + rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 5); // Set to RGB_RAINBOW_SWIRL animation by default #endif #endif diff --git a/keyboards/mixi/readme.md b/keyboards/mixi/readme.md index 4c911db57086..e8930809411a 100644 --- a/keyboards/mixi/readme.md +++ b/keyboards/mixi/readme.md @@ -1,6 +1,6 @@ # Mixi -![Mixi](https://i.imgur.com/GPO6Khu.jpg) +![Mixi](https://i.imgur.com/f6hHXKZ.jpg) A mini 3x3 macropad with rotary encoders support and RGB underglow and also tray mount support. Currently the PCB and kits can only be purchased in Indonesia. From cb13dd0a33c153d8cb0a26596489804c012eaae4 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sun, 21 Jun 2020 15:47:41 -0700 Subject: [PATCH 047/154] Enable NKRO on 1up's boards (#9434) * enable NKRO and keep consistent with bootmagic set to lite * Update keyboards/1upkeyboards/1up60hse/rules.mk Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/1upkeyboards/1up60hse/rules.mk | 6 +++--- keyboards/1upkeyboards/1up60rgb/rules.mk | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/1upkeyboards/1up60hse/rules.mk b/keyboards/1upkeyboards/1up60hse/rules.mk index bce414e25a5c..2ba1f9ef506f 100644 --- a/keyboards/1upkeyboards/1up60hse/rules.mk +++ b/keyboards/1upkeyboards/1up60hse/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug @@ -22,8 +22,8 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode diff --git a/keyboards/1upkeyboards/1up60rgb/rules.mk b/keyboards/1upkeyboards/1up60rgb/rules.mk index 24f737398e7e..ea5308b96058 100644 --- a/keyboards/1upkeyboards/1up60rgb/rules.mk +++ b/keyboards/1upkeyboards/1up60rgb/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug From 3d6d89966614be1e80d9957fb83743934c5eb162 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Mon, 22 Jun 2020 11:21:48 +1000 Subject: [PATCH 048/154] `qmk cformat` (#9500) --- drivers/issi/is31fl3741.c | 5 +- drivers/ws2812.h | 4 +- quantum/process_keycode/process_ucis.c | 79 +++++++++---------- .../process_keycode/process_unicode_common.c | 2 +- quantum/process_keycode/process_unicodemap.c | 2 +- quantum/rgb_matrix_drivers.c | 6 +- 6 files changed, 47 insertions(+), 51 deletions(-) diff --git a/drivers/issi/is31fl3741.c b/drivers/issi/is31fl3741.c index 45d2b4099098..ab4b31465b00 100644 --- a/drivers/issi/is31fl3741.c +++ b/drivers/issi/is31fl3741.c @@ -24,7 +24,6 @@ #include "i2c_master.h" #include "progmem.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: @@ -178,9 +177,9 @@ void IS31FL3741_init(uint8_t addr) { // Set Pull up & Down for SWx CSy IS31FL3741_write_register(addr, ISSI_REG_PULLDOWNUP, 0x77); -// IS31FL3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF); + // IS31FL3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF); -// Wait 10ms to ensure the device has woken up. + // Wait 10ms to ensure the device has woken up. wait_ms(10); } diff --git a/drivers/ws2812.h b/drivers/ws2812.h index 370b14f3e8f1..f179fcb0ef5a 100644 --- a/drivers/ws2812.h +++ b/drivers/ws2812.h @@ -18,12 +18,12 @@ #include "quantum/color.h" /* - * Older WS2812s can handle a reset time (TRST) of 50us, but recent + * Older WS2812s can handle a reset time (TRST) of 50us, but recent * component revisions require a minimum of 280us. */ #if !defined(WS2812_TRST_US) -#define WS2812_TRST_US 280 +# define WS2812_TRST_US 280 #endif /* User Interface diff --git a/quantum/process_keycode/process_ucis.c b/quantum/process_keycode/process_ucis.c index 2541d6eb2612..12b0aba9bfea 100644 --- a/quantum/process_keycode/process_ucis.c +++ b/quantum/process_keycode/process_ucis.c @@ -72,8 +72,7 @@ bool process_ucis(uint16_t keycode, keyrecord_t *record) { return true; } - bool special = keycode == KC_SPC || keycode == KC_ENT || - keycode == KC_ESC || keycode == KC_BSPC; + bool special = keycode == KC_SPC || keycode == KC_ENT || keycode == KC_ESC || keycode == KC_BSPC; if (qk_ucis_state.count >= UCIS_MAX_SYMBOL_LENGTH && !special) { return false; } @@ -82,49 +81,49 @@ bool process_ucis(uint16_t keycode, keyrecord_t *record) { qk_ucis_state.count++; switch (keycode) { - case KC_BSPC: - if (qk_ucis_state.count >= 2) { - qk_ucis_state.count -= 2; - return true; - } else { - qk_ucis_state.count--; - return false; - } + case KC_BSPC: + if (qk_ucis_state.count >= 2) { + qk_ucis_state.count -= 2; + return true; + } else { + qk_ucis_state.count--; + return false; + } - case KC_SPC: - case KC_ENT: - case KC_ESC: - for (uint8_t i = 0; i < qk_ucis_state.count; i++) { - register_code(KC_BSPC); - unregister_code(KC_BSPC); - wait_ms(UNICODE_TYPE_DELAY); - } + case KC_SPC: + case KC_ENT: + case KC_ESC: + for (uint8_t i = 0; i < qk_ucis_state.count; i++) { + register_code(KC_BSPC); + unregister_code(KC_BSPC); + wait_ms(UNICODE_TYPE_DELAY); + } - if (keycode == KC_ESC) { - qk_ucis_state.in_progress = false; - qk_ucis_cancel(); - return false; - } + if (keycode == KC_ESC) { + qk_ucis_state.in_progress = false; + qk_ucis_cancel(); + return false; + } - uint8_t i; - bool symbol_found = false; - for (i = 0; ucis_symbol_table[i].symbol; i++) { - if (is_uni_seq(ucis_symbol_table[i].symbol)) { - symbol_found = true; - register_ucis(ucis_symbol_table[i].code_points); - break; + uint8_t i; + bool symbol_found = false; + for (i = 0; ucis_symbol_table[i].symbol; i++) { + if (is_uni_seq(ucis_symbol_table[i].symbol)) { + symbol_found = true; + register_ucis(ucis_symbol_table[i].code_points); + break; + } + } + if (symbol_found) { + qk_ucis_success(i); + } else { + qk_ucis_symbol_fallback(); } - } - if (symbol_found) { - qk_ucis_success(i); - } else { - qk_ucis_symbol_fallback(); - } - qk_ucis_state.in_progress = false; - return false; + qk_ucis_state.in_progress = false; + return false; - default: - return true; + default: + return true; } } diff --git a/quantum/process_keycode/process_unicode_common.c b/quantum/process_keycode/process_unicode_common.c index bea34c31eab7..84c44d987499 100644 --- a/quantum/process_keycode/process_unicode_common.c +++ b/quantum/process_keycode/process_unicode_common.c @@ -257,7 +257,7 @@ void send_unicode_string(const char *str) { while (*str) { int32_t code_point = 0; - str = decode_utf8(str, &code_point); + str = decode_utf8(str, &code_point); if (code_point >= 0) { register_unicode(code_point); diff --git a/quantum/process_keycode/process_unicodemap.c b/quantum/process_keycode/process_unicodemap.c index 789a90445bb2..fcf676c24e7c 100644 --- a/quantum/process_keycode/process_unicodemap.c +++ b/quantum/process_keycode/process_unicodemap.c @@ -22,7 +22,7 @@ __attribute__((weak)) uint16_t unicodemap_index(uint16_t keycode) { uint16_t index = keycode - QK_UNICODEMAP_PAIR; bool shift = unicode_saved_mods & MOD_MASK_SHIFT; - bool caps = IS_HOST_LED_ON(USB_LED_CAPS_LOCK); + bool caps = IS_HOST_LED_ON(USB_LED_CAPS_LOCK); if (shift ^ caps) { index >>= 7; } diff --git a/quantum/rgb_matrix_drivers.c b/quantum/rgb_matrix_drivers.c index 22259360868e..37bc20ef5375 100644 --- a/quantum/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix_drivers.c @@ -23,7 +23,7 @@ * be here if shared between boards. */ -#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3737) || defined(IS31FL3741) +#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3737) || defined(IS31FL3741) # include "i2c_master.h" @@ -100,9 +100,7 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color_all = IS31FL3737_set_color_all, }; # else -static void flush(void) { - IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, DRIVER_ADDR_2); -} +static void flush(void) { IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, DRIVER_ADDR_2); } const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, From 0b09189087c580bc8d3aa2bd529a08c7633d3e2b Mon Sep 17 00:00:00 2001 From: Paul Ewers Date: Sun, 21 Jun 2020 23:11:10 -0700 Subject: [PATCH 049/154] [Keymap] New custom 'super alt' keymap for the Drop ALT (#9385) * New custom 'super alt' keymap for the Drop ALT * Improvements to 'super alt' keymap based on PR feedback * Fix flickering LED caps lock bug * Code cleanup from PR feedback * Minor keymap layout cleanup --- .../massdrop/alt/keymaps/ewersp/README.md | 30 +++ .../massdrop/alt/keymaps/ewersp/config.h | 3 + .../massdrop/alt/keymaps/ewersp/keymap.c | 196 ++++++++++++++++++ 3 files changed, 229 insertions(+) create mode 100644 keyboards/massdrop/alt/keymaps/ewersp/README.md create mode 100644 keyboards/massdrop/alt/keymaps/ewersp/config.h create mode 100644 keyboards/massdrop/alt/keymaps/ewersp/keymap.c diff --git a/keyboards/massdrop/alt/keymaps/ewersp/README.md b/keyboards/massdrop/alt/keymaps/ewersp/README.md new file mode 100644 index 000000000000..d2e691a9ef51 --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/ewersp/README.md @@ -0,0 +1,30 @@ +## Greetings, Traveler! + +This layout is for the [Massdrop ALT Keyboard](https://drop.com/buy/massdrop-alt-mechanical-keyboard) and targets Windows machines. + +This keymap is very similar to the default keymap for the Drop ALT, but it overloads the left alt key to behave like an additional 'Fn' key while keeping the functionality of the alt key intact. + +### For example: +``` +LeftAlt + 1...N -> F1...FN +LeftAlt + L/R Arrows -> Home/End +LeftAlt + Home -> End +LeftAlt + Backspace -> Delete +LeftAlt + Esc -> Backtick (`) +``` + +The novel part of this keymap is that it **preserves the default functionality** of the left alt key, so ```'alt + tab', 'ctrl + alt + del', 'alt + f4'```, etc. all work as expected without using any janky timers. + +Everything also works with other modifier keys, so ```'alt + L/R' and 'alt + shift + L/R'``` work great for text manipulation to select lines. + +This **'super alt'** keymap will feel very familiar for anyone **coming from macOS** since the Windows alt key is in the same position as CMD on macOS keyboards. + +And finally, the original alt key functionality can be toggled at any time by pressing **```'Fn + period'```** so even if you don't like it, you can turn it off. + +This keymap was based on the 'default' Drop ALT keymap (and _not_ 'default_md') which means it supports all the fancy QMK RGB patterns, and isn't limited to the stock options that come with the board. + +It's also worth noting that this keymap fixes an outstanding issue where the caps lock LED flickers when the RGB mode is keylight or underglow. I could not find a general purpose fix, but the one included here works quite well. + +If you have any questions, feel free to reach out to me at: ewersp [at] gmail [dot] com. + +Enjoy! **<3** diff --git a/keyboards/massdrop/alt/keymaps/ewersp/config.h b/keyboards/massdrop/alt/keymaps/ewersp/config.h new file mode 100644 index 000000000000..1c801d7e3c1c --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/ewersp/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define FORCE_NKRO diff --git a/keyboards/massdrop/alt/keymaps/ewersp/keymap.c b/keyboards/massdrop/alt/keymaps/ewersp/keymap.c new file mode 100644 index 000000000000..483ea3cfb2a1 --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/ewersp/keymap.c @@ -0,0 +1,196 @@ +#include QMK_KEYBOARD_H + +enum alt_keycodes { + U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active + U_T_AGCR, //USB Toggle Automatic GCR control + DBG_TOG, //DEBUG Toggle On / Off + DBG_MTRX, //DEBUG Toggle Matrix Prints + DBG_KBD, //DEBUG Toggle Keyboard Prints + DBG_MOU, //DEBUG Toggle Mouse Prints + MD_BOOT, //Restart into bootloader after hold timeout + ALT_DEL, //Added to map left alt + backspace to delete +}; + +// Friendly layer names +enum alt_layers { + DEF = 0, + ALT, + FUNC, + SUPR +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [DEF] = 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_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_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, MO(SUPR), KC_SPC, KC_RALT, MO(FUNC),KC_LEFT, KC_DOWN, KC_RGHT + ), + [ALT] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______ + ), + [FUNC] = 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_MUTE, + _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END, + _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, TG(ALT), _______, _______, KC_PGUP, KC_VOLD, + _______, _______, KC_LALT, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + [SUPR] = 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, ALT_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_HOME, _______, KC_END + ) +}; + +// If the super alt layer is the active layer +bool super_alt_layer_active = false; + +// If we need to unregister alt when leaving the super alt layer +bool need_to_unregister_alt = false; + +#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)) +#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL)) +#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT)) + +// Taken from 'g_led_config' in config_led.c +#define CAPS_LOCK_LED_ID 30 + +// This runs every matrix scan (every 'frame') +void rgb_matrix_indicators_user(void) { + led_flags_t flags = rgb_matrix_get_flags(); + + // If we're in either keylight or underglow modes (but not both simultaneously) + if (HAS_FLAGS(flags, LED_FLAG_KEYLIGHT) != HAS_FLAGS(flags, LED_FLAG_UNDERGLOW)) { + + // This fixes a bug where the caps lock LED flickers when toggled in either keylight or underglow modes + if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { + rgb_matrix_set_color(CAPS_LOCK_LED_ID, RGB_WHITE); + } else { + rgb_matrix_set_color(CAPS_LOCK_LED_ID, 0, 0, 0); + } + } +} + +// This runs code every time that the layers get changed +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case DEF: + // When returning to the default layer, check if we need to unregister the left alt key + if (super_alt_layer_active && need_to_unregister_alt) { + unregister_code(KC_LALT); + } + + super_alt_layer_active = false; + need_to_unregister_alt = false; + break; + case SUPR: + super_alt_layer_active = true; + break; + } + return state; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint32_t key_timer; + + switch (keycode) { + // These are the keys we want to 'fall though' and behave as usual when pressed with the alt modifier + case KC_A ... KC_Z: + case KC_TAB: + case KC_DEL: + case KC_UP: + case KC_DOWN: + case MO(FUNC): + if (super_alt_layer_active && record->event.pressed) { + // Only activate the alt modifier for the first key press + if ((get_mods() & MOD_BIT(KC_LALT)) == false) { + register_code(KC_LALT); + need_to_unregister_alt = true; + } + } + // We still want to process the keycode normally + return true; + case ALT_DEL: + if (record->event.pressed) { + register_code(KC_DEL); + } else { + unregister_code(KC_DEL); + } + return false; + case U_T_AUTO: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode"); + } + return false; + case U_T_AGCR: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode"); + } + return false; + case DBG_TOG: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode"); + } + return false; + case DBG_MTRX: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix"); + } + return false; + case DBG_KBD: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard"); + } + return false; + case DBG_MOU: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse"); + } + return false; + case MD_BOOT: + if (record->event.pressed) { + key_timer = timer_read32(); + } else { + if (timer_elapsed32(key_timer) >= 500) { + reset_keyboard(); + } + } + return false; + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case LED_FLAG_KEYLIGHT: { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case LED_FLAG_UNDERGLOW: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + default: + return true; // Process all other keycodes normally + } +} From 82dc8faaf30a6b77ec715852c3841fde087b6b07 Mon Sep 17 00:00:00 2001 From: AlexOConnorHub <43659595+AlexOConnorHub@users.noreply.github.com> Date: Mon, 22 Jun 2020 03:43:08 -0400 Subject: [PATCH 050/154] Fixing MIDI for ARM without NKRO enabled (#9466) --- tmk_core/protocol/midi/qmk_midi.h | 1 + 1 file changed, 1 insertion(+) diff --git a/tmk_core/protocol/midi/qmk_midi.h b/tmk_core/protocol/midi/qmk_midi.h index 0a348d5fde64..819087a405fe 100644 --- a/tmk_core/protocol/midi/qmk_midi.h +++ b/tmk_core/protocol/midi/qmk_midi.h @@ -2,6 +2,7 @@ #ifdef MIDI_ENABLE # include "midi.h" +# include extern MidiDevice midi_device; void setup_midi(void); void send_midi_packet(MIDI_EventPacket_t* event); From 98642ca02878741531105bd879c0d61110198b62 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 22 Jun 2020 01:38:58 -0700 Subject: [PATCH 051/154] Improve keycode handling for RGB (#7677) Co-authored-by: drashna Co-authored-by: noroadsleft <18669334+noroadsleft@users.noreply.github.com> --- docs/feature_rgb_matrix.md | 11 +++- docs/feature_rgblight.md | 4 ++ quantum/process_keycode/process_rgb.c | 85 ++++++++++++++++++++++++--- 3 files changed, 91 insertions(+), 9 deletions(-) diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index a4f434cbd925..9604bdcc8982 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -186,8 +186,16 @@ All RGB keycodes are currently shared with the RGBLIGHT system: |`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held | |`RGB_SPI` | |Increase effect speed (does not support eeprom yet), decrease speed when Shift is held| |`RGB_SPD` | |Decrease effect speed (does not support eeprom yet), increase speed when Shift is held| +|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode | +|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode | +|`RGB_MODE_RAINBOW` |`RGB_M_R` |Full gradient scrolling left to right (uses the `RGB_MATRIX_CYCLE_LEFT_RIGHT` mode) | +|`RGB_MODE_SWIRL` |`RGB_M_SW`|Full gradient spinning pinwheel around center of keyboard (uses `RGB_MATRIX_CYCLE_PINWHEEL` mode) | -* `RGB_MODE_*` keycodes will generally work, but are not currently mapped to the correct effects for the RGB Matrix system +* `RGB_MODE_*` keycodes will generally work, but not all of the modes are currently mapped to the correct effects for the RGB Matrix system. + +`RGB_MODE_PLAIN`, `RGB_MODE_BREATHE`, `RGB_MODE_RAINBOW`, and `RGB_MATRIX_SWIRL` are the only ones that are mapped properly. The rest don't have a direct equivalent, and are not mapped. + +!> By default, if you have both the [RGB Light](feature_rgblight.md) and the RGB Matrix feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature. ## RGB Matrix Effects :id=rgb-matrix-effects @@ -385,6 +393,7 @@ These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blo #define RGB_MATRIX_STARTUP_SAT 255 // Sets the default saturation value, if none has been set #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set #define RGB_MATRIX_STARTUP_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) ``` ## EEPROM storage :id=eeprom-storage diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 5921e9941a0e..a81b50e828a9 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -64,6 +64,9 @@ Changing the **Value** sets the overall brightness.
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode | |`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode | +!> By default, if you have both the RGB Light and the [RGB Matrix](feature_rgb_matrix.md) feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature. + + ## Configuration Your RGB lighting can be configured by placing these `#define`s in your `config.h`: @@ -76,6 +79,7 @@ Your RGB lighting can be configured by placing these `#define`s in your `config. |`RGBLIGHT_LIMIT_VAL` |`255` |The maximum brightness level | |`RGBLIGHT_SLEEP` |*Not defined*|If defined, the RGB lighting will be switched off when the host goes to sleep| |`RGBLIGHT_SPLIT` |*Not defined*|If defined, synchronization functionality for split keyboards is added| +|`RGBLIGHT_DISABLE_KEYCODES`|*not defined*|If defined, disables the ability to control RGB Light from the keycodes. You must use code functions to control the feature| ## Effects and Animations diff --git a/quantum/process_keycode/process_rgb.c b/quantum/process_keycode/process_rgb.c index 21164b8f9fc6..a1e46e03483f 100644 --- a/quantum/process_keycode/process_rgb.c +++ b/quantum/process_keycode/process_rgb.c @@ -59,78 +59,147 @@ bool process_rgb(const uint16_t keycode, const keyrecord_t *record) { uint8_t shifted = get_mods() & MOD_MASK_SHIFT; switch (keycode) { case RGB_TOG: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) rgblight_toggle(); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + rgb_matrix_toggle(); +#endif return false; case RGB_MODE_FORWARD: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) handleKeycodeRGB(shifted, rgblight_step, rgblight_step_reverse); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_step, rgb_matrix_step_reverse); +#endif return false; case RGB_MODE_REVERSE: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) handleKeycodeRGB(shifted, rgblight_step_reverse, rgblight_step); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_step_reverse, rgb_matrix_step); +#endif return false; case RGB_HUI: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) handleKeycodeRGB(shifted, rgblight_increase_hue, rgblight_decrease_hue); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_increase_hue, rgb_matrix_decrease_hue); +#endif return false; case RGB_HUD: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) handleKeycodeRGB(shifted, rgblight_decrease_hue, rgblight_increase_hue); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_decrease_hue, rgb_matrix_increase_hue); +#endif return false; case RGB_SAI: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) handleKeycodeRGB(shifted, rgblight_increase_sat, rgblight_decrease_sat); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_increase_sat, rgb_matrix_decrease_sat); +#endif return false; case RGB_SAD: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) handleKeycodeRGB(shifted, rgblight_decrease_sat, rgblight_increase_sat); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_decrease_sat, rgb_matrix_increase_sat); +#endif return false; case RGB_VAI: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) handleKeycodeRGB(shifted, rgblight_increase_val, rgblight_decrease_val); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_increase_val, rgb_matrix_decrease_val); +#endif return false; case RGB_VAD: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) handleKeycodeRGB(shifted, rgblight_decrease_val, rgblight_increase_val); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_decrease_val, rgb_matrix_increase_val); +#endif return false; case RGB_SPI: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) handleKeycodeRGB(shifted, rgblight_increase_speed, rgblight_decrease_speed); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_increase_speed, rgb_matrix_decrease_speed); +#endif return false; case RGB_SPD: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) handleKeycodeRGB(shifted, rgblight_decrease_speed, rgblight_increase_speed); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + handleKeycodeRGB(shifted, rgb_matrix_decrease_speed, rgb_matrix_increase_speed); +#endif return false; case RGB_MODE_PLAIN: +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) + rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR); +#endif return false; case RGB_MODE_BREATHE: -#ifdef RGBLIGHT_EFFECT_BREATHING +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined(RGBLIGHT_EFFECT_BREATHING) handleKeycodeRGBMode(RGBLIGHT_MODE_BREATHING, RGBLIGHT_MODE_BREATHING_end); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) && !defined(DISABLE_RGB_MATRIX_BREATHING) + rgb_matrix_mode(RGB_MATRIX_BREATHING); #endif return false; case RGB_MODE_RAINBOW: -#ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined( RGBLIGHT_EFFECT_RAINBOW_MOOD) handleKeycodeRGBMode(RGBLIGHT_MODE_RAINBOW_MOOD, RGBLIGHT_MODE_RAINBOW_MOOD_end); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) && !defined(DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT) + rgb_matrix_mode(RGB_MATRIX_CYCLE_LEFT_RIGHT); #endif return false; case RGB_MODE_SWIRL: -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined( RGBLIGHT_EFFECT_RAINBOW_SWIRL) handleKeycodeRGBMode(RGBLIGHT_MODE_RAINBOW_SWIRL, RGBLIGHT_MODE_RAINBOW_SWIRL_end); +#endif +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES) && !defined(DISABLE_RGB_MATRIX_CYCLE_PINWHEEL) + rgb_matrix_mode(RGB_MATRIX_CYCLE_PINWHEEL); #endif return false; case RGB_MODE_SNAKE: -#ifdef RGBLIGHT_EFFECT_SNAKE +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined( RGBLIGHT_EFFECT_SNAKE) handleKeycodeRGBMode(RGBLIGHT_MODE_SNAKE, RGBLIGHT_MODE_SNAKE_end); #endif return false; case RGB_MODE_KNIGHT: -#ifdef RGBLIGHT_EFFECT_KNIGHT +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined( RGBLIGHT_EFFECT_KNIGHT) handleKeycodeRGBMode(RGBLIGHT_MODE_KNIGHT, RGBLIGHT_MODE_KNIGHT_end); #endif return false; case RGB_MODE_XMAS: -#ifdef RGBLIGHT_EFFECT_CHRISTMAS +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined( RGBLIGHT_EFFECT_CHRISTMAS) rgblight_mode(RGBLIGHT_MODE_CHRISTMAS); #endif return false; case RGB_MODE_GRADIENT: -#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined( RGBLIGHT_EFFECT_STATIC_GRADIENT) handleKeycodeRGBMode(RGBLIGHT_MODE_STATIC_GRADIENT, RGBLIGHT_MODE_STATIC_GRADIENT_end); #endif return false; case RGB_MODE_RGBTEST: -#ifdef RGBLIGHT_EFFECT_RGB_TEST +#if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) && defined( RGBLIGHT_EFFECT_RGB_TEST) rgblight_mode(RGBLIGHT_MODE_RGB_TEST); #endif return false; From 4b13c4957844dfeca3c72c3c8782708081fc22ed Mon Sep 17 00:00:00 2001 From: LucW Date: Mon, 22 Jun 2020 16:45:47 +0800 Subject: [PATCH 052/154] user keymaps for ergodox_ez/dvorak_42_key / atreus/dvorak_42_key (#9429) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- .../atreus/keymaps/dvorak_42_key/keymap.c | 30 +++- .../ergodox_ez/keymaps/dvorak_42_key/keymap.c | 164 +++++++++--------- 2 files changed, 104 insertions(+), 90 deletions(-) diff --git a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c b/keyboards/atreus/keymaps/dvorak_42_key/keymap.c index 0fda245e2ee5..3f769494494f 100644 --- a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c +++ b/keyboards/atreus/keymaps/dvorak_42_key/keymap.c @@ -23,6 +23,7 @@ #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) enum custom_keycodes { PLACEHOLDER = SAFE_RANGE, // can always be here @@ -35,13 +36,16 @@ enum custom_keycodes { CLOUD9_GOTO_LINE, CLOUD9_NAVIGATE, + // Windows 10 macros + W10_TASKVIEW, + W10_WORKSPACE_LEFT, + W10_WORKSPACE_RIGHT, + }; // building instructions: // make atreus:dvorak_42_key -// flashing instructions: -// avrdude -p atmega32u4 -c avr109 -U flash:w:atreus_dvorak_42_key.hex -P COM7 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT( @@ -55,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_PGDOWN, - AS_CLOSETOOLWINDOW, AS_GO_DECLARATION, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE) + 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) ), [KEYSEL] = LAYOUT( @@ -73,10 +77,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [BROWSER_CONTROL] = LAYOUT( - MEH(KC_0), KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, MEH(KC_9), - MEH(KC_1), 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_2), MEH(KC_3), MEH(KC_4), MEH(KC_5), 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), RSFT(RCTL(KC_TAB)), KC_TRNS, KC_TRNS, KC_TRNS + MEH(KC_0), KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, MEH(KC_9), + MEH(KC_1), 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_2), 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 ), }; @@ -108,9 +112,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING(SS_LCTRL("e")); return true; break; + 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/ergodox_ez/keymaps/dvorak_42_key/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c index dc18edac8f23..22b8a9b9e0c9 100644 --- a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c +++ b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c @@ -50,30 +50,23 @@ enum custom_keycodes { SHELL_EXPAND_OE_LOGPATTERN, SHELL_EXPAND_OE_TRANPATTERN, - // Cloud9 macros - CLOUD9_TAB_LEFT, - CLOUD9_TAB_RIGHT, - CLOUD9_TAB_CLOSE, - CLOUD9_GOTO_SYMBOL, - CLOUD9_GOTO_LINE, - CLOUD9_NAVIGATE, - // Windows 10 macros, WINDOWS10_WORKSPACE_LEFT, WINDOWS10_WORKSPACE_RIGHT, + WINDOWS10_TASK_VIEW }; #define BASE 0 // base dvorak layer -#define BASE_ALTERNATE 1 // base dvorak layer, with different layer toggling -#define KEYNAV 2 // arrow navigation (right hand) -#define KEYSEL 3 // arrow navigation + shift (allow text selection) -#define SHELL_NAV 4 // bash shortcuts -#define SHELL_SCREEN 5 // linux screen shortcuts -#define SCREEN_NAV 6 // navigate between linux screen tabs -#define BROWSER_CONTROL 7 // control browser and mouse -#define COMBINED 8 // combined numbers and symbols layer -#define ANDROID_STUDIO 9 +#define KEYNAV 1 // arrow navigation (right hand) +#define KEYSEL 2 // arrow navigation + shift (allow text selection) +#define SHELL_NAV 3 // bash shortcuts +#define SHELL_SCREEN 4 // linux screen shortcuts +#define SCREEN_NAV 5 // navigate between linux screen tabs +#define BROWSER_CONTROL 6 // control browser and mouse +#define COMBINED 7 // combined numbers and symbols layer +#define ANDROID_STUDIO 8 // android studio specific layer +#define VSCODE 9 // visual studio code specific layer // macros @@ -117,6 +110,34 @@ enum custom_keycodes { #define AS_CLOSETAB LCTL(KC_F4) #define AS_CLOSETOOLWINDOW LCTL(LSFT(KC_F4)) +// visual studio code shortcuts +#define VS_FILE LCTL(KC_P) +#define VS_LINE LCTL(KC_G) +#define VS_SYMBOLEDITOR LCTL(LSFT(KC_O)) +#define VS_DEFINITION KC_F12 +#define VS_IMPLEMENTATION LCTL(KC_F12) +#define VS_REFERENCES LSFT(KC_F12) +#define VS_BACK LALT(KC_LEFT) +#define VS_BRACKET LCTL(LSFT(KC_BSLS)) +#define VS_TABLEFT LCTL(KC_PGUP) +#define VS_TABRIGHT LCTL(KC_PGDN) +#define VS_CLOSETAB LCTL(KC_W) +#define VS_CLOSEPANEL LCTL(LSFT(KC_W)) +#define VS_TERMINAL LCTL(KC_GRAVE) +#define VS_BUILD LCTL(LSFT(KC_B)) +#define VS_COMMANDS LCTL(LSFT(KC_P)) +#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_LABEL LCTL(LALT(KC_B)) + #define MACRO_SCREEN_NUM(MACRO_NAME,NUM) \ case MACRO_NAME:\ @@ -166,12 +187,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, OSL(SCREEN_NAV), KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, MEH(KC_2), OSL(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I, - OSL(SHELL_SCREEN), KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, MEH(KC_3), + OSL(SHELL_SCREEN), KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, MO(VSCODE), MEH(KC_1), OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), // left thumb cluster WINDOWS10_WORKSPACE_LEFT, WINDOWS10_WORKSPACE_RIGHT, - MEH(KC_6), + WINDOWS10_TASK_VIEW, MO(COMBINED),MO(KEYNAV), OSM(MOD_LALT), // right hand @@ -186,39 +207,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), - // alternate base layout - [BASE_ALTERNATE] = 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, - OSL(ANDROID_STUDIO),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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, 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 - ), - [KEYNAV] = LAYOUT_ergodox( // left hand - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS,KC_ESC, CLOUD9_GOTO_LINE, RCTL(KC_Z), RCTL(KC_S), MEH(KC_F10), KC_TRNS, - KC_TRNS,KC_LSFT, CLOUD9_GOTO_SYMBOL, RSFT(KC_TAB), KC_TAB, MEH(KC_A), - KC_TRNS,MEH(KC_B), CLOUD9_NAVIGATE, CLOUD9_TAB_LEFT, CLOUD9_TAB_RIGHT, CLOUD9_TAB_CLOSE, KC_TRNS, - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,KC_ESC, KC_TRNS, RCTL(KC_Z), RCTL(KC_S), KC_TRNS, KC_TRNS, + KC_TRNS,KC_LSFT, KC_TRNS, RSFT(KC_TAB), KC_TAB, KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, @@ -242,7 +237,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,MEH(KC_L), MEH(KC_M),MEH(KC_N), MEH(KC_O), MEH(KC_P), KC_TRNS,MEH(KC_Q), MEH(KC_R),MEH(KC_S), MEH(KC_T), MEH(KC_U), KC_TRNS, // bottom row - RESET,DF(BASE),DF(BASE_ALTERNATE),KC_TRNS,KC_TRNS, + RESET,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, // thumb cluster KC_TRNS,KC_TRNS, KC_TRNS, @@ -355,10 +350,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_TRNS, AS_FINDUSAGE, AS_GO_DECLARATION, AS_GO_IMPLEMENTATION, KC_TRNS, - KC_TRNS, AS_TABLEFT, AS_TABRIGHT, AS_SYMBOL, AS_CLASS, AS_BACK, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, AS_CLOSETAB, AS_CLOSETOOLWINDOW, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, AS_FINDUSAGE, AS_GO_DECLARATION, AS_GO_IMPLEMENTATION, KC_TRNS, + AS_CLOSETAB, AS_TABLEFT, AS_TABRIGHT, AS_SYMBOL, AS_CLASS, AS_BACK, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, AS_CLOSETOOLWINDOW, KC_TRNS, // bottom row KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // thumb cluster @@ -367,6 +362,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,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, + VS_CMT_LINE, VS_COPYLINEDOWN, VS_REFERENCES, VS_DEFINITION, VS_IMPLEMENTATION, VS_LINE, VS_BRACKET, + VS_CLOSETAB, VS_TABLEFT, VS_TABRIGHT, VS_SYMBOLEDITOR, VS_FILE, VS_BACK, + VS_CMT_BLOCK, KC_TRNS, VS_BM_PREV, VS_BM_NEXT, VS_BM_LIST, VS_BM_LISTALL, VS_BM_TOGGLE, + // bottom row + VS_COMMANDS, VS_BUILD, VS_TERMINAL, VS_CLOSEPANEL, VS_BM_LABEL, + // thumb cluster + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, VS_DEL_LINE, KC_TRNS + ), + [COMBINED] = LAYOUT_ergodox( // left hand @@ -407,10 +428,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 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, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), KC_MS_WH_DOWN, LALT(KC_LEFT), 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 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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) @@ -623,31 +644,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING(" | dumptlog - "); return true; break; - // Cloud9 macros - case CLOUD9_TAB_LEFT: - SEND_STRING(SS_LCTRL("[")); - return true; - break; - case CLOUD9_TAB_RIGHT: - SEND_STRING(SS_LCTRL("]")); - return true; - break; - case CLOUD9_TAB_CLOSE: - SEND_STRING(SS_LALT("w")); - return true; - break; - case CLOUD9_GOTO_SYMBOL: - SEND_STRING(SS_LSFT(SS_LCTRL("e"))); - return true; - break; - case CLOUD9_GOTO_LINE: - SEND_STRING(SS_LCTRL("g")); - return true; - break; - case CLOUD9_NAVIGATE: - SEND_STRING(SS_LCTRL("e")); - return true; - break; case WINDOWS10_WORKSPACE_LEFT: SEND_STRING(SS_LGUI(SS_LCTRL(SS_TAP(X_LEFT)))); return true; @@ -655,6 +651,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case WINDOWS10_WORKSPACE_RIGHT: SEND_STRING(SS_LGUI(SS_LCTRL(SS_TAP(X_RIGHT)))); break; + case WINDOWS10_TASK_VIEW: + SEND_STRING(SS_LGUI(SS_TAP(X_TAB))); + break; } } @@ -686,6 +685,7 @@ void matrix_scan_user(void) { case KEYNAV: case KEYSEL: case SCREEN_NAV: + case VSCODE: ergodox_right_led_3_on(); break; case BROWSER_CONTROL: From 5f06fce2c5c003cae0cba88c5f152fbff4e072f6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 22 Jun 2020 18:49:47 +1000 Subject: [PATCH 053/154] Fix info.json for Uni660 (#9489) --- keyboards/sirius/uni660/rev1/info.json | 105 +++++++++++++++++-- keyboards/sirius/uni660/rev2/ansi/info.json | 107 +++++++++++++++++-- keyboards/sirius/uni660/rev2/iso/info.json | 108 ++++++++++++++++++-- 3 files changed, 300 insertions(+), 20 deletions(-) diff --git a/keyboards/sirius/uni660/rev1/info.json b/keyboards/sirius/uni660/rev1/info.json index aa6b01cdf07f..a3be1976c726 100644 --- a/keyboards/sirius/uni660/rev1/info.json +++ b/keyboards/sirius/uni660/rev1/info.json @@ -1,12 +1,105 @@ { "keyboard_name": "Uni660", - "url": "", - "maintainer": "qmk", - "width": 19, - "height": 5, + "url": "", + "maintainer": "qmk", + "width": 19, + "height": 5, "layouts": { "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.5, "y":0}, {"label":"!", "x":2.5, "y":0}, {"label":"@", "x":3.5, "y":0}, {"label":"#", "x":4.5, "y":0}, {"label":"$", "x":5.5, "y":0}, {"label":"%", "x":6.5, "y":0}, {"label":"^", "x":7.5, "y":0}, {"label":"&", "x":9.5, "y":0}, {"label":"*", "x":10.5, "y":0}, {"label":"(", "x":11.5, "y":0}, {"label":")", "x":12.5, "y":0}, {"label":"_", "x":13.5, "y":0}, {"label":"+", "x":14.5, "y":0}, {"label":"Backspace", "x":15.5, "y":0, "w":2}, {"label":"Insert", "x":18, "y":0}, {"label":"F1", "x":0, "y":1}, {"label":"Tab", "x":1.5, "y":1, "w":1.5}, {"label":"Q", "x":3, "y":1}, {"label":"W", "x":4, "y":1}, {"label":"E", "x":5, "y":1}, {"label":"R", "x":6, "y":1}, {"label":"T", "x":7, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15, "y":1}, {"label":"|", "x":16, "y":1, "w":1.5}, {"label":"Delete", "x":18, "y":1}, {"label":"F2", "x":0, "y":2}, {"label":"Caps Lock", "x":1.5, "y":2, "w":1.75}, {"label":"A", "x":3.25, "y":2}, {"label":"S", "x":4.25, "y":2}, {"label":"D", "x":5.25, "y":2}, {"label":"F", "x":6.25, "y":2}, {"label":"G", "x":7.25, "y":2}, {"label":"H", "x":9.25, "y":2}, {"label":"J", "x":10.25, "y":2}, {"label":"K", "x":11.25, "y":2}, {"label":"L", "x":12.25, "y":2}, {"label":":", "x":13.25, "y":2}, {"label":"\"", "x":14.25, "y":2}, {"label":"Enter", "x":15.25, "y":2, "w":2.25}, {"label":"F3", "x":0, "y":3}, {"label":"Shift", "x":1.5, "y":3, "w":2.25}, {"label":"Z", "x":3.75, "y":3}, {"label":"X", "x":4.75, "y":3}, {"label":"C", "x":5.75, "y":3}, {"label":"V", "x":6.75, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"N", "x":9.75, "y":3}, {"label":"M", "x":10.75, "y":3}, {"label":"<", "x":11.75, "y":3}, {"label":">", "x":12.75, "y":3}, {"label":"?", "x":13.75, "y":3}, {"label":"Shift", "x":14.75, "y":3, "w":2.25}, {"label":"Up", "x":17, "y":3}, {"label":"F4", "x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Win", "x":2.75, "y":4, "w":1.25}, {"label":"Alt", "x":4, "y":4, "w":1.25}, {"x":5.25, "y":4, "w":2.25}, {"label":"Fn", "x":7.5, "y":4}, {"x":9.5, "y":4, "w":2.75}, {"label":"Alt", "x":12.25, "y":4, "w":1.25}, {"label":"Menu", "x":13.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":14.75, "y":4, "w":1.25}, {"label":"Left", "x":16, "y":4}, {"label":"Down", "x":17, "y":4}, {"label":"Right", "x":18, "y":4}] + "layout": [ + {"x": 0, "y": 0}, + + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0}, + {"x": 14.5, "y": 0}, + {"x": 15.5, "y": 0}, + {"x": 16.5, "y": 0}, + + {"x": 18, "y": 0}, + + {"x": 0, "y": 1}, + + {"x": 1.5, "y": 1, "w": 1.5}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 12, "y": 1}, + {"x": 13, "y": 1}, + {"x": 14, "y": 1}, + {"x": 15, "y": 1}, + {"x": 16, "y": 1, "w": 1.5}, + + {"x": 18, "y": 1}, + + {"x": 0, "y": 2}, + + {"x": 1.5, "y": 2, "w": 1.75}, + {"x": 3.25, "y": 2}, + {"x": 4.25, "y": 2}, + {"x": 5.25, "y": 2}, + {"x": 6.25, "y": 2}, + {"x": 7.25, "y": 2}, + + {"x": 9.25, "y": 2}, + {"x": 10.25, "y": 2}, + {"x": 11.25, "y": 2}, + {"x": 12.25, "y": 2}, + {"x": 13.25, "y": 2}, + {"x": 14.25, "y": 2}, + {"x": 15.25, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3}, + + {"x": 1.5, "y": 3, "w": 2.25}, + {"x": 3.75, "y": 3}, + {"x": 4.75, "y": 3}, + {"x": 5.75, "y": 3}, + {"x": 6.75, "y": 3}, + {"x": 7.75, "y": 3}, + + {"x": 9.75, "y": 3}, + {"x": 10.75, "y": 3}, + {"x": 11.75, "y": 3}, + {"x": 12.75, "y": 3}, + {"x": 13.75, "y": 3}, + {"x": 14.75, "y": 3, "w": 2.25}, + + {"x": 17, "y": 3}, + + {"x": 0, "y": 4}, + + {"x": 1.5, "y": 4, "w": 1.25}, + {"x": 2.75, "y": 4, "w": 1.25}, + {"x": 4, "y": 4, "w": 1.25}, + {"x": 5.25, "y": 4, "w": 2.25}, + {"x": 7.5, "y": 4}, + + {"x": 9.5, "y": 4, "w": 2.75}, + {"x": 12.25, "y": 4, "w": 1.25}, + {"x": 13.5, "y": 4, "w": 1.25}, + {"x": 14.75, "y": 4, "w": 1.25}, + + {"x": 16, "y": 4}, + {"x": 17, "y": 4}, + {"x": 18, "y": 4} + ] } } -} \ No newline at end of file +} diff --git a/keyboards/sirius/uni660/rev2/ansi/info.json b/keyboards/sirius/uni660/rev2/ansi/info.json index 08d21d07755d..24050961cd0c 100644 --- a/keyboards/sirius/uni660/rev2/ansi/info.json +++ b/keyboards/sirius/uni660/rev2/ansi/info.json @@ -1,12 +1,105 @@ { - "keyboard_name": "Uni660", - "url": "", - "maintainer": "qmk", - "width": 19, - "height": 5, + "keyboard_name": "Uni660", + "url": "", + "maintainer": "qmk", + "width": 19, + "height": 5, "layouts": { "LAYOUT_ansi": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.5, "y":0}, {"label":"!", "x":2.5, "y":0}, {"label":"@", "x":3.5, "y":0}, {"label":"#", "x":4.5, "y":0}, {"label":"$", "x":5.5, "y":0}, {"label":"%", "x":6.5, "y":0}, {"label":"^", "x":7.5, "y":0}, {"label":"&", "x":9.5, "y":0}, {"label":"*", "x":10.5, "y":0}, {"label":"(", "x":11.5, "y":0}, {"label":")", "x":12.5, "y":0}, {"label":"_", "x":13.5, "y":0}, {"label":"+", "x":14.5, "y":0}, {"label":"Backspace", "x":15.5, "y":0, "w":2}, {"label":"Insert", "x":18, "y":0}, {"label":"F1", "x":0, "y":1}, {"label":"Tab", "x":1.5, "y":1, "w":1.5}, {"label":"Q", "x":3, "y":1}, {"label":"W", "x":4, "y":1}, {"label":"E", "x":5, "y":1}, {"label":"R", "x":6, "y":1}, {"label":"T", "x":7, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15, "y":1}, {"label":"|", "x":16, "y":1, "w":1.5}, {"label":"Delete", "x":18, "y":1}, {"label":"F2", "x":0, "y":2}, {"label":"Caps Lock", "x":1.5, "y":2, "w":1.75}, {"label":"A", "x":3.25, "y":2}, {"label":"S", "x":4.25, "y":2}, {"label":"D", "x":5.25, "y":2}, {"label":"F", "x":6.25, "y":2}, {"label":"G", "x":7.25, "y":2}, {"label":"H", "x":9.25, "y":2}, {"label":"J", "x":10.25, "y":2}, {"label":"K", "x":11.25, "y":2}, {"label":"L", "x":12.25, "y":2}, {"label":":", "x":13.25, "y":2}, {"label":"\"", "x":14.25, "y":2}, {"label":"Enter", "x":15.25, "y":2, "w":2.25}, {"label":"F3", "x":0, "y":3}, {"label":"Shift", "x":1.5, "y":3, "w":2.25}, {"label":"Z", "x":3.75, "y":3}, {"label":"X", "x":4.75, "y":3}, {"label":"C", "x":5.75, "y":3}, {"label":"V", "x":6.75, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"N", "x":9.75, "y":3}, {"label":"M", "x":10.75, "y":3}, {"label":"<", "x":11.75, "y":3}, {"label":">", "x":12.75, "y":3}, {"label":"?", "x":13.75, "y":3}, {"label":"Shift", "x":14.75, "y":3, "w":2.25}, {"label":"Up", "x":17, "y":3}, {"label":"F4", "x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Win", "x":2.75, "y":4, "w":1.25}, {"label":"Alt", "x":4, "y":4, "w":1.25}, {"x":5.25, "y":4, "w":2.25}, {"label":"Fn", "x":7.5, "y":4}, {"x":9.5, "y":4, "w":2.75}, {"label":"Alt", "x":12.25, "y":4, "w":1.25}, {"label":"Menu", "x":13.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":14.75, "y":4, "w":1.25}, {"label":"Left", "x":16, "y":4}, {"label":"Down", "x":17, "y":4}, {"label":"Right", "x":18, "y":4}] + "layout": [ + {"x": 0, "y": 0}, + + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0}, + {"x": 14.5, "y": 0}, + {"x": 15.5, "y": 0}, + {"x": 16.5, "y": 0}, + + {"x": 18, "y": 0}, + + {"x": 0, "y": 1}, + + {"x": 1.5, "y": 1, "w": 1.5}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 12, "y": 1}, + {"x": 13, "y": 1}, + {"x": 14, "y": 1}, + {"x": 15, "y": 1}, + {"x": 16, "y": 1, "w": 1.5}, + + {"x": 18, "y": 1}, + + {"x": 0, "y": 2}, + + {"x": 1.5, "y": 2, "w": 1.75}, + {"x": 3.25, "y": 2}, + {"x": 4.25, "y": 2}, + {"x": 5.25, "y": 2}, + {"x": 6.25, "y": 2}, + {"x": 7.25, "y": 2}, + + {"x": 9.25, "y": 2}, + {"x": 10.25, "y": 2}, + {"x": 11.25, "y": 2}, + {"x": 12.25, "y": 2}, + {"x": 13.25, "y": 2}, + {"x": 14.25, "y": 2}, + {"x": 15.25, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3}, + + {"x": 1.5, "y": 3, "w": 2.25}, + {"x": 3.75, "y": 3}, + {"x": 4.75, "y": 3}, + {"x": 5.75, "y": 3}, + {"x": 6.75, "y": 3}, + {"x": 7.75, "y": 3}, + + {"x": 9.75, "y": 3}, + {"x": 10.75, "y": 3}, + {"x": 11.75, "y": 3}, + {"x": 12.75, "y": 3}, + {"x": 13.75, "y": 3}, + {"x": 14.75, "y": 3, "w": 2.25}, + + {"x": 17, "y": 3}, + + {"x": 0, "y": 4}, + + {"x": 1.5, "y": 4, "w": 1.25}, + {"x": 2.75, "y": 4, "w": 1.25}, + {"x": 4, "y": 4, "w": 1.25}, + {"x": 5.25, "y": 4, "w": 2.25}, + {"x": 7.5, "y": 4}, + + {"x": 9.5, "y": 4, "w": 2.75}, + {"x": 12.25, "y": 4, "w": 1.25}, + {"x": 13.5, "y": 4, "w": 1.25}, + {"x": 14.75, "y": 4, "w": 1.25}, + + {"x": 16, "y": 4}, + {"x": 17, "y": 4}, + {"x": 18, "y": 4} + ] } } -} \ No newline at end of file +} diff --git a/keyboards/sirius/uni660/rev2/iso/info.json b/keyboards/sirius/uni660/rev2/iso/info.json index cd32c736905e..faaf217e9db0 100644 --- a/keyboards/sirius/uni660/rev2/iso/info.json +++ b/keyboards/sirius/uni660/rev2/iso/info.json @@ -1,12 +1,106 @@ { - "keyboard_name": "Uni660", - "url": "", - "maintainer": "qmk", - "width": 19, - "height": 5, + "keyboard_name": "Uni660", + "url": "", + "maintainer": "qmk", + "width": 19, + "height": 5, "layouts": { "LAYOUT_iso": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"\u00ac", "x":1.5, "y":0}, {"label":"!", "x":2.5, "y":0}, {"label":"\"", "x":3.5, "y":0}, {"label":"\u00a3", "x":4.5, "y":0}, {"label":"$", "x":5.5, "y":0}, {"label":"%", "x":6.5, "y":0}, {"label":"^", "x":7.5, "y":0}, {"label":"&", "x":9.5, "y":0}, {"label":"*", "x":10.5, "y":0}, {"label":"(", "x":11.5, "y":0}, {"label":")", "x":12.5, "y":0}, {"label":"_", "x":13.5, "y":0}, {"label":"+", "x":14.5, "y":0}, {"label":"Backspace", "x":15.5, "y":0, "w":2}, {"label":"Insert", "x":18, "y":0}, {"label":"F1", "x":0, "y":1}, {"label":"Tab", "x":1.5, "y":1, "w":1.5}, {"label":"Q", "x":3, "y":1}, {"label":"W", "x":4, "y":1}, {"label":"E", "x":5, "y":1}, {"label":"R", "x":6, "y":1}, {"label":"T", "x":7, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15, "y":1}, {"label":"Enter", "x":16.25, "y":1, "w":1.25, "h":2}, {"label":"Delete", "x":18, "y":1}, {"label":"F2", "x":0, "y":2}, {"label":"Caps Lock", "x":1.5, "y":2, "w":1.75}, {"label":"A", "x":3.25, "y":2}, {"label":"S", "x":4.25, "y":2}, {"label":"D", "x":5.25, "y":2}, {"label":"F", "x":6.25, "y":2}, {"label":"G", "x":7.25, "y":2}, {"label":"H", "x":9.25, "y":2}, {"label":"J", "x":10.25, "y":2}, {"label":"K", "x":11.25, "y":2}, {"label":"L", "x":12.25, "y":2}, {"label":":", "x":13.25, "y":2}, {"label":"@", "x":14.25, "y":2}, {"label":"~", "x":15.25, "y":2}, {"label":"F3", "x":0, "y":3}, {"label":"Shift", "x":1.5, "y":3, "w":1.25}, {"label":"|", "x":2.75, "y":3}, {"label":"Z", "x":3.75, "y":3}, {"label":"X", "x":4.75, "y":3}, {"label":"C", "x":5.75, "y":3}, {"label":"V", "x":6.75, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"N", "x":9.75, "y":3}, {"label":"M", "x":10.75, "y":3}, {"label":"<", "x":11.75, "y":3}, {"label":">", "x":12.75, "y":3}, {"label":"?", "x":13.75, "y":3}, {"label":"Shift", "x":14.75, "y":3, "w":2.25}, {"label":"Up", "x":17, "y":3}, {"label":"F4", "x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Win", "x":2.75, "y":4, "w":1.25}, {"label":"Alt", "x":4, "y":4, "w":1.25}, {"x":5.25, "y":4, "w":2.25}, {"label":"Fn", "x":7.5, "y":4}, {"x":9.5, "y":4, "w":2.75}, {"label":"Alt", "x":12.25, "y":4, "w":1.25}, {"label":"Menu", "x":13.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":14.75, "y":4, "w":1.25}, {"label":"Left", "x":16, "y":4}, {"label":"Down", "x":17, "y":4}, {"label":"Right", "x":18, "y":4}] + "layout": [ + {"x": 0, "y": 0}, + + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0}, + {"x": 14.5, "y": 0}, + {"x": 15.5, "y": 0}, + {"x": 16.5, "y": 0}, + + {"x": 18, "y": 0}, + + {"x": 0, "y": 1}, + + {"x": 1.5, "y": 1, "w": 1.5}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 12, "y": 1}, + {"x": 13, "y": 1}, + {"x": 14, "y": 1}, + {"x": 15, "y": 1}, + {"x": 16.25, "y": 1, "w": 1.25, "h": 2}, + + {"x": 18, "y": 1}, + + {"x": 0, "y": 2}, + + {"x": 1.5, "y": 2, "w": 1.75}, + {"x": 3.25, "y": 2}, + {"x": 4.25, "y": 2}, + {"x": 5.25, "y": 2}, + {"x": 6.25, "y": 2}, + {"x": 7.25, "y": 2}, + + {"x": 9.25, "y": 2}, + {"x": 10.25, "y": 2}, + {"x": 11.25, "y": 2}, + {"x": 12.25, "y": 2}, + {"x": 13.25, "y": 2}, + {"x": 14.25, "y": 2}, + {"x": 15.25, "y": 2}, + + {"x": 0, "y": 3}, + + {"x": 1.5, "y": 3, "w": 1.25}, + {"x": 2.75, "y": 3}, + {"x": 3.75, "y": 3}, + {"x": 4.75, "y": 3}, + {"x": 5.75, "y": 3}, + {"x": 6.75, "y": 3}, + {"x": 7.75, "y": 3}, + + {"x": 9.75, "y": 3}, + {"x": 10.75, "y": 3}, + {"x": 11.75, "y": 3}, + {"x": 12.75, "y": 3}, + {"x": 13.75, "y": 3}, + {"x": 14.75, "y": 3, "w": 2.25}, + + {"x": 17, "y": 3}, + + {"x": 0, "y": 4}, + + {"x": 1.5, "y": 4, "w": 1.25}, + {"x": 2.75, "y": 4, "w": 1.25}, + {"x": 4, "y": 4, "w": 1.25}, + {"x": 5.25, "y": 4, "w": 2.25}, + {"x": 7.5, "y": 4}, + + {"x": 9.5, "y": 4, "w": 2.75}, + {"x": 12.25, "y": 4, "w": 1.25}, + {"x": 13.5, "y": 4, "w": 1.25}, + {"x": 14.75, "y": 4, "w": 1.25}, + + {"x": 16, "y": 4}, + {"x": 17, "y": 4}, + {"x": 18, "y": 4} + ] } } -} \ No newline at end of file +} From 924573ece24589869831b7450468971c4dbe980a Mon Sep 17 00:00:00 2001 From: umi <57262844+umi-umi@users.noreply.github.com> Date: Mon, 22 Jun 2020 20:08:26 +0900 Subject: [PATCH 054/154] [Docs] Japanese translation of docs/feature_macros.md (#9137) * add feature_macros.md translation * update based on comment * update based on comment --- docs/ja/feature_macros.md | 399 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 399 insertions(+) create mode 100644 docs/ja/feature_macros.md diff --git a/docs/ja/feature_macros.md b/docs/ja/feature_macros.md new file mode 100644 index 000000000000..1204fa8ff2ea --- /dev/null +++ b/docs/ja/feature_macros.md @@ -0,0 +1,399 @@ +# マクロ + + + +マクロにより、1つのキーを押すだけで複数のキーストロークを送信することができます。QMK にはマクロを定義し使う方法が幾つかあります。これらはなんでもすることができます: よく使うフレーズの入力、コピーペースト、反復的なゲームの動き、あるいはコードを書くことさえ手助けします。 + +!> **セキュリティの注意**: マクロを使って、パスワード、クレジットカード番号、その他の機密情報のいずれも送信することが可能ですが、それは非常に悪い考えです。あなたのキーボードを手に入れた人は誰でもテキストエディタを開いてその情報にアクセスすることができます。 + +## 新しい方法: `SEND_STRING()` と `process_record_user` + +単語またはフレーズを入力するキーが欲しい時があります。最も一般的な状況のために `SEND_STRING()` を提供しています。これは文字列(つまり、文字のシーケンス)を入力します。簡単にキーコードに変換することができる全ての ASCII 文字がサポートされています (例えば、`\n\t`)。 + +以下は2キーのキーボードのための `keymap.c` の例です: + +```c +enum custom_keycodes { + QMKBEST = SAFE_RANGE, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QMKBEST: + if (record->event.pressed) { + // キーコード QMKBEST が押された時 + SEND_STRING("QMK is the best thing ever!"); + } else { + // キーコード QMKBEST が放された時 + } + break; + + } + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { + {QMKBEST, KC_ESC} + } +}; +``` + +ここで起きることは以下の通りです: +最初に他のキーコードで使用されていない範囲で新しいカスタムキーコードを定義します。 +次に、`process_record_user` 関数を使います。これはキーが押されるか放されるたびに呼び出され、カスタムキーコードがアクティブかどうかを確認します。 +アクティブな場合、`SEND_STRING` マクロ (これは C プロセッサのマクロで、QMK のマクロと混同しないでください)を介して文字列 `"QMK is the best thing ever!"` をコンピュータに送信します。 +呼び出し元に、処理したばかりのキー押下を通常通り(機能を置き換えたり変更したりしなかったので)処理し続けるよう指示するため、`true` を返します。 +最後に、最初のボタンがマクロをアクティブにし、2番目のボタンが単なるエスケープボタンになるようにキーマップを定義します。 + +複数のマクロを追加することもできます。 +以下のように、別のキーコードを追加し、switch 文に別の case ラベルを追加することで、それを行うことができます: + +```c +enum custom_keycodes { + QMKBEST = SAFE_RANGE, + QMKURL, + MY_OTHER_MACRO +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QMKBEST: + if (record->event.pressed) { + // キーコード QMKBEST が押された時 + SEND_STRING("QMK is the best thing ever!"); + } else { + // キーコード QMKBEST が放された時 + } + break; + case QMKURL: + if (record->event.pressed) { + // キーコード QMKURL が押された場合 + SEND_STRING("https://qmk.fm/\n"); + } else { + // キーコード QMKURL が放された場合 + } + break; + case MY_OTHER_MACRO: + if (record->event.pressed) { + SEND_STRING(SS_LCTL("ac")); // 全てを選択しコピーします + } + break; + } + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { + {MY_CUSTOM_MACRO, MY_OTHER_MACRO} + } +}; +``` + +### 高度なマクロ + +`process_record_user()` 関数のほかに、`post_process_record_user()` 関数があります。これは `process_record` の後に実行され、キーストロークが送信された後の処理に使用できます。これは例えば、通常のキーの前に押され、通常のキーの後で放されるキーがほしい場合に便利です。 + +この例では、通常のキー入力を変更して、キーストロークが通常送信される前に `F22` が押されるようにし、キーが放された__後にのみ__ `F22` キーを放します。 + +```c +static uint8_t f22_tracker; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_A ... KC_F21: // F22 をスキップする方法に注意してください + case KC_F23 ... KC_EXSEL: //exsel は修飾キーの直前のキーです + if (record->event.pressed) { + register_code(KC_F22); //これは F22 を押したことを送信することを意味します + f22_tracker++; + register_code(keycode); + return false; + } + break; + } + return true; +} + +void post_process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_A ... KC_F21: // F22 をスキップする方法に注意してください + case KC_F23 ... KC_EXSEL: //exsel は修飾キーの直前のキーです + if (!record->event.pressed) { + f22_tracker--; + if (!f22_tracker) { + unregister_code(KC_F22); //これは F22 を放したことを送信することを意味します + } + } + break; + } +} +``` + + +### タップ、ダウン、アップ + +`Ctrl` あるいは `Home` など、ソースコードに文字列として表記できないキーをマクロで使うこともできます。 +以下のようにラップすることで任意のコードを送信することができます: + +* `SS_TAP()` キーを押して放します。 +* `SS_DOWN()` キーを押します (ただし、放しません)。 +* `SS_UP()` キーを放します。 + +例えば: + + SEND_STRING(SS_TAP(X_HOME)); + +`KC_HOME` をタップします - プリフィックスが `X_` で `KC_` ではないことに注意してください。以下のように、他の文字列と組み合わせることもできます: + + SEND_STRING("VE"SS_TAP(X_HOME)"LO"); + +これは "VE" に続けて `KC_HOME` をタップ、そして "LO" (新しい行の場合は "LOVE" と綴る)を送信します。 + +文字列に遅延を追加することもできます: + +* `SS_DELAY(msecs)` は指定されたミリ秒だけ遅らせます。 + +例えば: + + SEND_STRING("VE" SS_DELAY(1000) SS_TAP(X_HOME) "LO"); + +これは "VE" 、1秒の遅延、`KC_HOME` をタップ、"LO" (新しい行の場合は "LOVE" と綴るが、中間に遅延がある) を送信します。 + +使用できるモッドショートカットもいくつかあります: + +* `SS_LCTL(文字列)` +* `SS_LSFT(文字列)` +* `SS_LALT(文字列)`、`SS_LOPT(文字列)` +* `SS_LGUI(文字列)`、`SS_LCMD(文字列)`、`SS_LWIN(文字列)` +* `SS_RCTL(文字列)` +* `SS_RSFT(文字列)` +* `SS_RALT(文字列)`、`SS_ROPT(文字列)`、`SS_ALGR(文字列)` +* `SS_RGUI(文字列)`、`SS_RCMD(文字列)`、`SS_RWIN(文字列)` + +これらはそれぞれの修飾キーを押し、指定された文字列を送信してから、修飾キーを解放します。 +それらは以下のように使うことができます: + + SEND_STRING(SS_LCTL("a")); + +これは、左 Control +`a` (左 Control をダウンし、`a`、左 Control をアップ)を送信します - それらは文字列(例えば `"k"`)であり、`X_K` キーコードでは無いことに注意してください。 + +### 代替キーマップ + +デフォルトでは、QWERTY レイアウトの US キーマップを想定しています; それを変更したい場合(例えば OS がソフトウェア Colemak を使う場合)、キーマップのどこかに以下を含めます: + + #include + +### メモリ内の文字列 + +何らかの理由で文字列を操作していて、(リテラル、文字列定数の代わりに)生成したばかりのものを出力する必要がある場合は、以下のように `send_string()` を使うことができます: + +```c +char my_str[4] = "ok."; +send_string(my_str); +``` + +上で定義したショートカットは `send_string()` では動作しないですが、必要に応じて別の行に分けることができます: + +```c +char my_str[4] = "ok."; +SEND_STRING("I said: "); +send_string(my_str); +SEND_STRING(".."SS_TAP(X_END)); +``` + + +## 高度なマクロ関数 + +マクロの生成に役立つ関数が幾つかあります。マクロの中にかなり高度なコードを書くことができますが、機能が複雑になりすぎる場合は、代わりにカスタムキーコードを定義することをお勧めします。マクロはシンプルにしなければなりません。 + +?> 追加の機能として、[便利な関数](ja/ref_functions.md) の中で説明される関数を使うこともできます。例えば `reset_keyboard()` によりマクロの一部としてキーボードをリセットすることができます。 + +### `record->event.pressed` + +これでスイッチが押されているか放されているかどうかをテストすることができます。以下が例です。 + +```c + if (record->event.pressed) { + // キーダウン時 + } else { + // キーアップ時 + } +``` + +### `register_code();` + +これはコンピュータに `` キーダウンイベントを送信します。例として `KC_ESC`、`KC_C`、`KC_4` や、`KC_LSFT` と `KC_LGUI` のような修飾キーなどもあります。 + +### `unregister_code();` + +`register_code` 関数と対応して、これは `` キーアップイベントをコンピュータに送信します。これを使わない場合、キーは送信されるまで押し続けられます。 + +### `tap_code();` + +これは `register_code()` を送信し、その後 `unregister_code()` を送信します。押下とリリースイベントの両方を送信する場合に便利です (押し続けるのではなく、キーを"タップ"する)。 + +タップの登録(解除)に問題がある場合、`config.h` ファイルで `#define TAP_CODE_DELAY 100` を設定することで、登録イベントと解除イベントの間に遅延を追加することができます。値はミリ秒です。 + +### `register_code16();`、`unregister_code16();`、`tap_code16();` + +これらの関数は対応する通常の関数と同様に機能しますが、修飾キーで修飾されたキーコードを使うことができます (Shift、Alt、Control、GUI を適用)。 + +例えば、修飾キーを押して(`register_code()`して)、キーコードを押す(`register_code()`する)代わりに、`register_code16(S(KC_5));` を使うことができます。 + +### `clear_keyboard();` + +これは現在押されている全ての修飾キーとキーをクリアします。 + +### `clear_mods();` + +これは現在押されている全ての修飾キーをクリアします。 + +### `clear_keyboard_but_mods();` + +これは現在押されている修飾キー以外の全てのキーをクリアします。 + +## 高度な例: + +### スーパー ALT↯TAB + +このマクロは `KC_LALT` を登録し、`KC_TAB` をタップして、1000ms 待ちます。キーが再度タップされると、別の `KC_TAB` が送信されます; タップが無い場合、`KC_LALT` が登録解除され、ウィンドウを切り替えることができます。 + +```c +bool is_alt_tab_active = false; # keymap.c の先頭付近にこれを追加します +uint16_t alt_tab_timer = 0; # すぐにそれらを使います + +enum custom_keycodes { # 素晴らしいキーコードを用意してください + ALT_TAB = SAFE_RANGE, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { # これはキーコードを利用したつまらない作業のほとんどを行います。 + case ALT_TAB: + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + } + return true; +} + +void matrix_scan_user(void) { # とても重要なタイマー + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } +} +``` + +--- + +## **(非推奨)** 古い方法: `MACRO()` と `action_get_macro` + +!> これは TMK から継承されており、更新されていません - 代わりに `SEND_STRING` と `process_record_user` を使うことをお勧めします。 + +デフォルトでは、QMK はマクロが無いことを前提としています。マクロを定義するには、`action_get_macro()` 関数を作成します。例えば: + +```c +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (record->event.pressed) { + switch(id) { + case 0: + return MACRO(D(LSFT), T(H), U(LSFT), T(I), D(LSFT), T(1), U(LSFT), END); + case 1: + return MACRO(D(LSFT), T(B), U(LSFT), T(Y), T(E), D(LSFT), T(1), U(LSFT), END); + } + } + return MACRO_NONE; +}; +``` + +これは割り当てられているキーが押された時に実行される2つのマクロを定義します。キーが放された時にそれらを実行したい場合は、if 文を変更することができます。 + + if (!record->event.pressed) { + +### マクロコマンド + +マクロは以下のコマンドを含めることができます: + +* I() はストロークの間隔をミリ秒単位で変更します。 +* D() はキーを押します。 +* U() はキーを放します。 +* T() はキーをタイプ(押して放す)します。 +* W() は待ちます (ミリ秒)。 +* END 終了マーク。 + +### マクロをキーにマッピングする + +マクロを呼び出すにはキーマップ内で `M()` 関数を使います。例えば、2キーのキーボードのキーマップは以下の通りです: + +```c +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + M(0), M(1) + ), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (record->event.pressed) { + switch(id) { + case 0: + return MACRO(D(LSFT), T(H), U(LSFT), T(I), D(LSFT), T(1), U(LSFT), END); + case 1: + return MACRO(D(LSFT), T(B), U(LSFT), T(Y), T(E), D(LSFT), T(1), U(LSFT), END); + } + } + return MACRO_NONE; +}; +``` + +左側のキーを押すと、"Hi!" を入力し、右側のキーを押すと "Bye!" を入力します。 + +### マクロに名前を付ける + +キーマップを読みやすくしながらキーマップから参照したいマクロがたくさんある場合は、ファイルの先頭で `#define` を使って名前を付けることができます。 + +```c +#define M_HI M(0) +#define M_BYE M(1) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + M_HI, M_BYE + ), +}; +``` + + +## 高度な例: + +### 単一キーのコピーと貼り付け + +この例は、押された時に `Ctrl-C` を送信し、放される時に `Ctrl-V` を送信するマクロを定義します。 + +```c +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch(id) { + case 0: { + if (record->event.pressed) { + return MACRO( D(LCTL), T(C), U(LCTL), END ); + } else { + return MACRO( D(LCTL), T(V), U(LCTL), END ); + } + break; + } + } + return MACRO_NONE; +}; +``` From c7cc20918b0048184d489d691ba60ce9316c15bb Mon Sep 17 00:00:00 2001 From: umi <57262844+umi-umi@users.noreply.github.com> Date: Mon, 22 Jun 2020 20:11:49 +0900 Subject: [PATCH 055/154] [Docs] Japanese translation of docs/feature_userspace.md (#9253) * add feature_userspace.md translation * update based on comment --- docs/ja/feature_userspace.md | 260 +++++++++++++++++++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 docs/ja/feature_userspace.md diff --git a/docs/ja/feature_userspace.md b/docs/ja/feature_userspace.md new file mode 100644 index 000000000000..69381324717e --- /dev/null +++ b/docs/ja/feature_userspace.md @@ -0,0 +1,260 @@ +# ユーザスペース: キーマップ間でのコードの共有 + + + +似たキーマップを複数のキーボードで使う場合、それらの間でコードを共有できるという利点が得られることがあります。`users/`に以下の構造でキーマップ(理想的には GitHub のユーザ名、``)と同じ名前の独自のフォルダを作成します: + +* `/users//` (パスに自動的に追加されます) + * `readme.md` (オプション、推奨) + * `rules.mk` (自動的に含まれます) + * `config.h` (自動的に含まれます) + * `.h` (オプション) + * `.c` (オプション) + * `cool_rgb_stuff.c` (オプション) + * `cool_rgb_stuff.h` (オプション) + + +以下のように、`` という名前のキーマップをビルドする時のみ、これが全て起きます: + + make planck: + +例えば、 + + make planck:jack + +は、`/users/jack/rules.mk` に加えて、パスに `/users/jack/` フォルダを含めます。 + +!> この `name` は必要に応じて[上書き](#override-default-userspace)することができます。 + +## `Rules.mk` + +`rules.mk` は自動的に処理される2つファイルのうちの1つです。これにより、コンパイル時に追加のソースファイル( `.c` など)を追加できます。 + +追加されるデフォルトのソースファイルとして `.c` を使うことを強くお勧めします。それを追加するために、以下のように `rules.mk` に SRC を追加する必要があります: + + SRC += .c + +追加のファイルも同じ方法で追加できます - ただし、``.c/.h という名前のファイルを最初に用意することをお勧めします。 + +ビルド時に `/users//rules.mk` ファイルはキーマップの `rules.mk` の_後_でインクルードされます。これにより、キーボードによっては利用できないことのある個々の QMK 機能を利用する機能をユーザスペース `rules.mk` に持つことができます。 + +例えば、RGB ライトをサポートする全てのキーボード間で RGB 制御機能を共有する場合、RGBLIGHT 機能が有効であればサポートを追加することができます: +```make +ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) + # ここにファンシーな rgb 関数のソースを含める + SRC += cool_rgb_stuff.c +endif +``` + +別のやり方として、キーマップの `rules.mk` で `define RGB_ENABLE` と定義し、以下のようにユーザスペースの `rules.mk` で変数をチェックすることができます: +```make +ifdef RGB_ENABLE + # ここにファンシーな rgb 関数のソースを含める + SRC += cool_rgb_stuff.c +endif +``` + +### デフォルトのユーザスペースの上書き :id=override-default-userspace + +デフォルトでは、使用されるユーザスペース名はキーマップ名と同じです。状況によってはこれは望ましくありません。例えば、[レイアウト](ja/feature_layouts.md)機能を使う場合、異なるキーマップに同じ名前 (例えば、ANSI および ISO) を使うことができません。レイアウトに `mylayout-ansi` や `mylayout-iso` という名前を付け、以下の行をレイアウトの `rules.mk` に追加します: + +``` +USER_NAME := mylayout +``` + +これは、基板上に物理的に異なる機能を備えた、複数の異なるキーボード(RGBライトを備えたキーボード、オーディオを備えたキーボード、LEDの数が異なる、コントローラ上の異なるPINに接続されているなど)がある場合にも役立ちます。 + +## 設定オプション (`config.h`) + +さらに、ここにある `config.h` はキーマップフォルダ内の同名のファイルと同じように処理されます。これは `.h` ファイルとは別個に処理されます。 + +この理由は、`.h` は (`#define TAPPING_TERM 100` などのような)設定を追加する時には追加されず、`config.h` ファイル内の `` ファイルを含めるとコンパイルの問題を引き起こすからです。 + +!>`config.h` は[設定オプション](ja/config_options.md)のために使い、`.h` ファイルはユーザあるいは(レイヤーあるいはキーコードのための enum のような)キーマップ固有の設定のために使うべきです + + +## Readme (`readme.md`) + +作者情報 (あなたの名前、GitHub ユーザ名、eメール)およびオプションで[GPL 互換のライセンス](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses)を含めてください。 + +以下をテンプレートとして使うことができます: +``` +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 . +``` + +年、名前、eメールおよび GitHub ユーザ名をあなたの情報に置き換えます。 + +さらに、コードを他の人に共有したい場合、ここはコードを文章化するのに適した場所です。 + +## 特定のキーマップをサポートする全てのキーボードをビルドする + +1つのコマンドで全てのキーマップのビルドを確認したいですか?以下で実行することができます: + + make all: + +例えば、 + + make all:jack + +これは、[_プルリクエスト_](https://github.com/qmk/qmk_firmware/pulls) を準備する時に全てが正常にコンパイルされることを確認したい場合に最適です。 + +## 例 + +簡単な例については、[`/users/_example/`](https://github.com/qmk/qmk_firmware/tree/master/users/drashna) を調べてください。 +より複雑な例については、[`/users/drashna/`](https://github.com/qmk/qmk_firmware/tree/master/users/drashna) のユーザスペースを調べてください。 + + +### カスタマイズされた関数 :id=customized-functions + +QMK には、[`_quantum`、`_kb` および `_user` バージョン](ja/custom_quantum_functions.md#a-word-on-core-vs-keyboards-vs-keymap)を持つ使用可能な[関数](custom_quantum_functions.md)が山ほどあります。 ほとんどの場合、これらの関数のユーザバージョンを使う必要があります。しかし問題はそれらをユーザスペースで使う場合、キーマップで使うことができるバージョンが無いことです。 + +しかし、実際にはキーマップバージョンのサポートを追加し、ユーザスペースとキーマップの両方で使うことができます。 + + +例えば、`layer_state_set_user()` 関数を見てみましょう。全てのキーボードで [Tri Layer State](ja/ref_functions.md#olkb-tri-layers) 機能を有効にしながら、`keymap.c` ファイルで Tri Layer 機能を保持することができます。 + +`` ファイル内で、以下を追加する必要があります: +```c +__attribute__ ((weak)) +layer_state_t layer_state_set_keymap (layer_state_t state) { + return state; +} + +layer_state_t layer_state_set_user (layer_state_t state) { + state = update_tri_layer_state(state, 2, 3, 5); + return layer_state_set_keymap (state); +} +``` +`__attribute__ ((weak))` 部分は、コンパイラにこれが `keymap.c` 内のバージョンに置き換えられるプレースホルダ関数であることを伝えます。そうすれば、`keymap.c` に追加する必要はありませんが、追加しても関数が同じ名前を持つため競合することはありません。 + +ここでの `_keymap` 部分は重要では無く、`_quantum`、`_kb` あるいは `_user` は既に使われているため、それら以外のものである必要があります。`layer_state_set_mine`、`layer_state_set_fn` などを使うことができます。 + +[`users/drashna`](https://github.com/qmk/qmk_firmware/tree/master/users/drashna) 内の [`template.c`](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/template.c) でこのリストと他の一般的な関数を見つけることができます。 + +### カスタム機能 + +ユーザスペース機能は膨大な数のキーボードをサポートすることができるため、特定の機能は有効にしたいが、他のキーボードでは有効にしたくないかもしれません。そして実際に自分のユーザスペースで有効あるいは無効にすることができる「機能」を作成することができます。 + +例えば、(スペースを節約するために)特定のキーボードでのみたくさんのマクロを利用したい場合、それらを `#ifdef MACROS_ENABLED` して「見えないように」してから、キーボードごとに有効にすることができます。これを行うには、以下を rules.mk に追加します。 +```make +ifeq ($(strip $(MACROS_ENABLED)), yes) + OPT_DEFS += -DMACROS_ENABLED +endif +``` +`OPT_DEFS` 設定は `MACROS_ENABLED` がキーボード用に定義されるようにし(名前の前に `-D` があることに注意してください)、c/h ファイルで状態をチェックするために `#ifdef MACROS_ENABLED` を使うことができ、それに基づいてそのコードを処理します。 + +次にキーマップの `rules.mk` に `MACROS_ENABLED = yes` を追加し、ユーザスペースでこの機能とコードを有効にします。 + +そして `process_record_user` 関数の中で、以下のようなことを行います: +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { +#ifdef MACROS_ENABLED + case MACRO1: + if (!record->event.pressed) { + SEND_STRING("This is macro 1!"); + } + break; + case MACRO2: + if (!record->event.pressed) { + SEND_STRING("This is macro 2!"); + } + break; +#endif + } + return true; +} +``` + + +### 結合マクロ + +全てのキーマップについてユーザスペースにマクロやそのほかの関数を統合したい場合は、そうすることができます。これは上記の[カスタマイズ関数](#customized-functions)の例に基づいています。これは異なるキーボード間で共有される大量のマクロを維持し、キーボード固有のマクロも可能です。 + +最初に、全ての `keymap.c` ファイルを調べ、代わりに `process_record_user` を `process_record_keymap` に置き換えます。この方法では、これらのキーボードでキーボード固有のコードを使用でき、カスタムの "global" キーコードも使うことができます。また、`SAFE_RANGE` を `NEW_SAFE_RANGE` に置き換えて、キーコードが重複しないようにすることもできます。 + +次に、全ての keymap.c ファイルに `#include ` を追加します。これにより、各キーマップでそれらを再定義することなく新しいキーコードを使うことができます。 + +それが完了したら、必要なキーコードの定義を `.h` ファイルに設定します。例えば: +```c +#pragma once + +#include "quantum.h" +#include "action.h" +#include "version.h" + +// 全てを定義 +enum custom_keycodes { + KC_MAKE = SAFE_RANGE, + NEW_SAFE_RANGE // キーマップ固有のコードについては "NEW_SAFE_RANGE" を使用 +}; +``` + +ここで、`.c` ファイルを作成し、この内容をそれに追加します: + +```c +#include ".h" + +__attribute__ ((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_MAKE: // ファームウェアをコンパイルし、キーボードのブートローダに基づく書き込みコマンドを追加します + if (!record->event.pressed) { + uint8_t temp_mod = get_mods(); + uint8_t temp_osm = get_oneshot_mods(); + clear_mods(); clear_oneshot_mods(); + SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP); + #ifndef FLASH_BOOTLOADER + if ((temp_mod | temp_osm) & MOD_MASK_SHIFT) + #endif + { + SEND_STRING(":flash"); + } + if ((temp_mod | temp_osm) & MOD_MASK_CTRL) { + SEND_STRING(" -j8 --output-sync"); + } + tap_code(KC_ENT); + set_mods(temp_mod); + } + break; + + } + return process_record_keymap(keycode, record); +} +``` + +(マクロパッドのような) Shift ボタンを持たないキーボードについては、ブートローダオプションを常に含める方法が必要です。これを行うには、以下をユーザスペースフォルダ内の `rules.mk` に追加します: + +```make +ifeq ($(strip $(FLASH_BOOTLOADER)), yes) + OPT_DEFS += -DFLASH_BOOTLOADER +endif +``` + +これは任意のキーマップで使うことができる新しい `KC_MAKE` キーコードを追加します。そして、このキーコードは、`make :` を出力するため、頻繁なコンパイルを簡単にします。そして、これは現在のキーボードの情報を出力するため、全てのキーボードとキーマップで動作します。そのため毎回これを入力する必要はありません。 + +また、Shift を押したままにすると書き込みの対象 (`:flash`) をコマンドに追加します。Control を押したままにすると、複数のファイルを一度に処理することでコンパイル時間を短縮する幾つかのコマンドを追加します。 + +そして Shift キーが無いキーボード、あるいは常に書き込みを試したいキーボードについては、キーマップの `rules.mk` に `FLASH_BOOTLOADER = yes` を追加することができます。 + +?> これはブートローダの設定に基づいて正しいユーティリティを使って新しくコンパイルされたファームウェアを自動的に書き込むはずです (あるいはデフォルトで HEX ファイルを生成するだけ)。ただし、これは全てのシステムで動作するわけではないことに注意してください。はっきり言うと、AVRDUDE は WSL では動作しません。そして、これは BootloadHID あるいは mdloader をサポートしません。 From 58af0305f57baa83d7233ff5eee1930396989fca Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Mon, 22 Jun 2020 20:13:01 +0900 Subject: [PATCH 056/154] [Update] Japanese translation of newbs.md (#9388) * update docs/ja/newbs.md * Update docs/ja/newbs.md Co-authored-by: shela * Update docs/ja/newbs.md Co-authored-by: shela * Update docs/ja/newbs.md Co-authored-by: shela Co-authored-by: shela --- docs/ja/newbs.md | 45 ++++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/docs/ja/newbs.md b/docs/ja/newbs.md index 465b82106d27..b582bc425672 100644 --- a/docs/ja/newbs.md +++ b/docs/ja/newbs.md @@ -2,40 +2,47 @@ -QMK は、メカニカルキーボード用の強力なオープンソースファームウェアです。 -QMK を使用して、シンプルかつ強力な方法でキーボードをカスタマイズできます。 -完全な初心者からプログラマーに至るまで、あらゆるスキルレベルの人々が QMK を使用してキーボードをカスタマイズしています。 -このガイドは、あなたのスキルにかかわらず、同じことを行う手助けをします。 +キーボードには、コンピュータ入っているものと似たようなプロセッサが入っています。 +このプロセッサでは、キーボードのボタンの押し下げの検出を担当し、キーが押されたときにコンピュータに通知するソフトウェアが動作しています。 +QMK Firmware は、そのソフトウェアの役割を果たし、ボタンの押下を検出しその情報をホストコンピュータに渡します。 +カスタムキーマップを作るということは、キーボード上で動くプログラムを作るということなのです。 + +QMK は、簡単なことは簡単に、そして、難しいことを可能なことにすることで、あなたの手にたくさんのパワーをもたらします。 +パワフルなキーマップを作るためにプログラムを作成する方法を知る必要はありません。いくつかのシンプルな文法に従うだけで OK です。 お使いのキーボードで QMK を実行できるかどうか不明ですか? もし作成したキーボードがメカニカルキーボードの場合、実行できる可能性が高いです。 -QMK は[多くの趣味のキーボード](http://qmk.fm/keyboards/)をサポートしているため、もし現在のキーボードで QMK を実行できない場合でも、ニーズに合ったキーボードを見つけるのに問題はないはずです。 +QMK は[多くの趣味のキーボード](http://qmk.fm/keyboards/)をサポートしています。 +現在使用しているキーボードが QMK を実行できない場合、QMK を実行できるキーボードの選択肢はたくさんあります。 + +## このガイドは私のためにあるのでしょうか? + +このガイドは、ソースコードを使ってキーボードのファームウェアを構築したいと考えている人に適しています。 +もしあなたがすでにプログラマーであれば、このプロセスはとても身近で簡単に理解できるでしょう。 +もし、プログラミングの考え方に抵抗があるのであれば、代わりに[私たちのオンラインGUI](ja/newbs_building_firmware_configurator.md)を見てみてください。 ## 概要 -このガイドには7つの主要なセクションがあります。 +このガイドには4つの主要なセクションがあります。 -* [はじめに](ja/newbs_getting_started.md) -* [コマンドラインを使用して初めてのファームウェアを構築する](ja/newbs_building_firmware.md) -* [オンライン GUI を使用して初めてのファームウェアを構築する](ja/newbs_building_firmware_configurator.md) -* [ファームウェアを書きこむ](ja/newbs_flashing.md) -* [テストとデバッグ](ja/newbs_testing_debugging.md) -* [QMK における Git 運用作法](ja/newbs_git_best_practices.md) -* [さらに学ぶための学習リソース](ja/newbs_learn_more_resources.md) +1. [環境設定](ja/newbs_getting_started.md) +2. [コマンドラインを使用して初めてのファームウェアを構築する](ja/newbs_building_firmware.md) +3. [ファームウェアを書きこむ](ja/newbs_flashing.md) +4. [テストとデバッグ](ja/newbs_testing_debugging.md) このガイドは、これまでソフトウェアをコンパイルしたことがない人を支援することに特化しています。 その観点から選択と推奨を行います。 これらの手順の多くには代替方法があり、これらの代替方法のほとんどをサポートしています。 タスクを達成する方法について疑問がある場合は、[案内を求めることができます](ja/getting_started_getting_help.md)。 -## 追加のリソース(英語) +## 追加のリソース -* [Thomas Baart's QMK Basics Blog](https://thomasbaart.nl/category/mechanical-keyboards/firmware/qmk/qmk-basics/) – 新規ユーザ視点から見た QMK ファームウェアの基本的な使用方法をカバーしたユーザ作成のブログ。 +このガイドの他にも、QMK の学習に役立つリソースがいくつかあります。[学習リソース](ja/newbs_learn_more_resources.md)のページにまとめました。 -## 追加のリソース(日本語) +## オープンソース -_日本語のリソース情報を募集中です。_ +QMKは GNU General Public License でリリースされているオープンソース・ソフトウェアです。 From 1ab8f969f6a8a804241a64a8df40c49daab409a7 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Mon, 22 Jun 2020 20:24:33 +0900 Subject: [PATCH 057/154] [Update] Japanese Translation of docs/faq_build.md (#9458) * update docs/ja/faq_build.md * update docs/ja/faq_build.md to 0.9.10 * Update docs/ja/faq_build.md Co-authored-by: shela Co-authored-by: shela --- docs/ja/faq_build.md | 46 ++++++++++++++++---------------------------- 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/docs/ja/faq_build.md b/docs/ja/faq_build.md index 9b4ce12a4863..2b63cef85a9b 100644 --- a/docs/ja/faq_build.md +++ b/docs/ja/faq_build.md @@ -1,8 +1,8 @@ # よくあるビルドの質問 このページは QMK のビルドに関する質問を説明します。まだビルドをしていない場合は、[ビルド環境のセットアップ](ja/getting_started_build_tools.md) および [Make 手順](ja/getting_started_make_guide.md)ガイドを読むべきです。 @@ -32,33 +32,30 @@ sudo udevadm trigger **/etc/udev/rules.d/50-atmel-dfu.rules:** ``` # Atmel ATMega32U4 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", MODE:="0666" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess", RUN{builtin}+="uaccess" # Atmel USBKEY AT90USB1287 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", MODE:="0666" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess", RUN{builtin}+="uaccess" # Atmel ATMega32U2 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", MODE:="0666" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess", RUN{builtin}+="uaccess" ``` -**/etc/udev/rules.d/52-tmk-keyboard.rules:** -``` -# tmk keyboard products https://github.com/tmk/tmk_keyboard -SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" -``` **/etc/udev/rules.d/54-input-club-keyboard.rules:** ``` # Input Club keyboard bootloader -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", MODE:="0666" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess", RUN{builtin}+="uaccess" ``` **/etc/udev/rules.d/55-caterina.rules:** ``` # ModemManager should ignore the following devices -ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" ``` -**注意:** ModemManager フィルタリングは厳格モードでは無い場合のみ動作します。以下のコマンドでその設定を変更することができます: +**注意:** 古い(1.12以前の) ModemManager では、フィルタリングは厳密なモードではない場合にのみ動作し、以下のコマンドはその設定を更新することができます。 ```console sudo sed -i 's/--filter-policy=strict/--filter-policy=default/' /lib/systemd/system/ModemManager.service sudo systemctl daemon-reload @@ -68,15 +65,15 @@ sudo systemctl restart ModemManager **/etc/udev/rules.d/56-dfu-util.rules:** ``` # stm32duino -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", MODE:="0666" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess", RUN{builtin}+="uaccess" # Generic stm32 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess", RUN{builtin}+="uaccess" ``` **/etc/udev/rules.d/57-bootloadhid.rules:** ``` # bootloadHID -SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", MODE:="0666" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess", RUN{builtin}+="uaccess" ``` ### Linux のブートローダモードで Serial デバイスが検知されない @@ -116,23 +113,14 @@ OPT_DEFS += -DBOOTLOADER_SIZE=2048 ``` ## MacOS での `avr-gcc: internal compiler error: Abort trap: 6 (program cc1)` + これは brew での更新に関する問題で、avr-gcc が依存するシンボリックリンクを壊します。 解決法は全ての影響を受けたモジュールを削除し再インストールすることです。 ``` -brew rm avr-gcc -brew rm avr-gcc@8 -brew rm dfu-programmer -brew rm dfu-util -brew rm gcc-arm-none-eabi -brew rm arm-gcc-bin@8 -brew rm avrdude -brew install avr-gcc@8 -brew install dfu-programmer -brew install dfu-util -brew install arm-gcc-bin@8 -brew install avrdude +brew rm avr-gcc avr-gcc@8 dfu-programmer dfu-util gcc-arm-none-eabi arm-gcc-bin@8 avrdude qmk +brew install qmk/qmk/qmk brew link --force avr-gcc@8 brew link --force arm-gcc-bin@8 ``` From 24b0cda3e877c28c53c1aca02ef6e0eaa66fad91 Mon Sep 17 00:00:00 2001 From: Josh Hinnebusch Date: Mon, 22 Jun 2020 15:25:56 -0400 Subject: [PATCH 058/154] [Keyboard] add h60 PCB (#9242) * add h60 initial files * add h60 image * updated per PR request * Update keyboards/hineybush/h60/keymaps/default/keymap.c * Update keyboards/hineybush/h60/keymaps/kei/keymap.c * Update keyboards/hineybush/h60/keymaps/via/keymap.c * Update keyboards/hineybush/h60/h60.h * Update keyboards/hineybush/h60/h60.h * Update keyboards/hineybush/h60/rules.mk --- keyboards/hineybush/h60/config.h | 89 ++++++++++++++ keyboards/hineybush/h60/h60.c | 31 +++++ keyboards/hineybush/h60/h60.h | 111 ++++++++++++++++++ .../hineybush/h60/keymaps/default/keymap.c | 28 +++++ .../hineybush/h60/keymaps/default/readme.md | 1 + keyboards/hineybush/h60/keymaps/kei/keymap.c | 26 ++++ keyboards/hineybush/h60/keymaps/kei/readme.md | 1 + keyboards/hineybush/h60/keymaps/via/keymap.c | 40 +++++++ keyboards/hineybush/h60/keymaps/via/readme.md | 1 + keyboards/hineybush/h60/keymaps/via/rules.mk | 1 + keyboards/hineybush/h60/readme.md | 15 +++ keyboards/hineybush/h60/rules.mk | 25 ++++ 12 files changed, 369 insertions(+) create mode 100644 keyboards/hineybush/h60/config.h create mode 100644 keyboards/hineybush/h60/h60.c create mode 100644 keyboards/hineybush/h60/h60.h create mode 100644 keyboards/hineybush/h60/keymaps/default/keymap.c create mode 100644 keyboards/hineybush/h60/keymaps/default/readme.md create mode 100644 keyboards/hineybush/h60/keymaps/kei/keymap.c create mode 100644 keyboards/hineybush/h60/keymaps/kei/readme.md create mode 100644 keyboards/hineybush/h60/keymaps/via/keymap.c create mode 100644 keyboards/hineybush/h60/keymaps/via/readme.md create mode 100644 keyboards/hineybush/h60/keymaps/via/rules.mk create mode 100644 keyboards/hineybush/h60/readme.md create mode 100644 keyboards/hineybush/h60/rules.mk diff --git a/keyboards/hineybush/h60/config.h b/keyboards/hineybush/h60/config.h new file mode 100644 index 000000000000..ef14fdd4f89e --- /dev/null +++ b/keyboards/hineybush/h60/config.h @@ -0,0 +1,89 @@ +/* +Copyright 2020 hineybush + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEBBE +#define DEVICE_VER 0x0001 +#define MANUFACTURER hineybush keyboards +#define PRODUCT h60 +#define DESCRIPTION A 60% PCB. + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +#define MATRIX_ROW_PINS { B6, B5, B4, D7, E6 } +#define MATRIX_COL_PINS { B3, D0, D1, D2, D3, D5, D6, C7, F0, F1, F4, F5, F6, F7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 3 + +// leaving this here if I decide to add RGB down the line + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose 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 +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/hineybush/h60/h60.c b/keyboards/hineybush/h60/h60.c new file mode 100644 index 000000000000..c3f13824796f --- /dev/null +++ b/keyboards/hineybush/h60/h60.c @@ -0,0 +1,31 @@ +/* Copyright 2020 hineybush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "h60.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + setPinOutput(C6); +} + +bool led_update_kb(led_t led_state) { + if(led_update_user(led_state)) { + writePin(C6, !led_state.caps_lock); + } + return true; +} + diff --git a/keyboards/hineybush/h60/h60.h b/keyboards/hineybush/h60/h60.h new file mode 100644 index 000000000000..0a19ffbf3bd1 --- /dev/null +++ b/keyboards/hineybush/h60/h60.h @@ -0,0 +1,111 @@ +/* Copyright 2020 hineybush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all(\ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k113, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k213, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k400, k401, k402, k403, k406, k408, k409, k410, k411, k412 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, KC_NO}, \ + { k400, k401, k402, k403, KC_NO,KC_NO,k406, KC_NO,k408, k409, k410, k411, k412, KC_NO} \ +} + +#define LAYOUT_60_ansi(\ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k113, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k213, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, \ + k400, k401, k402, k406, k409, k410, k411, k412 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, KC_NO}, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, KC_NO,KC_NO}, \ + { k400, k401, k402, KC_NO,KC_NO,KC_NO,k406, KC_NO,KC_NO,k409, k410, k411, k412, KC_NO} \ +} + +#define LAYOUT_60_ansi_split_bs_rshift(\ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k113, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k213, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k400, k401, k402, k406, k409, k410, k411, k412 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, KC_NO}, \ + { k400, k401, k402, KC_NO,KC_NO,KC_NO,k406, KC_NO,KC_NO,k409, k410, k411, k412, KC_NO} \ +} + +#define LAYOUT_60_hhkb(\ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k113, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k213, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k401, k402, k406, k410, k411 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, KC_NO}, \ + { KC_NO,k401, k402, KC_NO,KC_NO,KC_NO,k406, KC_NO,KC_NO,KC_NO,k410, k411, KC_NO,KC_NO} \ +} + +#define LAYOUT_60_tsangan_hhkb(\ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k113, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k213, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k400, k401, k402, k406, k410, k411, k412 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, KC_NO}, \ + { k400, k401, k402, KC_NO,KC_NO,KC_NO,k406, KC_NO,KC_NO,KC_NO,k410, k411, k412, KC_NO} \ +} + +#define LAYOUT_60_tsangan_split_rshift(\ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k113, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k213, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k400, k401, k402, k406, k410, k411, k412 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, KC_NO}, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, KC_NO}, \ + { k400, k401, k402, KC_NO,KC_NO,KC_NO,k406, KC_NO,KC_NO,KC_NO,k410, k411, k412, KC_NO} \ +} diff --git a/keyboards/hineybush/h60/keymaps/default/keymap.c b/keyboards/hineybush/h60/keymaps/default/keymap.c new file mode 100644 index 000000000000..9195da4b8587 --- /dev/null +++ b/keyboards/hineybush/h60/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2020 hineybush + + */ +#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_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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL), + + [_FN] = LAYOUT_60_ansi( + KC_TRNS, BL_TOGG, BL_DEC, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_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), +}; diff --git a/keyboards/hineybush/h60/keymaps/default/readme.md b/keyboards/hineybush/h60/keymaps/default/readme.md new file mode 100644 index 000000000000..08aa4a5c8fe2 --- /dev/null +++ b/keyboards/hineybush/h60/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for h60 diff --git a/keyboards/hineybush/h60/keymaps/kei/keymap.c b/keyboards/hineybush/h60/keymaps/kei/keymap.c new file mode 100644 index 000000000000..528e1ac970d5 --- /dev/null +++ b/keyboards/hineybush/h60/keymaps/kei/keymap.c @@ -0,0 +1,26 @@ +/* Copyright 2020 hineybush + + */ +#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_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_DEL, + 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, MO(1), + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT), + [_FN] = LAYOUT_60_hhkb( + KC_TRNS, BL_TOGG, BL_DEC, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_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), +}; diff --git a/keyboards/hineybush/h60/keymaps/kei/readme.md b/keyboards/hineybush/h60/keymaps/kei/readme.md new file mode 100644 index 000000000000..c7b8dd630121 --- /dev/null +++ b/keyboards/hineybush/h60/keymaps/kei/readme.md @@ -0,0 +1 @@ +# The default keymap for the Kei keyboard diff --git a/keyboards/hineybush/h60/keymaps/via/keymap.c b/keyboards/hineybush/h60/keymaps/via/keymap.c new file mode 100644 index 000000000000..75c9ac2dd2c5 --- /dev/null +++ b/keyboards/hineybush/h60/keymaps/via/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2020 hineybush + + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_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_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_TRNS, KC_SPC, KC_TRNS, KC_RALT, MO(1), KC_RGUI, KC_RCTL), + [_FN1] = LAYOUT_all( + KC_TRNS, BL_TOGG, BL_DEC, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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), + [_FN2] = 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), + [_FN3] = 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), +}; diff --git a/keyboards/hineybush/h60/keymaps/via/readme.md b/keyboards/hineybush/h60/keymaps/via/readme.md new file mode 100644 index 000000000000..a8d6e39e1513 --- /dev/null +++ b/keyboards/hineybush/h60/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for h60 diff --git a/keyboards/hineybush/h60/keymaps/via/rules.mk b/keyboards/hineybush/h60/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/hineybush/h60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/hineybush/h60/readme.md b/keyboards/hineybush/h60/readme.md new file mode 100644 index 000000000000..3bc38cc0adaf --- /dev/null +++ b/keyboards/hineybush/h60/readme.md @@ -0,0 +1,15 @@ +# h60 + +![h60](https://live.staticflickr.com/65535/49952697531_2efeaa0bd6_k.jpg) + +A GH60 form factor PCB for 60% keyboards. Uses a USB Type C connector. + +* Keyboard Maintainer: [hineybush](https://github.com/hineybush) +* Hardware Supported: h60 +* Hardware Availability: [hiney.cc](https://hiney.cc) + +Make example for this keyboard (after setting up your build environment): + + make hineybush/h60: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/hineybush/h60/rules.mk b/keyboards/hineybush/h60/rules.mk new file mode 100644 index 000000000000..92da9c653f92 --- /dev/null +++ b/keyboards/hineybush/h60/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_tsangan_hhkb From f0bde7906d35c1955a39251659e80d41caccbc54 Mon Sep 17 00:00:00 2001 From: Manna Harbour <51143715+manna-harbour@users.noreply.github.com> Date: Tue, 23 Jun 2020 15:30:05 +1000 Subject: [PATCH 059/154] Update miryoku (#9442) - Add mouse buttons overlay layer - Change button order - Remove crkbd hardware specifics - Add alternative base layer alphas - Change title - Add logo - Reword intro text - Add dev branch and new commits links - Replace manual toc and remove anchors - Unindent lists - Reduce headings - Update docs - Build keymap as object instead of including .c file - Add kle subset mapping images - Add alternative mapping support - Change default mapping for ortho_4x12 - Add split mapping for ortho_4x12 - Add contact section - Add #pragma once to layout and keyboard config.h --- .../keymaps/manna-harbour_miryoku/config.h | 26 +- .../keymaps/manna-harbour_miryoku/keymap.c | 53 -- .../keymaps/manna-harbour_miryoku/rules.mk | 7 - .../ergodox/manna-harbour_miryoku/config.h | 20 + .../ergodox/manna-harbour_miryoku/keymap.c | 19 - .../ortho_4x12/manna-harbour_miryoku/config.h | 31 + .../ortho_4x12/manna-harbour_miryoku/keymap.c | 15 - users/manna-harbour_miryoku/config.h | 15 + .../manna-harbour_miryoku.c | 61 +- .../manna-harbour_miryoku.h | 19 + users/manna-harbour_miryoku/miryoku.org | 559 +++++++++++------- users/manna-harbour_miryoku/rules.mk | 17 +- 12 files changed, 513 insertions(+), 329 deletions(-) delete mode 100644 keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk create mode 100644 layouts/community/ergodox/manna-harbour_miryoku/config.h create mode 100644 layouts/community/ortho_4x12/manna-harbour_miryoku/config.h create mode 100644 users/manna-harbour_miryoku/manna-harbour_miryoku.h diff --git a/keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h b/keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h index e2fe1824da34..a3d430b1e82f 100644 --- a/keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h @@ -2,17 +2,15 @@ #pragma once -#define EE_HANDS - -#ifdef RGB_MATRIX_ENABLE -#define RGB_MATRIX_KEYPRESSES // reacts to keypresses -#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#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 -#endif - -#define SSD1306OLED // old oled driver +#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( \ +KC_NO, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_NO, \ +KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \ +KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \ + K32, K33, K34, K35, K36, K37 \ +) diff --git a/keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c index f5be6844f8c4..a852ddd05cd4 100644 --- a/keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c @@ -1,54 +1 @@ // generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- - -#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( \ -KC_NO, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_NO, \ -KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \ -KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \ - K32, K33, K34, K35, K36, K37 \ -) - -#include "manna-harbour_miryoku.c" - - -#ifdef SSD1306OLED - -#include "ssd1306.h" - -void matrix_init_user(void) { - iota_gfx_init(!has_usb()); // turns on the display -} - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_logo(void); - -void matrix_scan_user(void) { - iota_gfx_task(); -} - -void matrix_render_user(struct CharacterMatrix *matrix) { - if (host_keyboard_leds() & (1<display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); -} - -#endif //SSD1306OLED diff --git a/keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk deleted file mode 100644 index c4fb15f34263..000000000000 --- a/keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -# generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- - -RGB_MATRIX_ENABLE = WS2812 - -# old oled driver -SRC += ./lib/glcdfont.c \ - ./lib/logo_reader.c diff --git a/layouts/community/ergodox/manna-harbour_miryoku/config.h b/layouts/community/ergodox/manna-harbour_miryoku/config.h new file mode 100644 index 000000000000..0f20409c2e84 --- /dev/null +++ b/layouts/community/ergodox/manna-harbour_miryoku/config.h @@ -0,0 +1,20 @@ +// 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_ergodox_pretty( \ +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ +KC_NO, K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09, KC_NO, \ +KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \ +KC_NO, K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29, KC_NO, \ +KC_NO, KC_NO, KC_NO, KC_NO, K32, K37, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, \ + K33, K34, KC_NO, KC_NO, K35, K36 \ +) diff --git a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c index 1c715a68f7ae..a852ddd05cd4 100644 --- a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c @@ -1,20 +1 @@ // generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- - -#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_ergodox_pretty( \ -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ -KC_NO, K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09, KC_NO, \ -KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \ -KC_NO, K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29, KC_NO, \ -KC_NO, KC_NO, KC_NO, KC_NO, K32, K37, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, \ - K33, K34, KC_NO, KC_NO, K35, K36 \ -) - -#include "manna-harbour_miryoku.c" diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h b/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h new file mode 100644 index 000000000000..772b510ef6f1 --- /dev/null +++ b/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h @@ -0,0 +1,31 @@ +// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- + +#pragma once + +#if defined MIRYOKU_MAPPING_SPLIT +#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_ortho_4x12(\ +KC_NO, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, KC_NO,\ +K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09,\ +K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\ +K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\ +) +#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_ortho_4x12(\ +K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\ +K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\ +K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\ +KC_NO, KC_NO, K32, K33, K34, K34, K35, K35, K36, K37, KC_NO, KC_NO\ +) +#endif diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c index 07bc15c2af41..a852ddd05cd4 100644 --- a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c @@ -1,16 +1 @@ // generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- - -#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_ortho_4x12(\ -KC_NO, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, KC_NO,\ -K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09,\ -K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\ -K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\ -) - -#include "manna-harbour_miryoku.c" diff --git a/users/manna-harbour_miryoku/config.h b/users/manna-harbour_miryoku/config.h index 5ac3208c90cb..db16088158ff 100644 --- a/users/manna-harbour_miryoku/config.h +++ b/users/manna-harbour_miryoku/config.h @@ -2,6 +2,9 @@ #pragma once +// default but important +#define TAPPING_TERM 200 + // Prevent normal rollover on alphas from accidentally triggering mods. #define IGNORE_MOD_TAP_INTERRUPT @@ -10,3 +13,15 @@ // Recommended for heavy chording. #define QMK_KEYS_PER_SCAN 4 + +// Mouse key speed and acceleration. +#undef MOUSEKEY_DELAY +#define MOUSEKEY_DELAY 0 +#undef MOUSEKEY_INTERVAL +#define MOUSEKEY_INTERVAL 16 +#undef MOUSEKEY_WHEEL_DELAY +#define MOUSEKEY_WHEEL_DELAY 0 +#undef MOUSEKEY_MAX_SPEED +#define MOUSEKEY_MAX_SPEED 6 +#undef MOUSEKEY_TIME_TO_MAX +#define MOUSEKEY_TIME_TO_MAX 64 diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.c b/users/manna-harbour_miryoku/manna-harbour_miryoku.c index 8ae38c25c8f8..9bc0f17e6330 100644 --- a/users/manna-harbour_miryoku/manna-harbour_miryoku.c +++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.c @@ -1,28 +1,51 @@ // generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- -#include QMK_KEYBOARD_H - -#define KC_NP KC_NO // key is not present -#define KC_NA KC_NO // present but not available for use -#define KC_NU KC_NO // available but not used - -// non-KC_ keycodes -#define KC_RST RESET -#define KC_TOG RGB_TOG -#define KC_MOD RGB_MOD -#define KC_HUI RGB_HUI -#define KC_SAI RGB_SAI -#define KC_VAI RGB_VAI - -enum layers { BASE, MEDR, NAVR, MOUR, NSSL, NSL, FUNL }; +#include "manna-harbour_miryoku.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +#if defined MIRYOKU_ALPHAS_QWERTY + [BASE] = LAYOUT_miryoku( + 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, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP + ), +#elif defined MIRYOKU_ALPHAS_DVORAK + [BASE] = LAYOUT_miryoku( + KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, + LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S), + KC_SLSH, ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), KC_Z, + KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP + ), +#elif defined MIRYOKU_ALPHAS_COLEMAK + [BASE] = LAYOUT_miryoku( + KC_Q, KC_W, KC_F, KC_P, KC_G, 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_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), + KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP + ), +#elif defined MIRYOKU_ALPHAS_COLEMAKDH + [BASE] = LAYOUT_miryoku( + 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_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), + KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP + ), +#elif defined MIRYOKU_ALPHAS_WORKMAN + [BASE] = LAYOUT_miryoku( + KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, + LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), + KC_Z, ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP + ), +#else [BASE] = LAYOUT_miryoku( 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, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP ), +#endif [NAVR] = LAYOUT_miryoku( KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_AGIN, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, @@ -33,7 +56,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_NU, KC_NU, KC_NU, KC_NU, KC_NU, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_NU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_NU, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, - KC_NP, KC_NP, KC_NA, KC_NA, KC_NA, KC_BTN3, KC_BTN1, KC_BTN2, KC_NP, KC_NP + KC_NP, KC_NP, KC_NA, KC_NA, KC_NA, KC_BTN1, KC_BTN3, KC_BTN2, KC_NP, KC_NP + ), + [MBO] = LAYOUT_miryoku( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NP, KC_NP, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN3, KC_BTN2, KC_NP, KC_NP ), [MEDR] = LAYOUT_miryoku( KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI, diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.h b/users/manna-harbour_miryoku/manna-harbour_miryoku.h new file mode 100644 index 000000000000..5f543cb0f6ce --- /dev/null +++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.h @@ -0,0 +1,19 @@ +// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- + +#pragma once + +#include QMK_KEYBOARD_H + +#define KC_NP KC_NO // key is not present +#define KC_NA KC_NO // present but not available for use +#define KC_NU KC_NO // available but not used + +// non-KC_ keycodes +#define KC_RST RESET +#define KC_TOG RGB_TOG +#define KC_MOD RGB_MOD +#define KC_HUI RGB_HUI +#define KC_SAI RGB_SAI +#define KC_VAI RGB_VAI + +enum layers { BASE, MBO, MEDR, NAVR, MOUR, NSSL, NSL, FUNL }; diff --git a/users/manna-harbour_miryoku/miryoku.org b/users/manna-harbour_miryoku/miryoku.org index 692321d01ebc..011e43455a29 100644 --- a/users/manna-harbour_miryoku/miryoku.org +++ b/users/manna-harbour_miryoku/miryoku.org @@ -1,68 +1,75 @@ -#+Title: miryoku.org +# After making changes to code or tables call org-babel-tangle (C-c C-v t). + +#+Title: Miryoku [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/miryoku-roa-32.png]] [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/kle-miryoku-keycodes.png]] -The miryoku layout is an ergonomic, minimal, orthogonal layout for ergo or ortho -keyboards, implemented as part of the QMK firmware. The layout is maintained in -emacs org-mode tables and converted to QMK keymap data structures using embedded -python scripts. The layout is mapped onto keyboards with different physical -layouts as a subset without code duplication using the QMK userspace feature and -C macros. Versions of the layout can also be seen outside of the QMK source at -[[https://github.com/manna-harbour/miryoku/]]. +Miryoku is an ergonomic, minimal, orthogonal layout for ergo or ortho keyboards, +implemented as part of the QMK firmware. -After making changes here call org-babel-tangle (C-c C-v t). +The layout is maintained in emacs org-mode tables and converted to QMK keymap +data structures using embedded python scripts. It is mapped onto keyboards with +different physical layouts as a subset without code duplication using the QMK +userspace feature and C macros. -* Contents +Please see the [[https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org][development branch]] for any [[https://github.com/qmk/qmk_firmware/compare/master...manna-harbour:miryoku][updates not yet merged into QMK]]. +Additional visualisations are provided outside QMK in the [[https://github.com/manna-harbour/miryoku/blob/master/README.org][Miryoku (Extras) repository]]. +* Contents :TOC: - [[#layout][Layout]] + - [[#general-principles][General Principles]] + - [[#details][Details]] + - [[#layers][Layers]] - [[#code-generation][Code Generation]] + - [[#table-conversion-scripts][Table Conversion Scripts]] + - [[#data][Data]] - [[#subset-mapping][Subset Mapping]] -- [[#related-documentation][Related Documentation]] - + - [[#userspace][Userspace]] + - [[#layouts][Layouts]] + - [[#keyboards][Keyboards]] +- [[#documentation][Documentation]] + - [[#qmk][QMK]] + - [[#org-mode][Org Mode]] +- [[#contact][Contact]] * Layout -:PROPERTIES: -:CUSTOM_ID: layout -:END: - -** Info - -*** General Principles - - - Use layers instead of reaching. - - Use both hands instead of contortions. - - Use the home positions as much as possible. - - Make full use of the thumbs. - - Avoid unnecessary complication. - - -*** Specifics - - - 5 columns, 3 rows, 3 thumb keys, 2 hands. - - Can be used on almost any split or non-split ergo or ortho keyboard. - - Includes all keys found on a US layout TKL keyboard, plus media keys and - mouse emulation. - - Home row is the middle row, home thumb key is the middle thumb key. - - Maximum 1-u movement from home position for fingers and thumbs, and only - along one axis (except for the inner index finger column which is - deprioritised compared with the home columns). - - Dual-function modifiers on home row, mirrored on both hands. - - Dual-function layer change on thumbs. - - Layers are designed orthogonally with a single purpose per hand and are - accessed by holding a thumb key on the opposite hand. - - All layers on the same hand are based on the same basic key arrangement. - - Holding layer change and modifiers on one hand combined with a single key - press on the other hand can produce any combination of modifiers and - single keys without any finger contortions. - - Single function mods are also defined on layers on the same hand as the - layer change thumb key so layer change and mods can be held in any order - or simultaneously without race conditions. - - As mods are only enabled on the opposite hand, auto-repeat is available on - the home row on layers for use with cursor and mouse keys. - - Tap-hold auto-repeat is disabled to permit faster tap-hold switching on - thumbs, but thumb tap keys are mirrored onto some layers for use with - auto-repeat. On other layers thumb keys are redefined with important - functions for that layer. + +** General Principles + +- Use layers instead of reaching. +- Use both hands instead of contortions. +- Use the home positions as much as possible. +- Make full use of the thumbs. +- Avoid unnecessary complication. + + +** Details + +- 5 columns, 3 rows, 3 thumb keys, 2 hands. +- Can be used on almost any split or non-split ergo or ortho keyboard. +- Includes all keys found on a US layout TKL keyboard, plus media keys and mouse + emulation. +- Home row is the middle row, home thumb key is the middle thumb key. +- Maximum 1-u movement from home position for fingers and thumbs, and only along + one axis (except for the inner index finger column which is deprioritised + compared with the home columns). +- Dual-function modifiers on home row, mirrored on both hands. +- Dual-function layer change on thumbs. +- Layers are designed orthogonally with a single purpose per hand and are + accessed by holding a thumb key on the opposite hand. +- All layers on the same hand are based on the same basic key arrangement. +- Holding layer change and modifiers on one hand combined with a single key + press on the other hand can produce any combination of modifiers and single + keys without any finger contortions. +- Single function mods are also defined on layers on the same hand as the layer + change thumb key so layer change and mods can be held in any order or + simultaneously without race conditions. +- As mods are only enabled on the opposite hand, auto-repeat is available on the + home row on layers for use with cursor and mouse keys. +- Tap-hold auto-repeat is disabled to permit faster tap-hold switching on + thumbs, but thumb tap keys are mirrored onto some layers for use with + auto-repeat. On other layers thumb keys are redefined with important + functions for that layer. ** Layers @@ -86,16 +93,21 @@ into the corresponding tap-hold keycodes for mods and layer change. RST and mods will be available on sub layers on the same hand as the layer change thumb key. Unknown names are considered to be layer names. -Base layer alphas are Colemak DHm. Thumb keys are backspace, enter, delete on +Base layer alphas are Colemak-DHm. Thumb keys are backspace, enter, delete on the right and space, tab, escape on the left. Dot, comma and apostrophe are included for prose, dot and slash for file and directory names. -#+NAME: tap +**** Tap + +#+NAME: colemakdhm | 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 | , | . | / | | NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP | + +**** Hold + #+NAME: hold | RST | | | | | | | | | RST | | LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | @@ -103,6 +115,52 @@ included for prose, dot and slash for file and directory names. | NP | NP | MEDR | NAVR | MOUR | NSSL | NSL | FUNL | NP | NP | +**** Alternative Base Layer Alphas + +Alternative base layer alphas are provided. To select, append +e.g. ~MIRYOKU_ALPHAS=QWERTY~ to the make command line when building. + +***** QWERTY (QWERTY) +#+NAME: 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 | , | . | / | +| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP | + + +***** Dvorak (DVORAK) +#+NAME: dvorak +| ' | , | . | P | Y | F | G | C | R | L | +| A | O | E | U | I | D | H | T | N | S | +| / | Q | J | K | X | B | M | W | V | Z | +| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP | + + +***** Colemak (COLEMAK) +#+NAME: colemak +| Q | W | F | P | G | J | L | U | Y | ' | +| A | R | S | T | D | H | N | E | I | O | +| Z | X | C | V | B | K | M | , | . | / | +| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP | + + +***** Colemak Mod-DH (COLEMAKDH) +#+NAME: colemakdh +| Q | W | F | P | B | J | L | U | Y | ' | +| A | R | S | T | G | K | N | E | I | O | +| Z | X | C | D | V | M | H | , | . | / | +| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP | + + +***** Workman (WORKMAN) +#+NAME: workman +| Q | D | R | W | B | J | F | U | P | ' | +| A | S | H | T | G | Y | N | E | O | I | +| Z | X | M | C | V | K | L | , | . | / | +| NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP | + + + *** Navigation (NAVR) Primary right-hand layer (left home thumb) is navigation and editing. Cursor @@ -120,15 +178,27 @@ layer to avoid having to layer change mid edit and to enable auto-repeat. *** Mouse (MOUR) Secondary RH layer is mouse emulation. Mouse movement mirrors cursor navigation -on home and wheel mirrors line / page movement below. Buttons are on the -thumbs. Mouse movement, click, and drag with modifiers can be performed from +on home and wheel mirrors line / page movement below. Buttons are on the thumbs +(L, M, R). Mouse movement, click, and drag with modifiers can be performed from the home position. Unused keys are available for other related functions. #+NAME: mour | | | | | | | | MS_L | MS_D | MS_U | MS_R | | | WH_L | WH_D | WH_U | WH_R | -| BTN3 | BTN1 | BTN2 | NP | NP | +| BTN1 | BTN3 | BTN2 | NP | NP | + + +**** Mouse Buttons Overlay (MBO) + +Available for automatic activation depending on keyboard hardware and +configuration. Not activated manually. + +#+NAME: mbo +| | | | | | | | | | | +| | | | | | | | | | | +| | | | | | | | | | | +| NP | NP | | | | BTN1 | BTN3 | BTN2 | NP | NP | *** Media (MEDR) @@ -211,9 +281,6 @@ Duplicate base layer tap keys on thumbs rather than trans to enable auto-repeat. * Code Generation -:PROPERTIES: -:CUSTOM_ID: code-generation -:END: ** Table Conversion Scripts @@ -222,14 +289,14 @@ Duplicate base layer tap keys on thumbs rather than trans to enable auto-repeat. Produce base layer from separate tap and hold tables. #+NAME: table-layout-taphold -#+BEGIN_SRC python :var tap_table=tap :var hold_table=hold :var symbol_names_table=symbol-names :var mods_list=mods :tangle no :results verbatim +#+BEGIN_SRC python :var layer_name="BASE" :var tap_table=colemakdhm :var hold_table=hold :var symbol_names_table=symbol-names :var mods_list=mods :tangle no :results verbatim width = 19 mods_dict = dict.fromkeys(mods_list) symbol_names_dict = {} for symbol, name, shifted_symbol, shifted_name in symbol_names_table: symbol_names_dict[symbol] = name symbol_names_dict[shifted_symbol] = shifted_name -results = ' [BASE] = LAYOUT_miryoku(\n' +results = ' [' + layer_name + '] = LAYOUT_miryoku(\n' for tap_row, hold_row in map(None, tap_table, hold_table): results += ' ' for tap, hold in map(None, tap_row, hold_row): @@ -254,7 +321,7 @@ return results : [BASE] = LAYOUT_miryoku( : 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, +: KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, : KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP : ) @@ -314,6 +381,43 @@ return results : ) +*** table-layout-full + +Produce full layer from single table. Fill for unused keys is configurable. + +#+NAME: table-layout-full +#+BEGIN_SRC python :var table=mbo :var layer_name="MBO" :var fill="TRNS" :var symbol_names_table=symbol-names :tangle no :results verbatim +width = 9 +symbol_names_dict = {} +for symbol, name, shifted_symbol, shifted_name in symbol_names_table: + symbol_names_dict[symbol] = name + symbol_names_dict[shifted_symbol] = shifted_name +results = ' [' + layer_name + '] = LAYOUT_miryoku(\n' +for row in table: + results += ' ' + for key in row: + if key == '': + code = fill + elif key in symbol_names_dict: + code = symbol_names_dict[key] + else: + code = key + code = 'KC_' + str(code) + results += (code + ', ').ljust(width) + results = results.rstrip(' ') + '\n' +results = results.rstrip('\n, ') + '\n )' +return results +#+END_SRC + +#+RESULTS: table-layout-full +: [MBO] = LAYOUT_miryoku( +: KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +: KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +: KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +: KC_NP, KC_NP, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN3, KC_BTN2, KC_NP, KC_NP +: ) + + *** table-enums Produce layer enums from layer names in hold table. @@ -321,7 +425,7 @@ Produce layer enums from layer names in hold table. #+NAME: table-enums #+BEGIN_SRC python :var hold_table=hold :var mods_list=mods :tangle no mods_dict = dict.fromkeys(mods_list) -results = 'enum layers { BASE, ' +results = 'enum layers { BASE, MBO, ' for hold_row in hold_table: for hold in hold_row: if hold not in mods_dict and hold != '' and hold != 'NP' and hold != 'RST': @@ -331,7 +435,7 @@ return results #+END_SRC #+RESULTS: table-enums -: enum layers { BASE, MEDR, NAVR, MOUR, NSSL, NSL, FUNL }; +: enum layers { BASE, MBO, MEDR, NAVR, MOUR, NSSL, NSL, FUNL }; ** Data @@ -376,8 +480,6 @@ Modifiers usable in hold table. Need to have the same name for KC_ and _T versi - ALGR -** Other - *** header Header for tangled src files. @@ -389,25 +491,27 @@ generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t * Subset Mapping -:PROPERTIES: -:CUSTOM_ID: subset-mapping -:END: + +The keymap, build options, and configuration are shared between keyboards. The +layout is mapped onto keyboards with different physical layouts as a subset. ** Userspace -The keymap and configuration are shared between keyboards. The keymap is -defined for LAYOUT_miryoku which is 10x4, with the outer 2 positions on the -bottom row unused and the rest of the bottom row are the thumb keys. +The keymap is defined for LAYOUT_miryoku which is 10x4, with the outer 2 +positions on the bottom row unused and the rest of the bottom row being the +thumb keys. +*** manna-harbour_miryoku.h -*** manna-harbour_miryoku.c +Keymap-related definitions. Included from manna-harbour_miryoku.c. Can be +included from keymap or layout keymap.c if needed. -Contains the keymap. Included from keymap.c - -[[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]] -#+BEGIN_SRC C :noweb yes :padline no :tangle manna-harbour_miryoku.c +[[./manna-harbour_miryoku.h][users/manna-harbour_miryoku/manna-harbour_miryoku.h]] +#+BEGIN_SRC C :noweb yes :padline no :tangle manna-harbour_miryoku.h // <
> +#pragma once + #include QMK_KEYBOARD_H #define KC_NP KC_NO // key is not present @@ -423,11 +527,36 @@ Contains the keymap. Included from keymap.c #define KC_VAI RGB_VAI <> +#+END_SRC + + +*** manna-harbour_miryoku.c + +Contains the keymap. Added from rules.mk. + +[[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]] +#+BEGIN_SRC C :noweb yes :padline no :tangle manna-harbour_miryoku.c +// <
> + +#include "manna-harbour_miryoku.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -<>, +#if defined MIRYOKU_ALPHAS_QWERTY +<>, +#elif defined MIRYOKU_ALPHAS_DVORAK +<>, +#elif defined MIRYOKU_ALPHAS_COLEMAK +<>, +#elif defined MIRYOKU_ALPHAS_COLEMAKDH +<>, +#elif defined MIRYOKU_ALPHAS_WORKMAN +<>, +#else +<>, +#endif <>, <>, +<>, <>, <>, <>, @@ -446,6 +575,9 @@ Config options. Automatically included. #pragma once +// default but important +#define TAPPING_TERM 200 + // Prevent normal rollover on alphas from accidentally triggering mods. #define IGNORE_MOD_TAP_INTERRUPT @@ -455,6 +587,18 @@ Config options. Automatically included. // Recommended for heavy chording. #define QMK_KEYS_PER_SCAN 4 +// Mouse key speed and acceleration. +#undef MOUSEKEY_DELAY +#define MOUSEKEY_DELAY 0 +#undef MOUSEKEY_INTERVAL +#define MOUSEKEY_INTERVAL 16 +#undef MOUSEKEY_WHEEL_DELAY +#define MOUSEKEY_WHEEL_DELAY 0 +#undef MOUSEKEY_MAX_SPEED +#define MOUSEKEY_MAX_SPEED 6 +#undef MOUSEKEY_TIME_TO_MAX +#define MOUSEKEY_TIME_TO_MAX 64 + #+END_SRC @@ -466,10 +610,20 @@ Build options. Automatically included. #+BEGIN_SRC makefile :noweb yes :padline no :tangle rules.mk # <
> -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -EXTRAFLAGS += -flto # Link Time Optimization to reduce code size, 31358->28034/28672 +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +SRC += manna-harbour_miryoku.c # keymap + +# select alternative base layer alphas +ifneq ($(strip $(MIRYOKU_ALPHAS)),) + OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS) +endif + +# select alternative subset mappings +ifneq ($(strip $(MIRYOKU_MAPPING)),) + OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING) +endif #+END_SRC @@ -477,7 +631,9 @@ EXTRAFLAGS += -flto # Link Time Optimization to reduce code size, 31358->28 To use the keymap on a keyboard supporting the layouts feature, LAYOUT_miryoku is defined as a macro mapping onto the layout's own LAYOUT macro, leaving the -unused keys as KC_NO. The userspace keymap is then included. +unused keys as KC_NO. + +The following are example layouts. *** ergodox @@ -486,10 +642,26 @@ secondary thumb keys are the inner and outer 2u thumb keys and the tertiary thumb key is the innermost key of the partial bottom row. The remaining keys are unused. -[[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]] -#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/kle-miryoku-mapping-ergodox.png]] + +To build for any keyboard using the this layout (ergodone, ergodox_ez, +ergodox_infinity, hotdox) e.g. the ergodox_ez, + +#+BEGIN_SRC sh :tangle no +make ergodox_ez:manna-harbour_miryoku:flash +#+END_SRC + + +**** config.h + +Contains subset mapping. + +[[../../layouts/community/ergodox/manna-harbour_miryoku/config.h][layouts/community/ergodox/manna-harbour_miryoku/config.h]] +#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/config.h // <
> +#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,\ @@ -506,32 +678,62 @@ KC_NO, KC_NO, KC_NO, KC_NO, K32, K37, KC_NO, KC_ KC_NO, KC_NO, \ K33, K34, KC_NO, KC_NO, K35, K36 \ ) +#+END_SRC + + +**** keymap.c -#include "manna-harbour_miryoku.c" +Required by the build system. +[[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]] +#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c +// <
> #+END_SRC -To build for any keyboard using the this layout (ergodone, ergodox_ez, -ergodox_infinity, hotdox) e.g. the ergodox_ez, + +*** ortho_4x12 + +For the ortho_4x12 layout, the middle two columns, and the 2 keys on each end of +the bottom row are unused. This allows the hands to be positioned without ulnar +deviation of the wrists. + +In the implementation, the 2 unused middle columns bottom row keys are mapped as +duplicates of their adjacent keys to support alternative bottom row physical +layouts including 1x2uC (MIT), 1x2uR, 1x2uL, and 2x2u. + +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/kle-miryoku-mapping-ortho_4x12.png]] + +For split keyboards using this layout the halves can be positioned and rotated +for each hand and so an alternative mapping is provided. The right half is as +follows: The rightmost column bottom 3 keys is the pinkie column. The middle 4 +columns top 3 rows are for the remaining fingers. The pinkie column is one row +lower than the other columns to provide some column stagger. The bottom row +left 3 keys are the thumb keys. The remaining keys are unused. To select this +mapping, append ~MIRYOKU_MAPPING=SPLIT~ to the make command line when building. + +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/kle-miryoku-mapping-ortho_4x12-split.png]] + +To build for any keyboard using this layout (4x4, nori, chimera_ls, contra, +divergetm2, jj40, lets_split, lets_split_eh, meira, niu_mini, planck, telophase, +vitamins_included, zinc, zlant, ortho48, kbd4x, levinson, wavelet, plaid): #+BEGIN_SRC sh :tangle no -cd ../.. && make ergodox_ez:manna-harbour_miryoku:teensy +make planck/rev6:manna-harbour_miryoku:flash # planck +make keebio/levinson:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SPLIT # levinson #+END_SRC +**** config.h -*** ortho_4x12 - -For the ortho_4x12 layout, the right half as is as follows: The rightmost column -bottom 3 rows is the pinkie column. The middle 4 columns top 3 rows are for the -remaining fingers. The pinkie column is one row lower than the other columns to -provide some column stagger on ortho keyboards. The bottom row left 3 columns -are the thumb keys. The remaining keys are unused. +Contains subset mapping. -[[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]] -#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c +[[../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h][layouts/community/ortho_4x12/manna-harbour_miryoku/config.h]] +#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h // <
> +#pragma once + +#if defined MIRYOKU_MAPPING_SPLIT #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ @@ -544,18 +746,30 @@ K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09 K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\ K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\ ) +#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_ortho_4x12(\ +K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\ +K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\ +K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\ +KC_NO, KC_NO, K32, K33, K34, K34, K35, K35, K36, K37, KC_NO, KC_NO\ +) +#endif +#+END_SRC -#include "manna-harbour_miryoku.c" -#+END_SRC +**** keymap.c -To build for any keyboard using this layout (4x4, nori, chimera_ls, contra, -divergetm2, jj40, lets_split, lets_split_eh, meira, niu_mini, planck, telophase, -vitamins_included, zinc, zlant, ortho48, kbd4x, levinson, wavelet, plaid) -e.g. the levinson, +Required by the build system. -#+BEGIN_SRC sh :tangle no -make keebio/levinson:manna-harbour_miryoku:avrdude +[[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]] +#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c +// <
> #+END_SRC @@ -563,18 +777,30 @@ make keebio/levinson:manna-harbour_miryoku:avrdude To use the keymap on a keyboard which does not support the layouts feature, LAYOUT_miryoku is defined as a macro mapping onto the keyboard's own LAYOUT -macro, leaving the unused keys as KC_NO. The userspace keymap is then included. +macro, leaving the unused keys as KC_NO. + +The following are example keyboards. *** crkbd The outer columns are unused. -**** keymap.c +To build for this keyboard, -[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c][keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c]] -#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c +#+BEGIN_SRC sh :tangle no +make crkbd:manna-harbour_miryoku:flash +#+END_SRC + +**** config.h + +Contains subset mapping. + +[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h][keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h]] +#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h // <
> +#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, \ @@ -587,114 +813,33 @@ KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_ KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \ K32, K33, K34, K35, K36, K37 \ ) - -#include "manna-harbour_miryoku.c" - - -#ifdef SSD1306OLED - -#include "ssd1306.h" - -void matrix_init_user(void) { - iota_gfx_init(!has_usb()); // turns on the display -} - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_logo(void); - -void matrix_scan_user(void) { - iota_gfx_task(); -} - -void matrix_render_user(struct CharacterMatrix *matrix) { - if (host_keyboard_leds() & (1<display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); -} - -#endif //SSD1306OLED - #+END_SRC -**** config.h - -[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h][keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h]] -#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h -// <
> - -#pragma once - -#define EE_HANDS - -#ifdef RGB_MATRIX_ENABLE -#define RGB_MATRIX_KEYPRESSES // reacts to keypresses -#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#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 -#endif - -#define SSD1306OLED // old oled driver - -#+END_SRC - - -**** rules.mk - -[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk][keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk]] -#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk -# <
> - -RGB_MATRIX_ENABLE = WS2812 - -# old oled driver -SRC += ./lib/glcdfont.c \ - ./lib/logo_reader.c - -#+END_SRC - +**** keymap.c -To build for this keyboard, +Required by the build system. -#+BEGIN_SRC sh :tangle no -cd ../.. && make crkbd:manna-harbour_miryoku:flash +[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c][keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c]] +#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c +// <
> #+END_SRC -* Related Documentation -:PROPERTIES: -:CUSTOM_ID: related-documentation -:END: - +* Documentation ** QMK - https://qmk.fm/ - https://docs.qmk.fm/#/getting_started_introduction -- https://docs.qmk.fm/#/hardware_keyboard_guidelines - https://docs.qmk.fm/#/config_options - https://docs.qmk.fm/#/keycodes - https://docs.qmk.fm/#/feature_advanced_keycodes +- https://docs.qmk.fm/#/feature_layers +- https://docs.qmk.fm/#/mod_tap - https://docs.qmk.fm/#/feature_layouts - https://docs.qmk.fm/#/feature_userspace +- https://docs.qmk.fm/#/feature_mouse_keys - https://docs.qmk.fm/#/getting_started_make_guide @@ -703,3 +848,13 @@ cd ../.. && make crkbd:manna-harbour_miryoku:flash - https://orgmode.org/ - https://orgmode.org/manual/Tables.html - https://orgmode.org/manual/Working-with-Source-Code.html + + +* Contact + +For issues with this branch, or to request support for additional base layer +alphas, layouts, or keyboards, please [[https://github.com/manna-harbour/qmk_firmware/issues/new][open an issue]]. + +For more general discussion, please join a relevant [[https://www.reddit.com/user/manna_harbour/posts/?sort=new][recent thread]] or [[https://www.reddit.com/message/compose/?to=manna_harbour][send a PM]]. + +[[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/manna-harbour-boa-32.png]] diff --git a/users/manna-harbour_miryoku/rules.mk b/users/manna-harbour_miryoku/rules.mk index a54616b47aaa..ca135af07aee 100644 --- a/users/manna-harbour_miryoku/rules.mk +++ b/users/manna-harbour_miryoku/rules.mk @@ -1,5 +1,16 @@ # generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -LTO_ENABLE = yes +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control + +SRC += manna-harbour_miryoku.c # keymap + +# select alternative base layer alphas +ifneq ($(strip $(MIRYOKU_ALPHAS)),) + OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS) +endif + +# select alternative subset mappings +ifneq ($(strip $(MIRYOKU_MAPPING)),) + OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING) +endif From d353fcb99cfe345cde29cb7dc94cceaab82c610b Mon Sep 17 00:00:00 2001 From: Rozakiin <6567067+Rozakiin@users.noreply.github.com> Date: Tue, 23 Jun 2020 07:08:36 +0100 Subject: [PATCH 060/154] Add VIA support to Noxary x268 (#9450) * Update USB descriptors * Update default keymap for readability * Update readme description * Update rules.mk build options, enable bootmagic and mousekey * Add commented modern led code * Add VIA keymap * Update default keymap readme.md layout image * Update keyboards/noxary/x268/rules.mk remove incorrect comment * Update keyboards/noxary/x268/x268.c remove commented setPinOutput(B1) * Update keyboards/noxary/x268/keymaps/default/readme.md Flip order of layout image and title * Update keyboards/noxary/x268/keymaps/via/readme.md Flip order of layout image and title * Update LED function to led_update_kb() --- keyboards/noxary/x268/config.h | 8 +- .../noxary/x268/keymaps/default/keymap.c | 142 +++++++++++------- .../noxary/x268/keymaps/default/readme.md | 2 + keyboards/noxary/x268/keymaps/via/keymap.c | 111 ++++++++++++++ keyboards/noxary/x268/keymaps/via/readme.md | 3 + keyboards/noxary/x268/keymaps/via/rules.mk | 5 + keyboards/noxary/x268/readme.md | 3 +- keyboards/noxary/x268/rules.mk | 10 +- keyboards/noxary/x268/x268.c | 39 ++--- 9 files changed, 226 insertions(+), 97 deletions(-) create mode 100644 keyboards/noxary/x268/keymaps/via/keymap.c create mode 100644 keyboards/noxary/x268/keymaps/via/readme.md create mode 100644 keyboards/noxary/x268/keymaps/via/rules.mk diff --git a/keyboards/noxary/x268/config.h b/keyboards/noxary/x268/config.h index 0604f6529b30..c342da505851 100644 --- a/keyboards/noxary/x268/config.h +++ b/keyboards/noxary/x268/config.h @@ -20,12 +20,12 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 -#define PRODUCT_ID 0x0044 -#define DEVICE_VER 0x00F2 +#define VENDOR_ID 0x4E58 //"NX" +#define PRODUCT_ID 0x010C //268 +#define DEVICE_VER 0x0078 //"x" #define MANUFACTURER Noxary #define PRODUCT x268 -#define DESCRIPTION QMK keyboard firmware for x268 +#define DESCRIPTION A fully customizable RGB 65% keyboard. /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/noxary/x268/keymaps/default/keymap.c b/keyboards/noxary/x268/keymaps/default/keymap.c index ae07f5213d7d..7f26a6c10ecd 100644 --- a/keyboards/noxary/x268/keymaps/default/keymap.c +++ b/keyboards/noxary/x268/keymaps/default/keymap.c @@ -1,83 +1,111 @@ +/* Copyright 2020 Rozakiin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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. -#define _BL 0 -#define _FL1 1 -#define _FL2 2 +enum layer_names { + _BL, + _FL1, + _FL2, + _FL3 +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* _BL: Base Layer(Default) - For ISO enter use ANSI enter - * ,----------------------------------------------------------------. - * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|BSpc| Grv| - * |----------------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | Del| - * |----------------------------------------------------------------| - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| Ent|PgUp| - * |----------------------------------------------------------------| - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | Up|PgDn| - * |----------------------------------------------------------------| - * |Ctrl|Win |Alt | Space |Alt|Mo(1)|Ctrl|Lef|Dow|Rght| - * `----------------------------------------------------------------' + /* Base Layer - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │Bsp│ ` │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │PgU│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │Sft │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │ ↑ │PgD│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │Ctrl│Win │Alt │ Space │Alt │M(1)│Ctrl│ ← │ ↓ │ → │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ */ [_BL] = 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_BSLS, 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_NUHS, KC_ENT, KC_PGUP, 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_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(_FL1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - /* _FL1: Function Layer 1 - For ISO enter use ANSI enter - * ,----------------------------------------------------------------. - * | `|F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |PScr| | - * |----------------------------------------------------------------| - * | | | | |RST| | | | | | | | | | Ins| - * |----------------------------------------------------------------| - * | | | | | | | | | | | | | | |Home| - * |----------------------------------------------------------------| - * | | | | | | | | | |Bl-|Bl+| |Mute|Vol+| End| - * |----------------------------------------------------------------| - * | | | | BL_Toggle | | | | |Vol-| | - * `----------------------------------------------------------------' + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(_FL1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Function Layer 1 - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │Psc│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │RST│ │ │ │ │ │ │ │ │ │Ins│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hme│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │Bl-│Bl+│ │ Mute │Vl+│End│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │ │ │ │ BL_Toggle │ │ │ │ │Vl-│ │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ */ [_FL1] = 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, _______, RGB_TOG, RGB_VAI, RGB_SAI, RGB_HUI, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, RGB_VAD, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, _______, KC_MUTE, KC_VOLU, KC_END, - _______, _______, _______, BL_TOGG, _______, _______, _______, _______, KC_VOLD, _______), - /* _FL2: Function Layer 2 - For ISO enter use ANSI enter - * ,----------------------------------------------------------------. - * | | | | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | | | | | | | | | | - * |----------------------------------------------------------------| - * | | | | | | | | | | | - * `----------------------------------------------------------------' + _______, _______, _______, BL_TOGG, _______, _______, _______, _______, KC_VOLD, _______ + ), + /* Function Layer 2 - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ */ [_FL2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - - -}; - - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* Function Layer 3 - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ + */ + [_FL3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; \ No newline at end of file diff --git a/keyboards/noxary/x268/keymaps/default/readme.md b/keyboards/noxary/x268/keymaps/default/readme.md index 5d5bd69592ca..3540b3905042 100644 --- a/keyboards/noxary/x268/keymaps/default/readme.md +++ b/keyboards/noxary/x268/keymaps/default/readme.md @@ -1 +1,3 @@ # The default keymap for x268 + +![x268 Layout Image](https://i.imgur.com/D9jQz6g.png) diff --git a/keyboards/noxary/x268/keymaps/via/keymap.c b/keyboards/noxary/x268/keymaps/via/keymap.c new file mode 100644 index 000000000000..7f26a6c10ecd --- /dev/null +++ b/keyboards/noxary/x268/keymaps/via/keymap.c @@ -0,0 +1,111 @@ +/* Copyright 2020 Rozakiin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 { + _BL, + _FL1, + _FL2, + _FL3 +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base Layer - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │Bsp│ ` │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │PgU│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │Sft │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │ ↑ │PgD│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │Ctrl│Win │Alt │ Space │Alt │M(1)│Ctrl│ ← │ ↓ │ → │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ + */ + [_BL] = 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_BSLS, 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_NUHS, KC_ENT, KC_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(_FL1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Function Layer 1 - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │Psc│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │RST│ │ │ │ │ │ │ │ │ │Ins│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hme│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │Bl-│Bl+│ │ Mute │Vl+│End│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │ │ │ │ BL_Toggle │ │ │ │ │Vl-│ │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ + */ + [_FL1] = 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, _______, + RGB_TOG, RGB_VAI, RGB_SAI, RGB_HUI, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, RGB_VAD, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, _______, KC_MUTE, KC_VOLU, KC_END, + _______, _______, _______, BL_TOGG, _______, _______, _______, _______, KC_VOLD, _______ + ), + /* Function Layer 2 - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ + */ + [_FL2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* Function Layer 3 - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ + */ + [_FL3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; \ No newline at end of file diff --git a/keyboards/noxary/x268/keymaps/via/readme.md b/keyboards/noxary/x268/keymaps/via/readme.md new file mode 100644 index 000000000000..e0e0b9f92d02 --- /dev/null +++ b/keyboards/noxary/x268/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# The VIA keymap for x268 + +![x268 Layout Image](https://i.imgur.com/D9jQz6g.png) diff --git a/keyboards/noxary/x268/keymaps/via/rules.mk b/keyboards/noxary/x268/keymaps/via/rules.mk new file mode 100644 index 000000000000..c2e96d233b21 --- /dev/null +++ b/keyboards/noxary/x268/keymaps/via/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = no +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +LTO_ENABLE = yes diff --git a/keyboards/noxary/x268/readme.md b/keyboards/noxary/x268/readme.md index c1c05c34d584..4dd1a7c78a61 100644 --- a/keyboards/noxary/x268/readme.md +++ b/keyboards/noxary/x268/readme.md @@ -2,11 +2,10 @@ ![x268](https://geekhack.org/index.php?action=dlattach;topic=96377.0;attach=198826;image) -A fully customizable 65% keyboard. +A fully customizable RGB 65% keyboard. * Keyboard Maintainer: [Rozakiin](https://github.com/rozakiin) * Hardware Supported: x268 PCB - * rev1 * Hardware Availability: * [Noxary - 268](https://geekhack.org/index.php?topic=92066.0) * [LZ - CLS ms](https://geekhack.org/index.php?topic=96377) diff --git a/keyboards/noxary/x268/rules.mk b/keyboards/noxary/x268/rules.mk index a8654dc912f4..c4b8c21177e2 100644 --- a/keyboards/noxary/x268/rules.mk +++ b/keyboards/noxary/x268/rules.mk @@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 # 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 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 = yes # Enable keyboard backlight functionality on B7 by default -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboards/noxary/x268/x268.c b/keyboards/noxary/x268/x268.c index 3921270acc6f..589d59deff8b 100644 --- a/keyboards/noxary/x268/x268.c +++ b/keyboards/noxary/x268/x268.c @@ -1,4 +1,4 @@ -/* Copyright 2018 Rozakiin +/* Copyright 2020 Rozakiin * * This 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,39 +15,20 @@ */ #include "x268.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(B0); matrix_init_user(); } -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 0); PORTB |= (1 << 0); - } - else { - DDRB &= ~(1 << 0); PORTB &= ~(1 << 0); +bool led_update_kb(led_t led_state) { + if(led_update_user(led_state)) { + writePin(B0, led_state.caps_lock); } + return true; } From a8bb5840ad3e093b82e5c08fd594ab35c554a876 Mon Sep 17 00:00:00 2001 From: Rozakiin <6567067+Rozakiin@users.noreply.github.com> Date: Tue, 23 Jun 2020 07:24:33 +0100 Subject: [PATCH 061/154] Update VIA support for Noxary 268.2 (#9451) * Update readme.md description * Enable bootmagic lite * Update USB descriptor * Add modern led code * Update default keymap for readability * Update default keymap readme with layout image * Add VIA keymap * Update keyboards/noxary/268_2/keymaps/default/readme.md Flip order of layout image and title * Update keyboards/noxary/268_2/keymaps/via/readme.md Flip order of layout image and title * Update keyboards/noxary/268_2/readme.md bullet point keyboard maintainer * Update keyboards/noxary/268_2/readme.md Change list style --- keyboards/noxary/268_2/268_2.c | 19 +-- keyboards/noxary/268_2/config.h | 34 +----- .../noxary/268_2/keymaps/default/keymap.c | 68 ++++++++++- .../noxary/268_2/keymaps/default/readme.md | 4 +- keyboards/noxary/268_2/keymaps/via/keymap.c | 110 ++++++++++++++++++ keyboards/noxary/268_2/keymaps/via/readme.md | 3 + keyboards/noxary/268_2/keymaps/via/rules.mk | 5 + keyboards/noxary/268_2/readme.md | 8 +- keyboards/noxary/268_2/rules.mk | 2 +- 9 files changed, 202 insertions(+), 51 deletions(-) create mode 100644 keyboards/noxary/268_2/keymaps/via/keymap.c create mode 100644 keyboards/noxary/268_2/keymaps/via/readme.md create mode 100644 keyboards/noxary/268_2/keymaps/via/rules.mk diff --git a/keyboards/noxary/268_2/268_2.c b/keyboards/noxary/268_2/268_2.c index 5af56a386d67..9a2b4432d3d8 100644 --- a/keyboards/noxary/268_2/268_2.c +++ b/keyboards/noxary/268_2/268_2.c @@ -15,13 +15,16 @@ */ #include "268_2.h" -void led_set_kb(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - setPinOutput(B0); - writePinHigh(B0); - } else { - setPinInput(B0); - } +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + setPinOutput(B0); + matrix_init_user(); +} - led_set_user(usb_led); +bool led_update_kb(led_t led_state) { + if(led_update_user(led_state)) { + writePin(B0, led_state.caps_lock); + } + return true; } diff --git a/keyboards/noxary/268_2/config.h b/keyboards/noxary/268_2/config.h index fbfb97f02bf6..1d6681595bbc 100644 --- a/keyboards/noxary/268_2/config.h +++ b/keyboards/noxary/268_2/config.h @@ -20,12 +20,12 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 -#define PRODUCT_ID 0x0044 +#define VENDOR_ID 0x4E58 //"NX" +#define PRODUCT_ID 0x010C //268 #define DEVICE_VER 0x0002 #define MANUFACTURER Noxary #define PRODUCT 268.2 -#define DESCRIPTION QMK keyboard firmware for 268.2 +#define DESCRIPTION A fully customizable 65% keyboard. /* key matrix size */ #define MATRIX_ROWS 5 @@ -57,34 +57,6 @@ along with this program. If not, see . //define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 -// #define RGB_DI_PIN E2 -// #ifdef RGB_DI_PIN -// #define RGBLED_NUM 16 -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 -// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ -// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -// /*== all animations enable ==*/ -// #define RGBLIGHT_ANIMATIONS -// /*== or choose 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 -// /*== customize breathing effect ==*/ -// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ -// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 -// /*==== use exp() and sin() ====*/ -// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 -// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 -// #endif - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/noxary/268_2/keymaps/default/keymap.c b/keyboards/noxary/268_2/keymaps/default/keymap.c index 01d5613cac4e..90e392deb857 100644 --- a/keyboards/noxary/268_2/keymaps/default/keymap.c +++ b/keyboards/noxary/268_2/keymaps/default/keymap.c @@ -1,3 +1,18 @@ +/* Copyright 2020 Rozakiin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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. @@ -6,7 +21,9 @@ // entirely and just use numbers. enum layer_names { _BL, - _FL + _FL1, + _FL2, + _FL3 }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -28,10 +45,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_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(_FL), KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL1), KC_LEFT, KC_DOWN, KC_RGHT ), - - /* Function Layer + /* Function Layer 1 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ PScr │ │ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -44,11 +60,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │ │ │ │ BL Toggle │ │ │ │ │Vl-│ │ * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ */ - [_FL] = LAYOUT_65_ansi_blocker( + [_FL1] = 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_PSCR, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, KC_MUTE, KC_VOLU, KC_END, _______, _______, _______, BL_TOGG, _______, _______, _______, KC_VOLD, _______ - ) + ), + /* Function Layer 2 + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ + */ + [_FL2] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* Function Layer 3 + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ + */ + [_FL3] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; diff --git a/keyboards/noxary/268_2/keymaps/default/readme.md b/keyboards/noxary/268_2/keymaps/default/readme.md index c4c832cc645d..2dfcc984e742 100644 --- a/keyboards/noxary/268_2/keymaps/default/readme.md +++ b/keyboards/noxary/268_2/keymaps/default/readme.md @@ -1 +1,3 @@ -# The default keymap for 268_2 +# The default keymap for 268.2 + +![Noxary 268.2 Layout Image](https://i.imgur.com/oIQiqcy.png) diff --git a/keyboards/noxary/268_2/keymaps/via/keymap.c b/keyboards/noxary/268_2/keymaps/via/keymap.c new file mode 100644 index 000000000000..c4f044e4fe0b --- /dev/null +++ b/keyboards/noxary/268_2/keymaps/via/keymap.c @@ -0,0 +1,110 @@ +/* Copyright 2020 Rozakiin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 { + _BL, + _FL1, + _FL2, + _FL3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base Layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bspc │ ` │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │ ↑ │PgD│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │Ctrl│Win │Alt │ Space │Alt │ Fn │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ + */ + [_BL] = 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_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(_FL1), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Function Layer 1 + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ PScr │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │RST│ │ │ │ │ │ │ │ │ │Ins│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │Hom│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │Bl-│Bl+│ Mute │Vl+│End│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ BL Toggle │ │ │ │ │Vl-│ │ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ + */ + [_FL1] = 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_PSCR, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, KC_MUTE, KC_VOLU, KC_END, + _______, _______, _______, BL_TOGG, _______, _______, _______, KC_VOLD, _______ + ), + /* Function Layer 2 + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ + */ + [_FL2] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* Function Layer 3 + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ + */ + [_FL3] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/noxary/268_2/keymaps/via/readme.md b/keyboards/noxary/268_2/keymaps/via/readme.md new file mode 100644 index 000000000000..0918bfb97c8d --- /dev/null +++ b/keyboards/noxary/268_2/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# The VIA keymap for 268.2 + +![Noxary 268.2 Layout Image](https://i.imgur.com/oIQiqcy.png) diff --git a/keyboards/noxary/268_2/keymaps/via/rules.mk b/keyboards/noxary/268_2/keymaps/via/rules.mk new file mode 100644 index 000000000000..1974f5d3f591 --- /dev/null +++ b/keyboards/noxary/268_2/keymaps/via/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = no +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/noxary/268_2/readme.md b/keyboards/noxary/268_2/readme.md index 075a1d26c7d7..5689594c0bcd 100644 --- a/keyboards/noxary/268_2/readme.md +++ b/keyboards/noxary/268_2/readme.md @@ -1,12 +1,12 @@ # Noxary 268.2 -![268.2](https://www.keebtalk.com/uploads/db8059/original/2X/6/65b93c83cadd98bbf8e3b1d739621d54b682609a.jpg) +![Noxary 268.2](https://www.keebtalk.com/uploads/db8059/original/2X/6/65b93c83cadd98bbf8e3b1d739621d54b682609a.jpg) A fully customizable 65% keyboard. -Keyboard Maintainer: [Rozakiin](https://github.com/rozakiin) -Hardware Supported: 268.2 PCB -Hardware Availability: [Noxary](https://shop.noxary.co/collections/268-2/products/noxary-268-2-polycarbonate) +* Keyboard Maintainer: [Rozakiin](https://github.com/rozakiin) +* Hardware Supported: Noxary 268.2 PCB +* Hardware Availability: [Noxary](https://shop.noxary.co/collections/268-2/products/noxary-268-2-polycarbonate) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/noxary/268_2/rules.mk b/keyboards/noxary/268_2/rules.mk index 230ecc453810..168d3a2c120a 100644 --- a/keyboards/noxary/268_2/rules.mk +++ b/keyboards/noxary/268_2/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug From 9ae8a451978dac09365a95f1e0173166fca3d096 Mon Sep 17 00:00:00 2001 From: shela Date: Tue, 23 Jun 2020 16:24:23 +0900 Subject: [PATCH 062/154] fixed the layer limit of LT() (#9492) --- docs/feature_layers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_layers.md b/docs/feature_layers.md index c6ffb24053b6..d3ee747e69f6 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -19,7 +19,7 @@ These functions allow you to activate layers in various ways. Note that layers a ### Caveats :id=caveats -Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Specifically, dual function keys like `LT` and `MT` use a 16 bit keycode. 4 bits are used for the function identifier, the next 12 are divided into the parameters. Layer Tap uses 4 bits for the layer (and is why it's limited to layers 0-16, actually), while Mod Tap does the same, 4 bits for the identifier, 4 bits for which mods are used, and all of them use 8 bits for the keycode. Because of this, the keycode used is limited to `0xFF` (0-255), which are the basic keycodes only. +Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Specifically, dual function keys like `LT` and `MT` use a 16 bit keycode. 4 bits are used for the function identifier, the next 12 are divided into the parameters. Layer Tap uses 4 bits for the layer (and is why it's limited to layers 0-15, actually), while Mod Tap does the same, 4 bits for the identifier, 4 bits for which mods are used, and all of them use 8 bits for the keycode. Because of this, the keycode used is limited to `0xFF` (0-255), which are the basic keycodes only. Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this. From b3b617633c0df8e38145d6efb8d64cc4760559ef Mon Sep 17 00:00:00 2001 From: umi <57262844+umi-umi@users.noreply.github.com> Date: Tue, 23 Jun 2020 16:42:01 +0900 Subject: [PATCH 063/154] [Docs] Japanese translation of docs/feature_layers.md (#9252) * add feature_layers.md translation * update based on comment * update based on comment * update based on comment --- docs/ja/feature_advanced_keycodes.md | 57 +++------------- docs/ja/feature_layers.md | 99 ++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+), 48 deletions(-) create mode 100644 docs/ja/feature_layers.md diff --git a/docs/ja/feature_advanced_keycodes.md b/docs/ja/feature_advanced_keycodes.md index c6e21feb9463..502a67f80c43 100644 --- a/docs/ja/feature_advanced_keycodes.md +++ b/docs/ja/feature_advanced_keycodes.md @@ -1,53 +1,10 @@ -# レイヤーの切り替えとトグル :id=switching-and-toggling-layers +# 修飾キー :id=modifier-keys -これらの機能により、様々な方法でレイヤーをアクティブ化することができます。レイヤーは一般的に独立したレイアウトでは無いことに注意してください -- 複数のレイヤーを一度にアクティブ化することができ、レイヤーが `KC_TRNS` を使ってキーの押下を下のレイヤーに渡すことが一般的です。レイヤーの詳細については、[キーマップの概要](ja/keymap.md#keymap-and-layers)を見てください。MO()、LM()、TT() あるいは LT() を使って一時的なレイヤーの切り替えを使う場合、上のレイヤーのキーを透過にするようにしてください。さもないと意図したように動作しないかもしれません。 - -* `DF(layer)` - デフォルトレイヤーを切り替えます。デフォルトレイヤーは、他のレイヤーがその上に積み重なっている、常にアクティブな基本レイヤーです。デフォルトレイヤーの詳細については以下を見てください。これは QWERTY から Dvorak レイアウトに切り替えるために使うことができます。(これは一時的な切り替えであり、キーボードの電源が切れるまでしか持続しないことに注意してください。デフォルトレイヤーを永続的に変更するには、[process_record_user](ja/custom_quantum_functions.md#programming-the-behavior-of-any-keycode) 内で `set_single_persistent_default_layer` 関数を呼び出すなど、より深いカスタマイズが必要です。) -* `MO(layer)` - 一時的に*レイヤー*をアクティブにします。キーを放すとすぐに、レイヤーは非アクティブになります。 -* `LM(layer, mod)` - (`MO` のように)一時的に*レイヤー*をアクティブにしますが、モディファイア *mod* がアクティブな状態です。layer 0-15 と、左モディファイアのみをサポートします: `MOD_LCTL`、`MOD_LSFT`、`MOD_LALT`、`MOD_LGUI` (`KC_` の代わりに `MOD_` 定数を使うことに注意してください)。これらのモディファイアは、例えば `LM(_RAISE, MOD_LCTL | MOD_LALT)` のように、ビット単位の OR を使って組み合わせることができます。 -* `LT(layer, kc)` - ホールドされた時に*レイヤー*を一時的にアクティブにし、タップされた時に *kc* を送信します。layer 0-15 のみをサポートします。 -* `OSL(layer)` - 次のキーが押されるまで、一時的に*レイヤー*をアクティブにします。詳細と追加機能については、[ワンショットキー](ja/one_shot_keys.md)を見てください。 -* `TG(layer)` - *レイヤー*を切り替えます。非アクティブな場合はアクティブにし、逆も同様です。 -* `TO(layer)` - *レイヤー*をアクティブにし、他の全てのレイヤー(デフォルトレイヤーを除く)を非アクティブにします。この関数は特別です。1つのレイヤーをアクティブなレイヤースタックに追加/削除する代わりに、現在のアクティブなレイヤーを完全に置き換え、唯一上位のレイヤーを下位のレイヤーで置き換えることができるからです。これはキーダウンで(キーが押されるとすぐに)アクティブになります。 -* `TT(layer)` - レイヤーのタップ切り替え。キーを押したままにすると*レイヤー*がアクティブにされ、放すと非アクティブになります (`MO` 風)。繰り返しタップすると、レイヤーはオンあるいはオフを切り替えます (`TG` 風)。デフォルトでは5回のタップが必要ですが、`TAPPING_TOGGLE` を定義することで変更することができます -- 例えば、2回のタップだけで切り替えるには、`#define TAPPING_TOGGLE 2` を定義します。 - -## 注意事項 - -現在のところ、`LT()` と `MT()` は[基本的なキーコードセット](ja/keycodes_basic.md)に制限されています。つまり、`LCTL()`、`KC_TILD` あるいは `0xFF` より大きなキーコードを使うことができません。レイヤータップあるいはモッドタップのキーコードの一部として指定されたモディファイアは無視されます。タップしたキーコードにモディファイアを適用する必要がある場合は、[タップダンス](ja/feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys)を使うことができます。 - -さらに、モッドタップあるいはレイヤータップで少なくとも1つの右手用のモディファイアが指定された場合、指定された全てのモディファイアが右手用になるため、2つをうまく組み合わせて一致させることはできません。 - -# レイヤーの使用 - -レイヤーを切り替える時は注意してください。(キーボードを取り外さずに)そのレイヤーを非アクティブにすることができずレイヤーから移動できなくなる可能性があります。最も一般的な問題を避けるためのガイドラインを作成しました。 - -## 初心者 - -QMK を使い始めたばかりの場合は、全てを単純にしたいでしょう。レイヤーをセットアップする時は、これらのガイドラインに従ってください: - -* デフォルトの "base" レイヤーとして、layer 0 をセットアップします。これは通常の入力レイヤーであり、任意のレイアウト (qwerty、dvorak、colemak など)にすることができます。通常はキーボードのキーのほとんどまたは全てが定義されているため、これを最下位のレイヤーとして設定することが重要です。そうすることで、もしそれが他のレイヤーの上 (つまりレイヤー番号が大きい)にある場合の影響を防ぎます。 -* layer 0 をルートとして、レイヤーを "ツリー" レイアウトに配置します。他の複数のレイヤーから同じレイヤーに行こうとしないでください。 -* 各レイヤーのキーマップでは、より高い番号のレイヤーのみを参照します。レイヤーは最大の番号(最上位)のアクティブレイヤーから処理されるため、下位レイヤーの状態を変更するのは難しくエラーが発生しやすくなります。 - -## 中級ユーザ - -複数の基本レイヤーが必要な場合があります。例えば、QWERTY と Dvorak を切り替える場合、国ごとに異なるレイアウトを切り替える場合、あるいは異なるビデオゲームごとにレイアウトを切り替える場合などです。基本レイヤーは常に最小の番号のレイヤーである必要があります。複数の基本レイヤーがある場合、常にそれらを相互排他的に扱う必要があります。1つの基本レイヤーがオンの場合、他をオフにします。 - -## 上級ユーザ - -レイヤーがどのように動作し、何ができるかを理解したら、より創造的になります。初心者のセクションで列挙されている規則は、幾つかの巧妙な詳細を回避するのに役立ちますが、特に超コンパクトなキーボードのユーザにとって制約になる場合があります。レイヤーの仕組みを理解することで、レイヤーをより高度な方法で使うことができます。 - -レイヤーは番号順に上に積み重なっています。キーの押下の動作を決定する時に、QMK は上から順にレイヤーを走査し、`KC_TRNS` に設定されていない最初のアクティブなレイヤーに到達すると停止します。結果として、現在のレイヤーよりも数値的に低いレイヤーをアクティブにし、現在のレイヤー(あるいはアクティブでターゲットレイヤーよりも高い別のレイヤー)に `KC_TRNS` 以外のものがある場合、それが送信されるキーであり、アクティブ化したばかりのレイヤー上のキーではありません。これが、ほとんどの人の "なぜレイヤーが切り替わらないのか" 問題の原因です。 - -場合によっては、マクロ内あるいはタップダンスルーチンの一部としてレイヤーを切り替えほうが良いかもしれません。`layer_on` はレイヤーをアクティブにし、`layer_off` はそれを非アクティブにします。もっと多くのレイヤーに関する関数は、[action_layer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_layer.h) で見つけることができます。 - -# 修飾キー :id=modifier-keys - 以下のようにキーコードとモディファイアを組み合わせることができます。押すと、モディファイアのキーダウンイベントが送信され、次に `kc` のキーダウンイベントが送信されます。放すと、`kc` のキーアップイベントが送信され、次にモディファイアのキーアップイベントが送信されます。 | キー | エイリアス | 説明 | @@ -66,12 +23,16 @@ QMK を使い始めたばかりの場合は、全てを単純にしたいでし | `MEH(kc)` | | 左 Control、左 Shift、左 Alt を押しながら `kc` を押します。 | | `HYPR(kc)` | | 左 Control、左 Shift、左 Alt、左 GUI を押しながら `kc` を押します。 | -また、それらを繋げることができます。例えば、`LCTL(LALT(KC_DEL))` は1回のキー押下で Control+Alt+Delete を送信するキーを作成します。 +また、それらを繋げることができます。例えば、`LCTL(LALT(KC_DEL))` または `C(A(KC_DEL))` は1回のキー押下で Control+Alt+Delete を送信するキーを作成します。 -# 過去の内容 +# 過去の内容 :id=legacy-content このページには多くの機能が含まれていました。このページを構成していた多くのセクションをそれぞれのページに移動しました。これより下は全て単なるリダイレクトであるため、web上で古いリンクをたどっている人は探しているものを見つけることができます。 +## レイヤー :id=switching-and-toggling-layers + +* [レイヤー](ja/feature_layers.md) + ## モッドタップ :id=mod-tap * [モッドタップ](ja/mod_tap.md) diff --git a/docs/ja/feature_layers.md b/docs/ja/feature_layers.md new file mode 100644 index 000000000000..b855172094b0 --- /dev/null +++ b/docs/ja/feature_layers.md @@ -0,0 +1,99 @@ +# レイヤー :id=layers + + + +QMK ファームウェアの最も強力で良く使われている機能の一つは、レイヤーを使う機能です。ほとんどの人にとって、これはラップトップやタブレットキーボードにあるのと同じように、様々なキーを可能にするファンクションキーに相当します。 + +レイヤースタックがどのように動作するかの詳細な説明については、[キーマップの概要](ja/keymap.md#keymap-and-layers)を調べてください。 + +## レイヤーの切り替えとトグル :id=switching-and-toggling-layers + +以下の関数により、様々な方法でレイヤーをアクティブにすることができます。レイヤーは通常、独立したレイアウトでは無いことに注意してください -- 複数のレイヤーを一度にアクティブにすることができ、レイヤーが `KC_TRNS` を使ってキーの押下を下のレイヤーへと透過させることが一般的です。MO()、LM()、TT() あるいは LT() を使って一時的なレイヤーの切り替えを使う場合、上のレイヤーのキーを透過にするようにしてください。さもないと意図したように動作しないかもしれません。 + +* `DF(layer)` - デフォルトレイヤーを切り替えます。デフォルトレイヤーは、他のレイヤーがその上に積み重なっている、常にアクティブな基本レイヤーです。デフォルトレイヤーの詳細については以下を見てください。これは QWERTY から Dvorak レイアウトに切り替えるために使うことができます。(これは一時的な切り替えであり、キーボードの電源が切れるまでしか持続しないことに注意してください。デフォルトレイヤーを永続的に変更するには、[process_record_user](ja/custom_quantum_functions.md#programming-the-behavior-of-any-keycode) 内で `set_single_persistent_default_layer` 関数を呼び出すなど、より深いカスタマイズが必要です。) +* `MO(layer)` - 一時的に*レイヤー*をアクティブにします。キーを放すとすぐに、レイヤーは非アクティブになります。 +* `LM(layer, mod)` - (`MO` のように)一時的に*レイヤー*をアクティブにしますが、モディファイア *mod* がアクティブな状態です。layer 0-15 と、左モディファイアのみをサポートします: `MOD_LCTL`、`MOD_LSFT`、`MOD_LALT`、`MOD_LGUI` (`KC_` 定数の代わりに `MOD_` 定数を使うことに注意してください)。これらのモディファイアは、例えば `LM(_RAISE, MOD_LCTL | MOD_LALT)` のように、ビット単位の OR を使って組み合わせることができます。 +* `LT(layer, kc)` - ホールドされた時に*レイヤー*を一時的にアクティブにし、タップされた時に *kc* を送信します。layer 0-15 のみをサポートします。 +* `OSL(layer)` - 次のキーが押されるまで、一時的に*レイヤー*をアクティブにします。詳細と追加機能については、[ワンショットキー](ja/one_shot_keys.md)を見てください。 +* `TG(layer)` - *レイヤー*を切り替えます。非アクティブな場合はアクティブにし、逆も同様です。 +* `TO(layer)` - *レイヤー*をアクティブにし、他の全てのレイヤー(デフォルトレイヤーを除く)を非アクティブにします。この関数は特別です。1つのレイヤーをアクティブなレイヤースタックに追加/削除する代わりに、現在のアクティブなレイヤーを完全に置き換え、唯一上位のレイヤーを下位のレイヤーで置き換えることができるからです。これはキーダウンで(キーが押されるとすぐに)アクティブになります。 +* `TT(layer)` - レイヤーのタップ切り替え。キーを押したままにすると*レイヤー*がアクティブにされ、放すと非アクティブになります (`MO` 風)。繰り返しタップすると、レイヤーはオンあるいはオフを切り替えます (`TG` 風)。デフォルトでは5回のタップが必要ですが、`TAPPING_TOGGLE` を定義することで変更することができます -- 例えば、2回のタップだけで切り替えるには、`#define TAPPING_TOGGLE 2` を定義します。 + +### 注意事項 :id=caveats + +現在のところ、`LT()` と `MT()` は[基本的なキーコードセット](ja/keycodes_basic.md)に制限されています。つまり、`LCTL()`、`KC_TILD` あるいは `0xFF` より大きなキーコードを使うことができません。特に、`LT` と `MT` のような二重の機能キーは16ビットキーコードを使います。4ビットは機能の識別のために使われ、次の12ビットはパラメータに分かれます。レイヤータップはレイヤーに4ビットを使います(実はレイヤータップがレイヤー 0-16 に制限されている理由です)。モッドタップも同じですが、識別子に4ビット、モッドのために4ビットが使われ、全体でキーコードに8ビットを使います。このため、使用されるキーコードは `0xFF` (0-255) に制限され、基本的なキーコードのみです。 + +これを拡張してもせいぜい複雑になるだけでしょう。32ビットキーコードに移行すると、これの多くが解決されますが、キーマップマトリックスが使用する領域が2倍になります。また、問題が起きる可能性もあります。タップしたキーコードにモディファイアを適用する必要がある場合は、[タップダンス](ja/feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys)を使うことができます。 + +さらに、モッドタップあるいはレイヤータップで少なくとも1つの右手用のモディファイアが指定された場合、指定された全てのモディファイアが右手用になるため、2つをうまく組み合わせて一致させることはできません。 + +## レイヤーとの連携 :id=working-with-layers + +レイヤーを切り替える時は注意してください。(キーボードを取り外さずに)そのレイヤーを非アクティブにすることができずレイヤーから移動できなくなる可能性があります。最も一般的な問題を避けるためのガイドラインを作成しました。 + +### 初心者 :id=beginners + +QMK を使い始めたばかりの場合は、全てを単純にしたいでしょう。レイヤーをセットアップする時は、これらのガイドラインに従ってください: + +* デフォルトの "base" レイヤーとして、layer 0 をセットアップします。これは通常の入力レイヤーであり、任意のレイアウト (qwerty、dvorak、colemak など)にすることができます。通常はキーボードのキーのほとんどまたは全てが定義されているため、これを最下位のレイヤーとして設定することが重要です。そうすることで、もしそれが他のレイヤーの上 (つまりレイヤー番号が大きい)にある場合の影響を防ぎます。 +* layer 0 をルートとして、レイヤーを "ツリー" レイアウトに配置します。他の複数のレイヤーから同じレイヤーに行こうとしないでください。 +* 各レイヤーのキーマップでは、より高い番号のレイヤーのみを参照します。レイヤーは最大の番号(最上位)のアクティブレイヤーから処理されるため、下位レイヤーの状態を変更するのは難しくエラーが発生しやすくなります。 + +### 中級ユーザ :id=intermediate-users + +複数の基本レイヤーが必要な場合があります。例えば、QWERTY と Dvorak を切り替える場合、国ごとに異なるレイアウトを切り替える場合、あるいは異なるビデオゲームごとにレイアウトを切り替える場合などです。基本レイヤーは常に最小の番号のレイヤーである必要があります。複数の基本レイヤーがある場合、常にそれらを相互排他的に扱う必要があります。1つの基本レイヤーがオンの場合、他をオフにします。 + +### 上級ユーザ :id=advanced-users + +レイヤーがどのように動作し、何ができるかを理解したら、より創造的になります。初心者のセクションで列挙されている規則は、幾つかの巧妙な詳細を回避するのに役立ちますが、特に超コンパクトなキーボードのユーザにとって制約になる場合があります。レイヤーの仕組みを理解することで、レイヤーをより高度な方法で使うことができます。 + +レイヤーは番号順に上に積み重なっています。キーの押下の動作を決定する時に、QMK は上から順にレイヤーを走査し、`KC_TRNS` に設定されていない最初のアクティブなレイヤーに到達すると停止します。結果として、現在のレイヤーよりも数値的に低いレイヤーをアクティブにし、現在のレイヤー(あるいはアクティブでターゲットレイヤーよりも高い別のレイヤー)に `KC_TRNS` 以外のものがある場合、それが送信されるキーであり、アクティブ化したばかりのレイヤー上のキーではありません。これが、ほとんどの人の "なぜレイヤーが切り替わらないのか" 問題の原因です。 + +場合によっては、マクロ内あるいはタップダンスルーチンの一部としてレイヤーを切り替えほうが良いかもしれません。`layer_on` はレイヤーをアクティブにし、`layer_off` はそれを非アクティブにします。もっと多くのレイヤーに関する関数は、[action_layer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_layer.h) で見つけることができます。 + +## 関数 :id=functions + +レイヤーの使用あるいは操作に関係する多くの関数(と変数)があります。 + +| 関数 | 説明 | +|----------------------------------------------|---------------------------------------------------------------------------------------------------------| +| `layer_state_set(layer_mask)` | 直接レイヤーの状態を設定する (推奨。何をしているのか分かっていない場合は使わないでください)。 | +| `layer_clear()` | 全てのレイヤーを消去する (全てをオフにします)。 | +| `layer_move(layer)` | 指定されたレイヤーをオンにし、それ以外をオフにする。 | +| `layer_on(layer)` | 指定されたレイヤーをオンにし、それ以外を既存の状態のままにする。 | +| `layer_off(layer)` | 指定されたレイヤーをオフにし、それ以外を既存の状態のままにする。 | +| `layer_invert(layer)` | 指定されたレイヤーの状態を反転/トグルする。 | +| `layer_or(layer_mask)` | 指定されたレイヤーと既存のレイヤー状態の間で一致するビットに基づいてレイヤーをオンにする。 | +| `layer_and(layer_mask)` | 指定されたレイヤーと既存のレイヤー状態の間で有効なビットに基づいてレイヤーをオンにする。 | +| `layer_xor(layer_mask)` | 指定されたレイヤーと既存のレイヤー状態の間で一致しないビットに基づいてレイヤーをオンにする。 | +| `layer_debug(layer_mask)` | デバッガのコンソールに現在のビットマスクと最も高いレイヤーを出力する。 | +| `default_layer_set(layer_mask)` | 直接デフォルトレイヤーの状態を設定する (推奨。何をしているのか分かっていない場合は使わないでください)。 | +| `default_layer_or(layer_mask)` | 指定されたレイヤーと既存のデフォルトレイヤー状態の間で一致するビットに基づいてレイヤーをオンにする。 | +| `default_layer_and(layer_mask)` | 指定されたレイヤーと既存のデフォルトレイヤー状態の間で一致する有効なビットに基づいてレイヤーをオンにする。 | +| `default_layer_xor(layer_mask)` | 指定されたレイヤーと既存のデフォルトレイヤー状態の間で一致しないビットに基づいてレイヤーをオンにする。 | +| `default_layer_debug(layer_mask)` | デバッガのコンソールに現在のビットマスクと最も高いアクティブなレイヤーを出力する。 | +| [`set_single_persistent_default_layer(layer)`](ja/ref_functions.md#setting-the-persistent-default-layer) | デフォルトレイヤーを設定し、それを永続化メモリ (EEPROM) に書き込む。 | +| [`update_tri_layer(x, y, z)`](ja/ref_functions.md#update_tri_layerx-y-z) | レイヤー `x` と `y` の両方がオンであるかを調べ、それに基づいて `z` を設定する(両方がオンの場合オン、そうでなければオフ)。 | +| [`update_tri_layer_state(state, x, y, z)`](ja/ref_functions.md#update_tri_layer_statestate-x-y-z) | `update_tri_layer(x, y, z)` と同じことをするが、`layer_state_set_*` 関数から呼ばれる。 | + + +呼び出すことができる関数に加えて、レイヤーが変更されるたびに呼び出されるコールバック関数が幾つかあります。これはレイヤー状態を関数に渡し、読み取りや変更することができます。 + +| コールバック | 説明 | +|-----------------------------------------------------|----------------------------------------------------------------------------------------| +| `layer_state_set_kb(layer_state_t state)` | キーボードレベルのレイヤー関数のためのコールバック。 | +| `layer_state_set_user(layer_state_t state)` | ユーザレベルのレイヤー関数のためのコールバック。 | +| `default_layer_state_set_kb(layer_state_t state)` | キーボードレベルのデフォルトレイヤー関数のためのコールバック。キーボードの初期化時に呼ばれます。 | +| `default_layer_state_set_user(layer_state_t state)` | ユーザレベルのデフォルトレイヤー関数のためのコールバック。キーボードの初期化時に呼ばれます。 | + +?> これらのコールバックを使うための追加の情報については、[レイヤー変換コード](ja/custom_quantum_functions.md#layer-change-code)のドキュメントを調べてください。 + +| チェック関数 | 説明 | +|-------------------------------------------|------------------------------------------------------------------------------| +| `layer_state_cmp(cmp_layer_state, layer)` | これは `cmp_layer_state` を調べて、指定された `layer` が有効かどうかを確認します。これは、レイヤーコールバックで使うためのものです。 | +| `layer_state_is(layer)` | これはレイヤーの状態を調べて、指定された `layer` が有効かどうかを確認します。(グローバルレイヤー状態については、`layer_state_cmp` を呼びます)。 | + +!> `IS_LAYER_ON(layer)` もありますが、`layer_state_cmp` 関数には、レイヤー0で正しい値を返すようにするために追加の処理があります。さもないと、レイヤー0がオンになっているかどうかを確認する時に誤った値が返されることがあります。 From 146873fd8e6f3ca08ba1c0a283f70cb2e72c0c83 Mon Sep 17 00:00:00 2001 From: Brandon Schlack Date: Tue, 23 Jun 2020 01:27:34 -0700 Subject: [PATCH 064/154] Add more community layout support to Discipline (#8540) --- keyboards/coseyfannitutti/discipline/discipline.h | 8 ++++++-- keyboards/coseyfannitutti/discipline/rules.mk | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/keyboards/coseyfannitutti/discipline/discipline.h b/keyboards/coseyfannitutti/discipline/discipline.h index 3369d7efb416..61ac086c8cdf 100644 --- a/keyboards/coseyfannitutti/discipline/discipline.h +++ b/keyboards/coseyfannitutti/discipline/discipline.h @@ -34,7 +34,7 @@ { K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \ } -#define LAYOUT_65_ansi_2_right_mods( \ +#define LAYOUT_65_ansi_blocker( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ @@ -48,6 +48,8 @@ { K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E} \ } +#define LAYOUT_65_ansi_2_right_mods LAYOUT_65_ansi_blocker + #define LAYOUT_wkl_ansi_2_right_mods( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ @@ -90,7 +92,7 @@ { K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \ } -#define LAYOUT_65_iso_2_right_mods( \ +#define LAYOUT_65_iso_blocker( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \ @@ -104,6 +106,8 @@ { K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E} \ } +#define LAYOUT_65_iso_2_right_mods LAYOUT_65_iso_blocker + #define LAYOUT_wkl_iso_2_right_mods( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ diff --git a/keyboards/coseyfannitutti/discipline/rules.mk b/keyboards/coseyfannitutti/discipline/rules.mk index 5cf0b039655d..f556cb1d4463 100644 --- a/keyboards/coseyfannitutti/discipline/rules.mk +++ b/keyboards/coseyfannitutti/discipline/rules.mk @@ -35,4 +35,4 @@ AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs -LAYOUTS = 65_ansi 65_iso +LAYOUTS = 65_ansi 65_ansi_blocker 65_iso 65_iso_blocker From b0e30862d6d9d0d748ee9861e5751d5e9a885bfb Mon Sep 17 00:00:00 2001 From: Stefano Date: Tue, 23 Jun 2020 10:28:05 +0200 Subject: [PATCH 065/154] bm43a stevexyz keymap (#9468) Co-authored-by: Joel Challis Co-authored-by: steve --- keyboards/bm43a/keymaps/stevexyz/keymap.c | 40 ++++++++++++++++++++++ keyboards/bm43a/keymaps/stevexyz/readme.md | 25 ++++++++++++++ keyboards/bm43a/keymaps/stevexyz/rules.mk | 8 +++++ 3 files changed, 73 insertions(+) create mode 100644 keyboards/bm43a/keymaps/stevexyz/keymap.c create mode 100644 keyboards/bm43a/keymaps/stevexyz/readme.md create mode 100644 keyboards/bm43a/keymaps/stevexyz/rules.mk diff --git a/keyboards/bm43a/keymaps/stevexyz/keymap.c b/keyboards/bm43a/keymaps/stevexyz/keymap.c new file mode 100644 index 000000000000..04df426ba994 --- /dev/null +++ b/keyboards/bm43a/keymaps/stevexyz/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2020 Stefano Maragò + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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] = { // 12+11+11+9 + [0] = LAYOUT( + MT(MOD_LGUI,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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_DOT, + KC_LCTL, TT(1), KC_LALT, KC_SPC, MT(MOD_RSFT,KC_SPC), TT(1), 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_LSFT, KC_GRV, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_SCLN, KC_QUOT, KC_PGUP, KC_SLSH, + KC_LCTL, LT(2,KC_APP), KC_LALT, KC_SPC, MT(MOD_RSFT,KC_SPC), LT(2,KC_INS), KC_HOME, KC_PGDN, KC_END ), + [2] = LAYOUT( + DF(0), KC_PSCR, KC_SLCK, KC_PAUS, KC_PSLS, KC_PAST, KC_7, KC_8, KC_9, KC_PMNS, KC_PEQL, KC_BSPC, + KC_CAPS, KC_MPLY, KC_STOP, KC_MPRV, KC_MNXT, XXXXXXX, KC_4, KC_5, KC_6, KC_PPLS, KC_PENT, + DF(2), KC_MUTE, KC_VOLD, KC_VOLU, KC_COMM, KC_1, KC_2, KC_3, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, + DF(3), XXXXXXX, XXXXXXX, KC_SPC, KC_0, KC_DOT, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT ), + [3] = LAYOUT( + DF(0), KC_SLEP, KC_BRID, KC_BRIU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, + XXXXXXX, BL_TOGG, BL_DEC, BL_INC, BL_STEP, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, RGB_TOG, RGB_RMOD, RGB_MOD, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), +}; + diff --git a/keyboards/bm43a/keymaps/stevexyz/readme.md b/keyboards/bm43a/keymaps/stevexyz/readme.md new file mode 100644 index 000000000000..9e4da10d2ad4 --- /dev/null +++ b/keyboards/bm43a/keymaps/stevexyz/readme.md @@ -0,0 +1,25 @@ +This is a full-featured bm43a layout inspired by the smaller "Super Micro gherkin" and "jj28" sisters. + +In addition to the default key layer, there is a function/numbers/symbols layer easily activated with either one of the two "meta" (red) keys and containing almost all keyset missing. + +On top of this, activated with both meta keys, there a system layer where are placed media keys, mouse emulation, and Numpad in addition to the PrintScreen/ScrLock/Pause keys. + +The below picture show all layers on the actual keys (if someone would be able to print these labels let me know! :)). + +![layout](https://raw.githubusercontent.com/stevexyz/qmk_firmware/master/keyboards/bm43a/keymaps/stevexyz/layout.jpeg) + +Notes: +- The Windows/OS key is overlayed with the Esc one +- To activate permanently the function/number/symbols layer you can use the "layer tap toggle" functionality (now set to the default 5 presses). For the system layer to be activated permanently is enough to hit shift in this layer (so with the two meta keys pressed) +- From the System Layer you can "jump" to an additional Lights layer pressing the control key +- Meta-Esc (or simply Esc from the System and Lights layers) and the keyboard is coming back to default key layer in case they are activated permanently + + +And a view on the actual build: + +![layout](https://raw.githubusercontent.com/stevexyz/qmk_firmware/master/keyboards/bm43a/keymaps/stevexyz/actualbuild.jpeg) + +In order to compile the module from qmk root directory use the command 'make bm43a:stevexyz' + +And in order to upload the new firmware use the command: 'bin/qmk flash -kb bm43a -km stevexyz' (you can initiate programming with keyboard RESET key, that in this keymap has been moved on the backspace button in the "lights" layer) + diff --git a/keyboards/bm43a/keymaps/stevexyz/rules.mk b/keyboards/bm43a/keymaps/stevexyz/rules.mk new file mode 100644 index 000000000000..fa2ef5c2b28a --- /dev/null +++ b/keyboards/bm43a/keymaps/stevexyz/rules.mk @@ -0,0 +1,8 @@ +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +COMMAND_ENABLE = no # Commands for debug and configuration +CONSOLE_ENABLE = no # Console for debug + +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow From a502ce43c3073325f7273e400f5524a3e8a61cdc Mon Sep 17 00:00:00 2001 From: moyi4681 Date: Tue, 23 Jun 2020 16:32:45 +0800 Subject: [PATCH 066/154] create maja info json (#9472) --- keyboards/kbdfans/maja/info.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 keyboards/kbdfans/maja/info.json diff --git a/keyboards/kbdfans/maja/info.json b/keyboards/kbdfans/maja/info.json new file mode 100644 index 000000000000..94760fb2a6ec --- /dev/null +++ b/keyboards/kbdfans/maja/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "maja", + "url": "", + "maintainer": "KBDFANS", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":2.5, "y":4, "w":1.5}, {"label":"Alt", "x":4, "y":4, "w":2}, {"x":6, "y":4, "w":1.25}, {"label":"Alt", "x":7.25, "y":4, "w":2.75}, {"label":"Win", "x":10, "y":4, "w":1.5}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}, {"x":15, "y":4}] + } + } +} From aea2d6845a99973d7a1663382bcc7a0d0e6067e0 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 23 Jun 2020 18:40:00 +1000 Subject: [PATCH 067/154] Fix error_log complaint about Big Series boards (#9510) --- keyboards/bigseries/1key/info.json | 20 ++++++++++--------- keyboards/bigseries/1key/rules.mk | 32 +++++++++++++++++++++++++++++- keyboards/bigseries/2key/info.json | 21 +++++++++++--------- keyboards/bigseries/2key/rules.mk | 32 +++++++++++++++++++++++++++++- keyboards/bigseries/3key/info.json | 22 +++++++++++--------- keyboards/bigseries/3key/rules.mk | 32 +++++++++++++++++++++++++++++- keyboards/bigseries/4key/info.json | 24 +++++++++++++--------- keyboards/bigseries/4key/rules.mk | 32 +++++++++++++++++++++++++++++- keyboards/bigseries/rules.mk | 27 ------------------------- 9 files changed, 175 insertions(+), 67 deletions(-) delete mode 100755 keyboards/bigseries/rules.mk diff --git a/keyboards/bigseries/1key/info.json b/keyboards/bigseries/1key/info.json index ff2fd54c575f..a289e122d175 100644 --- a/keyboards/bigseries/1key/info.json +++ b/keyboards/bigseries/1key/info.json @@ -1,12 +1,14 @@ { - "keyboard_name": "Big Series 1-Key", - "url": "", - "maintainer": "qmk", - "width": 4, - "height": 4, - "layouts": { - "LAYOUT": { - "layout": [{"x":0, "y":0, "w":4, "h":4}] + "keyboard_name": "Big Series 1-Key", + "url": "", + "maintainer": "qmk", + "width": 4, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0, "w": 4, "h": 4} + ] + } } - } } diff --git a/keyboards/bigseries/1key/rules.mk b/keyboards/bigseries/1key/rules.mk index 772d56beb6df..111ac42f9f8a 100755 --- a/keyboards/bigseries/1key/rules.mk +++ b/keyboards/bigseries/1key/rules.mk @@ -1 +1,31 @@ -# Dummy file to make the QMK build system happy \ No newline at end of file +# MCU name +MCU = atmega32u2 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/bigseries/2key/info.json b/keyboards/bigseries/2key/info.json index 2aea4d200568..faa5ac8545f8 100644 --- a/keyboards/bigseries/2key/info.json +++ b/keyboards/bigseries/2key/info.json @@ -1,12 +1,15 @@ { - "keyboard_name": "Big Series 2-Key", - "url": "", - "maintainer": "qmk", - "width": 8, - "height": 4, - "layouts": { - "LAYOUT": { - "layout": [{"x":0, "y":0, "w":4, "h":4}, {"x":4, "y":0, "w":4, "h":4}] + "keyboard_name": "Big Series 2-Key", + "url": "", + "maintainer": "qmk", + "width": 8, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0, "w": 4, "h": 4}, + {"x": 4, "y": 0, "w": 4, "h": 4} + ] + } } - } } diff --git a/keyboards/bigseries/2key/rules.mk b/keyboards/bigseries/2key/rules.mk index 772d56beb6df..111ac42f9f8a 100755 --- a/keyboards/bigseries/2key/rules.mk +++ b/keyboards/bigseries/2key/rules.mk @@ -1 +1,31 @@ -# Dummy file to make the QMK build system happy \ No newline at end of file +# MCU name +MCU = atmega32u2 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/bigseries/3key/info.json b/keyboards/bigseries/3key/info.json index 8f0b8c55c203..4e48ca47e66a 100644 --- a/keyboards/bigseries/3key/info.json +++ b/keyboards/bigseries/3key/info.json @@ -1,12 +1,16 @@ { - "keyboard_name": "Big Series 3-Key", - "url": "", - "maintainer": "qmk", - "width": 12, - "height": 4, - "layouts": { - "LAYOUT": { - "layout": [{"x":0, "y":0, "w":4, "h":4}, {"x":4, "y":0, "w":4, "h":4}, {"x":8, "y":0, "w":4, "h":4}] + "keyboard_name": "Big Series 3-Key", + "url": "", + "maintainer": "qmk", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0, "w": 4, "h": 4}, + {"x": 4, "y": 0, "w": 4, "h": 4}, + {"x": 8, "y": 0, "w": 4, "h": 4} + ] + } } - } } diff --git a/keyboards/bigseries/3key/rules.mk b/keyboards/bigseries/3key/rules.mk index 772d56beb6df..111ac42f9f8a 100755 --- a/keyboards/bigseries/3key/rules.mk +++ b/keyboards/bigseries/3key/rules.mk @@ -1 +1,31 @@ -# Dummy file to make the QMK build system happy \ No newline at end of file +# MCU name +MCU = atmega32u2 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/bigseries/4key/info.json b/keyboards/bigseries/4key/info.json index 0bdee578a731..f31e4826a7dc 100644 --- a/keyboards/bigseries/4key/info.json +++ b/keyboards/bigseries/4key/info.json @@ -1,12 +1,18 @@ { - "keyboard_name": "Big Series 4-Key", - "url": "", - "maintainer": "qmk", - "width": 8, - "height": 8, - "layouts": { - "LAYOUT": { - "layout": [{"x":0, "y":0, "w":4, "h":4}, {"x":4, "y":0, "w":4, "h":4}, {"x":0, "y":4, "w":4, "h":4}, {"x":4, "y":4, "w":4, "h":4}] + "keyboard_name": "Big Series 4-Key", + "url": "", + "maintainer": "qmk", + "width": 8, + "height": 8, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0, "w": 4, "h": 4}, + {"x": 4, "y": 0, "w": 4, "h": 4}, + + {"x": 0, "y": 4, "w": 4, "h": 4}, + {"x": 4, "y": 4, "w": 4, "h": 4} + ] + } } - } } diff --git a/keyboards/bigseries/4key/rules.mk b/keyboards/bigseries/4key/rules.mk index 772d56beb6df..111ac42f9f8a 100755 --- a/keyboards/bigseries/4key/rules.mk +++ b/keyboards/bigseries/4key/rules.mk @@ -1 +1,31 @@ -# Dummy file to make the QMK build system happy \ No newline at end of file +# MCU name +MCU = atmega32u2 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/bigseries/rules.mk b/keyboards/bigseries/rules.mk deleted file mode 100755 index 2f52d9558623..000000000000 --- a/keyboards/bigseries/rules.mk +++ /dev/null @@ -1,27 +0,0 @@ -# MCU name -MCU = atmega32u2 - -# Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp -BOOTLOADER = atmel-dfu - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Custom backlighting code is used, so this should not be enabled -AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expansion port. Not compatible with RGBLIGHT below -RGBLIGHT_ENABLE = yes # This can be enabled if a ws2812 strip is connected to the expansion port. - From 3028662fa3b86be55e13875e82ec81969fca03be Mon Sep 17 00:00:00 2001 From: Danny Date: Tue, 23 Jun 2020 05:05:44 -0400 Subject: [PATCH 068/154] [Keyboard] Add KBO-5000 keyboard (#9381) * Initial fork of Sinc * Setup keymaps, layouts, and encoders * Add ANSI configurator layout * Add ISO layout for configurator * Add all layout option for configurator * Fix spacing * Remove extra line * Remove unneeded ifdef --- keyboards/keebio/kbo5000/config.h | 21 ++ keyboards/keebio/kbo5000/info.json | 339 ++++++++++++++++++ keyboards/keebio/kbo5000/kbo5000.c | 1 + keyboards/keebio/kbo5000/kbo5000.h | 7 + .../keebio/kbo5000/keymaps/default/keymap.c | 58 +++ keyboards/keebio/kbo5000/keymaps/iso/keymap.c | 58 +++ keyboards/keebio/kbo5000/keymaps/via/config.h | 3 + keyboards/keebio/kbo5000/keymaps/via/keymap.c | 58 +++ keyboards/keebio/kbo5000/keymaps/via/rules.mk | 3 + keyboards/keebio/kbo5000/readme.md | 20 ++ keyboards/keebio/kbo5000/rev1/config.h | 65 ++++ keyboards/keebio/kbo5000/rev1/rev1.c | 32 ++ keyboards/keebio/kbo5000/rev1/rev1.h | 73 ++++ keyboards/keebio/kbo5000/rev1/rules.mk | 3 + keyboards/keebio/kbo5000/rules.mk | 34 ++ 15 files changed, 775 insertions(+) create mode 100644 keyboards/keebio/kbo5000/config.h create mode 100644 keyboards/keebio/kbo5000/info.json create mode 100644 keyboards/keebio/kbo5000/kbo5000.c create mode 100644 keyboards/keebio/kbo5000/kbo5000.h create mode 100644 keyboards/keebio/kbo5000/keymaps/default/keymap.c create mode 100644 keyboards/keebio/kbo5000/keymaps/iso/keymap.c create mode 100644 keyboards/keebio/kbo5000/keymaps/via/config.h create mode 100644 keyboards/keebio/kbo5000/keymaps/via/keymap.c create mode 100644 keyboards/keebio/kbo5000/keymaps/via/rules.mk create mode 100644 keyboards/keebio/kbo5000/readme.md create mode 100644 keyboards/keebio/kbo5000/rev1/config.h create mode 100644 keyboards/keebio/kbo5000/rev1/rev1.c create mode 100644 keyboards/keebio/kbo5000/rev1/rev1.h create mode 100644 keyboards/keebio/kbo5000/rev1/rules.mk create mode 100644 keyboards/keebio/kbo5000/rules.mk diff --git a/keyboards/keebio/kbo5000/config.h b/keyboards/keebio/kbo5000/config.h new file mode 100644 index 000000000000..cfb6bf4ffccd --- /dev/null +++ b/keyboards/keebio/kbo5000/config.h @@ -0,0 +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 . +*/ + +#pragma once + +#include "config_common.h" diff --git a/keyboards/keebio/kbo5000/info.json b/keyboards/keebio/kbo5000/info.json new file mode 100644 index 000000000000..222587c26b3f --- /dev/null +++ b/keyboards/keebio/kbo5000/info.json @@ -0,0 +1,339 @@ +{ + "keyboard_name": "KBO-5000", + "url": "https://keeb.io", + "maintainer": "nooges", + "width": 20.5, + "height": 6.25, + "layouts": { + "LAYOUT_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + + {"label":"F7", "x":10, "y":0}, + {"label":"F8", "x":11, "y":0}, + {"label":"F9", "x":12.5, "y":0}, + {"label":"F10", "x":13.5, "y":0}, + {"label":"F11", "x":14.5, "y":0}, + {"label":"F12", "x":15.5, "y":0}, + {"label":"Prt Sc", "x":17.5, "y":0}, + {"label":"Scr Lk", "x":18.5, "y":0}, + {"label":"Pause", "x":19.5, "y":0}, + + {"label":"F13", "x":0, "y":1.25}, + {"label":"~", "x":1.5, "y":1.25}, + {"label":"!", "x":2.5, "y":1.25}, + {"label":"@", "x":3.5, "y":1.25}, + {"label":"#", "x":4.5, "y":1.25}, + {"label":"$", "x":5.5, "y":1.25}, + {"label":"%", "x":6.5, "y":1.25}, + {"label":"^", "x":7.5, "y":1.25}, + + {"label":"&", "x":10, "y":1.25}, + {"label":"*", "x":11, "y":1.25}, + {"label":"(", "x":12, "y":1.25}, + {"label":")", "x":13, "y":1.25}, + {"label":"_", "x":14, "y":1.25}, + {"label":"+", "x":15, "y":1.25}, + {"label":"Del", "x":16, "y":1.25}, + {"label":"Bksp", "x":17, "y":1.25}, + {"label":"Ins", "x":18.5, "y":1.25}, + {"label":"Pg Up", "x":19.5, "y":1.25}, + + {"label":"F14", "x":0, "y":2.25}, + {"label":"Tab", "x":1.5, "y":2.25, "w":1.5}, + {"label":"Q", "x":3, "y":2.25}, + {"label":"W", "x":4, "y":2.25}, + {"label":"E", "x":5, "y":2.25}, + {"label":"R", "x":6, "y":2.25}, + {"label":"T", "x":7, "y":2.25}, + + {"label":"Y", "x":9.5, "y":2.25}, + {"label":"U", "x":10.5, "y":2.25}, + {"label":"I", "x":11.5, "y":2.25}, + {"label":"O", "x":12.5, "y":2.25}, + {"label":"P", "x":13.5, "y":2.25}, + {"label":"{", "x":14.5, "y":2.25}, + {"label":"}", "x":15.5, "y":2.25}, + {"label":"|", "x":16.5, "y":2.25, "w":1.5}, + {"label":"Del", "x":18.5, "y":2.25}, + {"label":"Pg Dn", "x":19.5, "y":2.25}, + + {"label":"F15", "x":0, "y":3.25}, + {"label":"Caps Lock", "x":1.5, "y":3.25, "w":1.75}, + {"label":"A", "x":3.25, "y":3.25}, + {"label":"S", "x":4.25, "y":3.25}, + {"label":"D", "x":5.25, "y":3.25}, + {"label":"F", "x":6.25, "y":3.25}, + {"label":"G", "x":7.25, "y":3.25}, + + {"label":"H", "x":9.75, "y":3.25}, + {"label":"J", "x":10.75, "y":3.25}, + {"label":"K", "x":11.75, "y":3.25}, + {"label":"L", "x":12.75, "y":3.25}, + {"label":":", "x":13.75, "y":3.25}, + {"label":"\"", "x":14.75, "y":3.25}, + {"label":"Enter", "x":15.75, "y":3.25, "w":2.25}, + {"label":"Home", "x":18.5, "y":3.25}, + {"label":"End", "x":19.5, "y":3.25}, + + {"label":"F16", "x":0, "y":4.25}, + {"label":"Shift", "x":1.5, "y":4.25, "w":2.25}, + {"label":"Z", "x":3.75, "y":4.25}, + {"label":"X", "x":4.75, "y":4.25}, + {"label":"C", "x":5.75, "y":4.25}, + {"label":"V", "x":6.75, "y":4.25}, + {"label":"B", "x":7.75, "y":4.25}, + {"label":"N", "x":10.25, "y":4.25}, + {"label":"M", "x":11.25, "y":4.25}, + {"label":"<", "x":12.25, "y":4.25}, + {"label":">", "x":13.25, "y":4.25}, + {"label":"?", "x":14.25, "y":4.25}, + {"label":"Shift", "x":15.25, "y":4.25, "w":1.75}, + {"label":"Up", "x":18.5, "y":4.25}, + + {"label":"F17", "x":0, "y":5.25}, + {"label":"Ctrl", "x":1.5, "y":5.25, "w":1.25}, + {"label":"Win", "x":2.75, "y":5.25}, + {"label":"Alt", "x":3.75, "y":5.25, "w":1.25}, + {"label":"Fn", "x":5, "y":5.25, "w":1.25}, + {"label":"Space", "x":6.25, "y":5.25}, + {"label":"Fn", "x":7.25, "y":5.25, "w":1.25}, + {"label":"Fn", "x":10, "y":5.25, "w":1.25}, + {"label":"Space", "x":11.25, "y":5.25, "w":2.25}, + {"label":"Alt", "x":13.5, "y":5.25, "w":1.25}, + {"label":"Win", "x":14.75, "y":5.25}, + {"label":"Ctrl", "x":15.75, "y":5.25, "w":1.25}, + {"label":"Left", "x":17.5, "y":5.25}, + {"label":"Down", "x":18.5, "y":5.25}, + {"label":"Right", "x":19.5, "y":5.25} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + + {"label":"F7", "x":10, "y":0}, + {"label":"F8", "x":11, "y":0}, + {"label":"F9", "x":12.5, "y":0}, + {"label":"F10", "x":13.5, "y":0}, + {"label":"F11", "x":14.5, "y":0}, + {"label":"F12", "x":15.5, "y":0}, + {"label":"Prt Sc", "x":17.5, "y":0}, + {"label":"Scr Lk", "x":18.5, "y":0}, + {"label":"Pause", "x":19.5, "y":0}, + + {"label":"F13", "x":0, "y":1.25}, + {"label":"~", "x":1.5, "y":1.25}, + {"label":"!", "x":2.5, "y":1.25}, + {"label":"@", "x":3.5, "y":1.25}, + {"label":"#", "x":4.5, "y":1.25}, + {"label":"$", "x":5.5, "y":1.25}, + {"label":"%", "x":6.5, "y":1.25}, + {"label":"^", "x":7.5, "y":1.25}, + + {"label":"&", "x":10, "y":1.25}, + {"label":"*", "x":11, "y":1.25}, + {"label":"(", "x":12, "y":1.25}, + {"label":")", "x":13, "y":1.25}, + {"label":"_", "x":14, "y":1.25}, + {"label":"+", "x":15, "y":1.25}, + {"label":"Del", "x":16, "y":1.25}, + {"label":"Bksp", "x":17, "y":1.25}, + {"label":"Ins", "x":18.5, "y":1.25}, + {"label":"Pg Up", "x":19.5, "y":1.25}, + + {"label":"F14", "x":0, "y":2.25}, + {"label":"Tab", "x":1.5, "y":2.25, "w":1.5}, + {"label":"Q", "x":3, "y":2.25}, + {"label":"W", "x":4, "y":2.25}, + {"label":"E", "x":5, "y":2.25}, + {"label":"R", "x":6, "y":2.25}, + {"label":"T", "x":7, "y":2.25}, + + {"label":"Y", "x":9.5, "y":2.25}, + {"label":"U", "x":10.5, "y":2.25}, + {"label":"I", "x":11.5, "y":2.25}, + {"label":"O", "x":12.5, "y":2.25}, + {"label":"P", "x":13.5, "y":2.25}, + {"label":"{", "x":14.5, "y":2.25}, + {"label":"}", "x":15.5, "y":2.25}, + {"label":"Del", "x":18.5, "y":2.25}, + {"label":"Pg Dn", "x":19.5, "y":2.25}, + + {"label":"F15", "x":0, "y":3.25}, + {"label":"Caps Lock", "x":1.5, "y":3.25, "w":1.75}, + {"label":"A", "x":3.25, "y":3.25}, + {"label":"S", "x":4.25, "y":3.25}, + {"label":"D", "x":5.25, "y":3.25}, + {"label":"F", "x":6.25, "y":3.25}, + {"label":"G", "x":7.25, "y":3.25}, + + {"label":"H", "x":9.75, "y":3.25}, + {"label":"J", "x":10.75, "y":3.25}, + {"label":"K", "x":11.75, "y":3.25}, + {"label":"L", "x":12.75, "y":3.25}, + {"label":":", "x":13.75, "y":3.25}, + {"label":"\"", "x":14.75, "y":3.25}, + {"label":"#", "x":15.75, "y":3.25}, + {"label":"Enter", "x":16.75, "y":2.25, "w":1.25, "h":2}, + {"label":"Home", "x":18.5, "y":3.25}, + {"label":"End", "x":19.5, "y":3.25}, + + {"label":"F16", "x":0, "y":4.25}, + {"label":"Shift", "x":1.5, "y":4.25, "w":1.25}, + {"label":"\\", "x":2.75, "y":4.25}, + {"label":"Z", "x":3.75, "y":4.25}, + {"label":"X", "x":4.75, "y":4.25}, + {"label":"C", "x":5.75, "y":4.25}, + {"label":"V", "x":6.75, "y":4.25}, + {"label":"B", "x":7.75, "y":4.25}, + {"label":"N", "x":10.25, "y":4.25}, + {"label":"M", "x":11.25, "y":4.25}, + {"label":"<", "x":12.25, "y":4.25}, + {"label":">", "x":13.25, "y":4.25}, + {"label":"?", "x":14.25, "y":4.25}, + {"label":"Shift", "x":15.25, "y":4.25, "w":1.75}, + {"label":"Up", "x":18.5, "y":4.25}, + + {"label":"F17", "x":0, "y":5.25}, + {"label":"Ctrl", "x":1.5, "y":5.25, "w":1.25}, + {"label":"Win", "x":2.75, "y":5.25}, + {"label":"Alt", "x":3.75, "y":5.25, "w":1.25}, + {"label":"Fn", "x":5, "y":5.25, "w":1.25}, + {"label":"Space", "x":6.25, "y":5.25}, + {"label":"Fn", "x":7.25, "y":5.25, "w":1.25}, + {"label":"Fn", "x":10, "y":5.25, "w":1.25}, + {"label":"Space", "x":11.25, "y":5.25, "w":2.25}, + {"label":"Alt", "x":13.5, "y":5.25, "w":1.25}, + {"label":"Win", "x":14.75, "y":5.25}, + {"label":"Ctrl", "x":15.75, "y":5.25, "w":1.25}, + {"label":"Left", "x":17.5, "y":5.25}, + {"label":"Down", "x":18.5, "y":5.25}, + {"label":"Right", "x":19.5, "y":5.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + + {"label":"F7", "x":10, "y":0}, + {"label":"F8", "x":11, "y":0}, + {"label":"F9", "x":12.5, "y":0}, + {"label":"F10", "x":13.5, "y":0}, + {"label":"F11", "x":14.5, "y":0}, + {"label":"F12", "x":15.5, "y":0}, + {"label":"Prt Sc", "x":17.5, "y":0}, + {"label":"Scr Lk", "x":18.5, "y":0}, + {"label":"Pause", "x":19.5, "y":0}, + + {"label":"F13", "x":0, "y":1.25}, + {"label":"~", "x":1.5, "y":1.25}, + {"label":"!", "x":2.5, "y":1.25}, + {"label":"@", "x":3.5, "y":1.25}, + {"label":"#", "x":4.5, "y":1.25}, + {"label":"$", "x":5.5, "y":1.25}, + {"label":"%", "x":6.5, "y":1.25}, + {"label":"^", "x":7.5, "y":1.25}, + + {"label":"&", "x":10, "y":1.25}, + {"label":"*", "x":11, "y":1.25}, + {"label":"(", "x":12, "y":1.25}, + {"label":")", "x":13, "y":1.25}, + {"label":"_", "x":14, "y":1.25}, + {"label":"+", "x":15, "y":1.25}, + {"label":"Del", "x":16, "y":1.25}, + {"label":"Bksp", "x":17, "y":1.25}, + {"label":"Ins", "x":18.5, "y":1.25}, + {"label":"Pg Up", "x":19.5, "y":1.25}, + + {"label":"F14", "x":0, "y":2.25}, + {"label":"Tab", "x":1.5, "y":2.25, "w":1.5}, + {"label":"Q", "x":3, "y":2.25}, + {"label":"W", "x":4, "y":2.25}, + {"label":"E", "x":5, "y":2.25}, + {"label":"R", "x":6, "y":2.25}, + {"label":"T", "x":7, "y":2.25}, + + {"label":"Y", "x":9.5, "y":2.25}, + {"label":"U", "x":10.5, "y":2.25}, + {"label":"I", "x":11.5, "y":2.25}, + {"label":"O", "x":12.5, "y":2.25}, + {"label":"P", "x":13.5, "y":2.25}, + {"label":"{", "x":14.5, "y":2.25}, + {"label":"}", "x":15.5, "y":2.25}, + {"label":"|", "x":16.5, "y":2.25, "w":1.5}, + {"label":"Del", "x":18.5, "y":2.25}, + {"label":"Pg Dn", "x":19.5, "y":2.25}, + + {"label":"F15", "x":0, "y":3.25}, + {"label":"Caps Lock", "x":1.5, "y":3.25, "w":1.75}, + {"label":"A", "x":3.25, "y":3.25}, + {"label":"S", "x":4.25, "y":3.25}, + {"label":"D", "x":5.25, "y":3.25}, + {"label":"F", "x":6.25, "y":3.25}, + {"label":"G", "x":7.25, "y":3.25}, + + {"label":"H", "x":9.75, "y":3.25}, + {"label":"J", "x":10.75, "y":3.25}, + {"label":"K", "x":11.75, "y":3.25}, + {"label":"L", "x":12.75, "y":3.25}, + {"label":":", "x":13.75, "y":3.25}, + {"label":"\"", "x":14.75, "y":3.25}, + {"label":"#", "x":15.75, "y":3.25}, + {"label":"Enter", "x":16.75, "y":3.25, "w":1.25}, + {"label":"Home", "x":18.5, "y":3.25}, + {"label":"End", "x":19.5, "y":3.25}, + + {"label":"F16", "x":0, "y":4.25}, + {"label":"Shift", "x":1.5, "y":4.25, "w":1.25}, + {"label":"\\", "x":2.75, "y":4.25}, + {"label":"Z", "x":3.75, "y":4.25}, + {"label":"X", "x":4.75, "y":4.25}, + {"label":"C", "x":5.75, "y":4.25}, + {"label":"V", "x":6.75, "y":4.25}, + {"label":"B", "x":7.75, "y":4.25}, + {"label":"N", "x":10.25, "y":4.25}, + {"label":"M", "x":11.25, "y":4.25}, + {"label":"<", "x":12.25, "y":4.25}, + {"label":">", "x":13.25, "y":4.25}, + {"label":"?", "x":14.25, "y":4.25}, + {"label":"Shift", "x":15.25, "y":4.25, "w":1.75}, + {"label":"Up", "x":18.5, "y":4.25}, + + {"label":"F17", "x":0, "y":5.25}, + {"label":"Ctrl", "x":1.5, "y":5.25, "w":1.25}, + {"label":"Win", "x":2.75, "y":5.25}, + {"label":"Alt", "x":3.75, "y":5.25, "w":1.25}, + {"label":"Fn", "x":5, "y":5.25, "w":1.25}, + {"label":"Space", "x":6.25, "y":5.25}, + {"label":"Fn", "x":7.25, "y":5.25, "w":1.25}, + {"label":"Fn", "x":10, "y":5.25, "w":1.25}, + {"label":"Space", "x":11.25, "y":5.25, "w":2.25}, + {"label":"Alt", "x":13.5, "y":5.25, "w":1.25}, + {"label":"Win", "x":14.75, "y":5.25}, + {"label":"Ctrl", "x":15.75, "y":5.25, "w":1.25}, + {"label":"Left", "x":17.5, "y":5.25}, + {"label":"Down", "x":18.5, "y":5.25}, + {"label":"Right", "x":19.5, "y":5.25} + ] + } + } +} diff --git a/keyboards/keebio/kbo5000/kbo5000.c b/keyboards/keebio/kbo5000/kbo5000.c new file mode 100644 index 000000000000..c46093537e05 --- /dev/null +++ b/keyboards/keebio/kbo5000/kbo5000.c @@ -0,0 +1 @@ +#include "kbo5000.h" diff --git a/keyboards/keebio/kbo5000/kbo5000.h b/keyboards/keebio/kbo5000/kbo5000.h new file mode 100644 index 000000000000..33f1998eb005 --- /dev/null +++ b/keyboards/keebio/kbo5000/kbo5000.h @@ -0,0 +1,7 @@ +#pragma once + +#include "quantum.h" + +#ifdef KEYBOARD_keebio_kbo5000_rev1 + #include "rev1.h" +#endif diff --git a/keyboards/keebio/kbo5000/keymaps/default/keymap.c b/keyboards/keebio/kbo5000/keymaps/default/keymap.c new file mode 100644 index 000000000000..00e2189891bd --- /dev/null +++ b/keyboards/keebio/kbo5000/keymaps/default/keymap.c @@ -0,0 +1,58 @@ +#include QMK_KEYBOARD_H + +enum encoder_names { + LEFT_HALF_ENC = 0, + RIGHT_HALF_ENC1 = 2, + RIGHT_HALF_ENC2, +}; + +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, KC_PSCR, KC_SLCK, KC_PAUS, + KC_F13, 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_DEL, KC_BSPC, KC_INS, KC_PGUP, + KC_F14, KC_TAB, KC_Q, KC_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_F15, KC_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_END, + KC_F16, 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_F17, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ansi( + BL_STEP, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == LEFT_HALF_ENC) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == RIGHT_HALF_ENC1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == RIGHT_HALF_ENC2) { + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } +} diff --git a/keyboards/keebio/kbo5000/keymaps/iso/keymap.c b/keyboards/keebio/kbo5000/keymaps/iso/keymap.c new file mode 100644 index 000000000000..e2c334672b8c --- /dev/null +++ b/keyboards/keebio/kbo5000/keymaps/iso/keymap.c @@ -0,0 +1,58 @@ +#include QMK_KEYBOARD_H + +enum encoder_names { + LEFT_HALF_ENC = 0, + RIGHT_HALF_ENC1 = 2, + RIGHT_HALF_ENC2, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [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_PSCR, KC_SLCK, KC_PAUS, + KC_F13, 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_DEL, KC_BSPC, KC_INS, KC_PGUP, + KC_F14, KC_TAB, KC_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_F15, KC_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_END, + KC_F16, 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_F17, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_iso( + BL_STEP, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == LEFT_HALF_ENC) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == RIGHT_HALF_ENC1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == RIGHT_HALF_ENC2) { + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } +} diff --git a/keyboards/keebio/kbo5000/keymaps/via/config.h b/keyboards/keebio/kbo5000/keymaps/via/config.h new file mode 100644 index 000000000000..a3b77a5b4d0b --- /dev/null +++ b/keyboards/keebio/kbo5000/keymaps/via/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/keebio/kbo5000/keymaps/via/keymap.c b/keyboards/keebio/kbo5000/keymaps/via/keymap.c new file mode 100644 index 000000000000..692358c4855c --- /dev/null +++ b/keyboards/keebio/kbo5000/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +#include QMK_KEYBOARD_H + +enum encoder_names { + LEFT_HALF_ENC = 0, + RIGHT_HALF_ENC1 = 2, + RIGHT_HALF_ENC2, +}; + +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_SLCK, KC_PAUS, + KC_F13, 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_DEL, KC_BSPC, KC_INS, KC_PGUP, + KC_F14, KC_TAB, KC_Q, KC_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_F15, KC_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_END, + KC_F16, 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_F17, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + BL_STEP, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == LEFT_HALF_ENC) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == RIGHT_HALF_ENC1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == RIGHT_HALF_ENC2) { + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } +} diff --git a/keyboards/keebio/kbo5000/keymaps/via/rules.mk b/keyboards/keebio/kbo5000/keymaps/via/rules.mk new file mode 100644 index 000000000000..4b1bcabda81a --- /dev/null +++ b/keyboards/keebio/kbo5000/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +CONSOLE_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/keebio/kbo5000/readme.md b/keyboards/keebio/kbo5000/readme.md new file mode 100644 index 000000000000..1f1f63889e27 --- /dev/null +++ b/keyboards/keebio/kbo5000/readme.md @@ -0,0 +1,20 @@ +# KBO-5000 + +A split staggered keyboard designed to be like the G80-5000, made and sold by Keebio. [More info at Keebio](https://keeb.io). + +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Availability: [Keebio](https://keeb.io/) + +Make example for this keyboard (after setting up your build environment): + + make keebio/kbo5000/rev1:default + +Example of flashing this keyboard: + + make keebio/kbo5000/rev1:default:flash + +Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files. + +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. + +A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/kbo5000/rev1/config.h b/keyboards/keebio/kbo5000/rev1/config.h new file mode 100644 index 000000000000..085bfa47b071 --- /dev/null +++ b/keyboards/keebio/kbo5000/rev1/config.h @@ -0,0 +1,65 @@ +/* +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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCB10 +#define PRODUCT_ID 0x126A +#define DEVICE_VER 0x0100 +#define MANUFACTURER Keebio +#define PRODUCT KBO-5000 Rev. 1 +#define DESCRIPTION Split staggered keyboard + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 12 +#define MATRIX_COLS 10 + +#define DIODE_DIRECTION COL2ROW +// wiring of each half +#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7, B0 } +#define MATRIX_COL_PINS { F4, NO_PIN, F0, B7, B3, D2, D3, D5, D4, NO_PIN } +#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7, B0 } +#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, D2, D3, B7, B1 } +#define SPLIT_HAND_PIN F7 +#define ENCODERS_PAD_A { F5, NO_PIN } +#define ENCODERS_PAD_B { F6, NO_PIN } +#define ENCODERS_PAD_A_RIGHT { D6, C7 } +#define ENCODERS_PAD_B_RIGHT { D4, C6 } + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define BACKLIGHT_PIN B5 +#define CAPS_LOCK_LED_PIN B6 + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + +/* 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 + +/* ws2812 RGB LED */ +#define RGB_DI_PIN E6 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 16 // Number of LEDs +#define RGBLED_SPLIT { 8, 8 } +#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } diff --git a/keyboards/keebio/kbo5000/rev1/rev1.c b/keyboards/keebio/kbo5000/rev1/rev1.c new file mode 100644 index 000000000000..fafad9b6ab1a --- /dev/null +++ b/keyboards/keebio/kbo5000/rev1/rev1.c @@ -0,0 +1,32 @@ +#include "kbo5000.h" +#include "split_util.h" + +void matrix_init_kb(void) { + setPinOutput(CAPS_LOCK_LED_PIN); + matrix_init_user(); +} + +bool led_update_kb(led_t led_state) { + // Only update if left half + if (isLeftHand && led_update_user(led_state)) { + writePin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); + } + return true; +} + +void eeconfig_init_kb(void) { +#ifdef BACKLIGHT_ENABLE + backlight_enable(); + backlight_level(3); +#endif +#ifdef RGBLIGHT_ENABLE + rgblight_enable(); // Enable RGB by default + rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness +#ifdef RGBLIGHT_ANIMATIONS + rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default +#endif +#endif + + eeconfig_update_kb(0); + eeconfig_init_user(); +} diff --git a/keyboards/keebio/kbo5000/rev1/rev1.h b/keyboards/keebio/kbo5000/rev1/rev1.h new file mode 100644 index 000000000000..63239d3463ea --- /dev/null +++ b/keyboards/keebio/kbo5000/rev1/rev1.h @@ -0,0 +1,73 @@ +#pragma once + +#include "kbo5000.h" +#include "quantum.h" + +#define LAYOUT_ansi( \ + LF1, LF4, LF5, LF6, LF7, LF8, LF9, RF1, RF2, RF4, RF5, RF6, RF7, RF8, RF9, RF10, \ + LA1, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, RA10, \ + LB1, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, RB10, \ + LC1, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, RC10, \ + LD1, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD9, \ + LE1, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE7, RE8, RE9, RE10 \ + ) \ + { \ + { LA1, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9, KC_NO }, \ + { LB1, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO, KC_NO }, \ + { LC1, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO, KC_NO }, \ + { LD1, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9, KC_NO }, \ + { LE1, KC_NO, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO, KC_NO }, \ + { LF1, KC_NO, KC_NO, LF4, LF5, LF6, LF7, LF8, LF9, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, RA10 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, RB10 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9, RC10 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, KC_NO, RD9, KC_NO }, \ + { RE1, RE2, RE3, RE4, KC_NO, KC_NO, RE7, RE8, RE9, RE10 }, \ + { RF1, RF2, KC_NO, RF4, RF5, RF6, RF7, RF8, RF9, RF10 } \ + } + +#define LAYOUT_iso( \ + LF1, LF4, LF5, LF6, LF7, LF8, LF9, RF1, RF2, RF4, RF5, RF6, RF7, RF8, RF9, RF10, \ + LA1, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, RA10, \ + LB1, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, RB10, \ + LC1, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, RC10, \ + LD1, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD9, \ + LE1, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE7, RE8, RE9, RE10 \ + ) \ + { \ + { LA1, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9, KC_NO }, \ + { LB1, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO, KC_NO }, \ + { LC1, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO, KC_NO }, \ + { LD1, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9, KC_NO }, \ + { LE1, KC_NO, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO, KC_NO }, \ + { LF1, KC_NO, KC_NO, LF4, LF5, LF6, LF7, LF8, LF9, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, RA10 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9, RB10 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, RC10 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, KC_NO, RD9, KC_NO }, \ + { RE1, RE2, RE3, RE4, KC_NO, KC_NO, RE7, RE8, RE9, RE10 }, \ + { RF1, RF2, KC_NO, RF4, RF5, RF6, RF7, RF8, RF9, RF10 } \ + } + +#define LAYOUT_all( \ + LF1, LF4, LF5, LF6, LF7, LF8, LF9, RF1, RF2, RF4, RF5, RF6, RF7, RF8, RF9, RF10, \ + LA1, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, RA10, \ + LB1, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, RB10, \ + LC1, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, RC10, \ + LD1, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD9, \ + LE1, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE7, RE8, RE9, RE10 \ + ) \ + { \ + { LA1, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9, KC_NO }, \ + { LB1, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO, KC_NO }, \ + { LC1, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO, KC_NO }, \ + { LD1, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9, KC_NO }, \ + { LE1, KC_NO, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO, KC_NO }, \ + { LF1, KC_NO, KC_NO, LF4, LF5, LF6, LF7, LF8, LF9, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, RA10 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, RB10 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, RC10 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, KC_NO, RD9, KC_NO }, \ + { RE1, RE2, RE3, RE4, KC_NO, KC_NO, RE7, RE8, RE9, RE10 }, \ + { RF1, RF2, KC_NO, RF4, RF5, RF6, RF7, RF8, RF9, RF10 } \ + } diff --git a/keyboards/keebio/kbo5000/rev1/rules.mk b/keyboards/keebio/kbo5000/rev1/rules.mk new file mode 100644 index 000000000000..32e788159916 --- /dev/null +++ b/keyboards/keebio/kbo5000/rev1/rules.mk @@ -0,0 +1,3 @@ +BACKLIGHT_ENABLE = yes +RGBLIGHT_ENABLE = yes +ENCODER_ENABLE = yes diff --git a/keyboards/keebio/kbo5000/rules.mk b/keyboards/keebio/kbo5000/rules.mk new file mode 100644 index 000000000000..5292231d581c --- /dev/null +++ b/keyboards/keebio/kbo5000/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # 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 = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +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 # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +LTO_ENABLE = yes +SPLIT_KEYBOARD = yes + +DEFAULT_FOLDER = keebio/kbo5000/rev1 From bd1b51cbd106518882341fdde1c1e7d941840911 Mon Sep 17 00:00:00 2001 From: Keebz Dot Net <64744703+keebzdotnet@users.noreply.github.com> Date: Tue, 23 Jun 2020 02:07:15 -0700 Subject: [PATCH 069/154] Wazowski fixed keymap placement (#9408) - online configurator keys were in the wrong location and needed to be fixed - fixed a key being to high on the y position --- keyboards/keebzdotnet/wazowski/info.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/keyboards/keebzdotnet/wazowski/info.json b/keyboards/keebzdotnet/wazowski/info.json index 26d0da54b299..5c27a3ddca9c 100644 --- a/keyboards/keebzdotnet/wazowski/info.json +++ b/keyboards/keebzdotnet/wazowski/info.json @@ -1,25 +1,25 @@ { "keyboard_name": "wazowski", - "url": "", + "url": "https://www.keebz.net/shop/wazoski-pcb", "maintainer": "keebzdotnet", "width": 9, "height": 5, "layouts": { "LAYOUT": { "layout": [ - {"label":"k00", "x":0, "y":3}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":1, "y":4}, - {"label":"k03", "x":2, "y":3}, + {"label":"k01", "x":1, "y":1}, {"label":"k04", "x":3, "y":2}, - {"label":"k05", "x":3, "y":4}, {"label":"k06", "x":4, "y":2}, - {"label":"k07", "x":4, "y":3}, {"label":"k08", "x":5, "y":2}, + {"label":"k12", "x":7, "y":3}, + {"label":"k00", "x":0, "y":3}, + {"label":"k03", "x":2, "y":3}, + {"label":"k07", "x":4, "y":3}, {"label":"k09", "x":5, "y":3}, {"label":"k10", "x":6, "y":2}, + {"label":"k02", "x":1, "y":4}, + {"label":"k05", "x":3, "y":4}, {"label":"k11", "x":7, "y":1}, - {"label":"k12", "x":7, "y":3}, {"label":"k13", "x":8, "y":2} ] } From 8d792cfb5fe671cd35f22c319d1f5b4948f0271b Mon Sep 17 00:00:00 2001 From: -k Date: Tue, 23 Jun 2020 03:28:54 -0700 Subject: [PATCH 070/154] [Keymap] Add personal keymap for Planck (#9424) * Create readme.md * Add personal keymap * Edit readme * Reorganize layouts * Update config.h * Edit beep settings * Apply suggestions from code review * More suggestions from code review --- .../planck/keymaps/charlesrocket/config.h | 38 ++++ .../planck/keymaps/charlesrocket/keymap.c | 203 ++++++++++++++++++ .../planck/keymaps/charlesrocket/readme.md | 55 +++++ .../planck/keymaps/charlesrocket/rules.mk | 8 + 4 files changed, 304 insertions(+) create mode 100644 keyboards/planck/keymaps/charlesrocket/config.h create mode 100644 keyboards/planck/keymaps/charlesrocket/keymap.c create mode 100644 keyboards/planck/keymaps/charlesrocket/readme.md create mode 100644 keyboards/planck/keymaps/charlesrocket/rules.mk diff --git a/keyboards/planck/keymaps/charlesrocket/config.h b/keyboards/planck/keymaps/charlesrocket/config.h new file mode 100644 index 000000000000..21d65d8f5dc9 --- /dev/null +++ b/keyboards/planck/keymaps/charlesrocket/config.h @@ -0,0 +1,38 @@ +#pragma once + +#ifdef AUDIO_ENABLE +#define STARTUP_SONG SONG(PLANCK_SOUND) +#endif + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC +#define AUDIO_CLICKY +#define AUDIO_CLICKY_FREQ_DEFAULT 2360.0f +#define AUDIO_CLICKY_FREQ_MAX 9500.0f +#define AUDIO_CLICKY_FREQ_RANDOMNESS 0.05f +#define DAC_SAMPLE_MAX 9754U + +/* 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 + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 +#define ORYX_CONFIGURATOR \ No newline at end of file diff --git a/keyboards/planck/keymaps/charlesrocket/keymap.c b/keyboards/planck/keymaps/charlesrocket/keymap.c new file mode 100644 index 000000000000..f82819c58e23 --- /dev/null +++ b/keyboards/planck/keymaps/charlesrocket/keymap.c @@ -0,0 +1,203 @@ +#include QMK_KEYBOARD_H +#ifdef AUDIO_ENABLE +#include "muse.h" +#endif +#include "eeprom.h" + +#define KC_MAC_UNDO LGUI(KC_Z) +#define KC_MAC_CUT LGUI(KC_X) +#define KC_MAC_COPY LGUI(KC_C) +#define KC_MAC_PASTE LGUI(KC_V) +#define KC_PC_UNDO LCTL(KC_Z) +#define KC_PC_CUT LCTL(KC_X) +#define KC_PC_COPY LCTL(KC_C) +#define KC_PC_PASTE LCTL(KC_V) +#define ES_LESS_MAC KC_GRAVE +#define ES_GRTR_MAC LSFT(KC_GRAVE) +#define ES_BSLS_MAC ALGR(KC_6) +#define NO_PIPE_ALT KC_GRAVE +#define NO_BSLS_ALT KC_EQUAL +#define LSA_T(kc) MT(MOD_LSFT | MOD_LALT, kc) + +enum planck_keycodes { + RGB_SLD = EZ_SAFE_RANGE, +}; + +enum planck_layers { + _BASE, + _LOWER, + _RAISE, + _ADJUST, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPACE, + KC_ESCAPE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_ENTER, + WEBUSB_PAIR, KC_LCTRL, KC_LALT, KC_LGUI, LOWER, KC_SPACE, KC_NO, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT + ), + + [_LOWER] = 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_DELETE, 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, KC_NONUS_HASH, KC_NONUS_BSLASH, KC_HOME, KC_END, _______, + KC_COMMA, _______, _______, _______, _______, _______, KC_NO, _______, KC_MEDIA_NEXT_TRACK, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE + ), + + [_RAISE] = LAYOUT_planck_grid( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + KC_DELETE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINUS, KC_EQUAL, KC_LBRACKET, KC_RBRACKET, KC_BSLASH, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NONUS_HASH, KC_NONUS_BSLASH, KC_PGUP, KC_PGDOWN, _______, + _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_MEDIA_NEXT_TRACK, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE + ), + + [_ADJUST] = LAYOUT_planck_grid( + _______, CK_UP, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, + KC_DELETE, CK_TOGG, AU_ON, AU_OFF, AU_TOG, _______, _______, _______, RGB_VAI,RGB_VAD , _______, RESET, + _______, CK_DOWN, MU_ON, MU_OFF, MU_TOG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_NO, _______, _______, _______, _______, _______ + ), + +}; + +extern bool g_suspend_state; +extern rgb_config_t rgb_matrix_config; + +void keyboard_post_init_user(void) { + rgb_matrix_enable(); +} + +const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { + [0] = { {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255} }, + + [1] = { {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255} }, + + [2] = { {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255} }, + + [3] = { {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255} }, + +}; + +void set_layer_color(int layer) { + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + HSV hsv = { + .h = pgm_read_byte(&ledmap[layer][i][0]), + .s = pgm_read_byte(&ledmap[layer][i][1]), + .v = pgm_read_byte(&ledmap[layer][i][2]), + }; + if (!hsv.h && !hsv.s && !hsv.v) { + rgb_matrix_set_color( i, 0, 0, 0 ); + } else { + RGB rgb = hsv_to_rgb( hsv ); + float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX; + rgb_matrix_set_color( i, f * rgb.r, f * rgb.g, f * rgb.b ); + } + } +} + +void rgb_matrix_indicators_user(void) { + if (g_suspend_state || keyboard_config.disable_layer_led) { return; } + switch (biton32(layer_state)) { + case 0: + set_layer_color(0); + break; + case 1: + set_layer_color(1); + break; + case 2: + set_layer_color(2); + break; + case 3: + set_layer_color(3); + break; + default: + if (rgb_matrix_get_flags() == LED_FLAG_NONE) + rgb_matrix_set_color_all(0, 0, 0); + break; + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case RGB_SLD: + if (record->event.pressed) { + rgblight_mode(1); + } + return false; + } + return true; +} + +#ifdef AUDIO_ENABLE +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +void encoder_update(bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_DOWN); + #else + tap_code(KC_PGDN); + #endif + } else { + #ifdef MOUSEKEY_ENABLE + tap_code(KC_MS_WH_UP); + #else + tap_code(KC_PGUP); + #endif + } + } +} + +void matrix_scan_user(void) { +#ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } +#endif +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/planck/keymaps/charlesrocket/readme.md b/keyboards/planck/keymaps/charlesrocket/readme.md new file mode 100644 index 000000000000..9e9f0d255142 --- /dev/null +++ b/keyboards/planck/keymaps/charlesrocket/readme.md @@ -0,0 +1,55 @@ +# Red Planck EZ (Glow) with beeps + +QWERTY layout with colored layers (red, purple, green and white) for Planck EZ Glow. Soft beep feedback is On by default. Sound level is hardcoded with `DAC_SAMPLE_MAX` and tone settings (`CK`) are in Adjust (WHITE) layer. + +``` +RED Base + ,-----------------------------------------------------------------------------------. + | 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 | + |------+------+------+------+------+------+------+------+------+------+------+------| + | QMK | Ctrl | Alt | OS |Lower | Space |Raise | Left | Down | Up |Right | + `-----------------------------------------------------------------------------------' +``` + +``` +PURPLE Lower + ,-----------------------------------------------------------------------------------. + | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + |------+------+------+------+------+------+------+------+------+------+------+------| + | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | |Lower | |Raise | Next | Vol- | Vol+ | Play | + `-----------------------------------------------------------------------------------' +``` + +``` +GREEN 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 | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | |Lower | |Raise | Next | Vol- | Vol+ | Play | + `-----------------------------------------------------------------------------------' +``` + +``` +WHITE (Lower + Raise) + ,-----------------------------------------------------------------------------------. + | | CkUp | | | | | | | | | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | Del | CkTg |Aud On|AudOff|AudTog| | | |BRGTH+|BRGTH-| | Reset| + |------+------+------+------+------+------+------+------+------+------+------+------| + | | CkDn |Mus On|MusOff|MusTog| | | | | | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | |Lower | |Raise | | | | | + `-----------------------------------------------------------------------------------' +``` diff --git a/keyboards/planck/keymaps/charlesrocket/rules.mk b/keyboards/planck/keymaps/charlesrocket/rules.mk new file mode 100644 index 000000000000..6e4985a8b171 --- /dev/null +++ b/keyboards/planck/keymaps/charlesrocket/rules.mk @@ -0,0 +1,8 @@ +SRC += muse.c +# 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 +COMMAND_ENABLE = no +MOUSEKEY_ENABLE = no +WEBUSB_ENABLE = yes +ORYX_ENABLE = yes From 88ebf921847e2bf744ff035d8091ad6826d59a1f Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 24 Jun 2020 03:25:20 +1000 Subject: [PATCH 071/154] Fix info.json for Suihankey (#9490) --- keyboards/suihankey/alpha/info.json | 34 ++++++++++++++++++++ keyboards/suihankey/info.json | 12 ------- keyboards/suihankey/rev1/info.json | 34 ++++++++++++++++++++ keyboards/suihankey/split/info.json | 50 +++++++++++++++++++++++++++-- 4 files changed, 115 insertions(+), 15 deletions(-) create mode 100644 keyboards/suihankey/alpha/info.json delete mode 100644 keyboards/suihankey/info.json create mode 100644 keyboards/suihankey/rev1/info.json diff --git a/keyboards/suihankey/alpha/info.json b/keyboards/suihankey/alpha/info.json new file mode 100644 index 000000000000..3d914662ff03 --- /dev/null +++ b/keyboards/suihankey/alpha/info.json @@ -0,0 +1,34 @@ +{ + "keyboard_name": "suihankey", + "url": "https://kakunpc.booth.pm/", + "maintainer": "kakunpc", + "width": 6.4, + "height": 4.85, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0.375}, + {"x": 1, "y": 0.125}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0.125}, + {"x": 4, "y": 0.25}, + + {"x": 0, "y": 1.375}, + {"x": 1, "y": 1.125}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1.125}, + {"x": 4, "y": 1.25}, + + {"x": 0, "y": 2.375}, + {"x": 1, "y": 2.125}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2.125}, + {"x": 4, "y": 2.25}, + + {"x": 3.4, "y": 3.25}, + {"x": 4.4, "y": 3.55}, + {"x": 5.4, "y": 3.85} + ] + } + } +} diff --git a/keyboards/suihankey/info.json b/keyboards/suihankey/info.json deleted file mode 100644 index 3756e3d5fece..000000000000 --- a/keyboards/suihankey/info.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "keyboard_name": "suihankey", - "url": "https://kakunpc.booth.pm/", - "maintainer": "kakunpc", - "width": 6.4, - "height": 4.85, - "layouts": { - "LAYOUT": { - "layout": [{"label":"1", "x":0, "y":0.375}, {"label":"2", "x":1, "y":0.125}, {"label":"3", "x":2, "y":0}, {"label":"4", "x":3, "y":0.125}, {"label":"5", "x":4, "y":0.25}, {"label":"6", "x":0, "y":1.375}, {"label":"7", "x":1, "y":1.125}, {"label":"8", "x":2, "y":1}, {"label":"9", "x":3, "y":1.125}, {"label":"10", "x":4, "y":1.25}, {"label":"11", "x":0, "y":2.375}, {"label":"12", "x":1, "y":2.125}, {"label":"13", "x":2, "y":2}, {"label":"14", "x":3, "y":2.125}, {"label":"15", "x":4, "y":2.25}, {"label":"16", "x":3.4, "y":3.25}, {"label":"17", "x":4.4, "y":3.55}, {"label":"18", "x":5.4, "y":3.85}] - } - } -} diff --git a/keyboards/suihankey/rev1/info.json b/keyboards/suihankey/rev1/info.json new file mode 100644 index 000000000000..3d914662ff03 --- /dev/null +++ b/keyboards/suihankey/rev1/info.json @@ -0,0 +1,34 @@ +{ + "keyboard_name": "suihankey", + "url": "https://kakunpc.booth.pm/", + "maintainer": "kakunpc", + "width": 6.4, + "height": 4.85, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0.375}, + {"x": 1, "y": 0.125}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0.125}, + {"x": 4, "y": 0.25}, + + {"x": 0, "y": 1.375}, + {"x": 1, "y": 1.125}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1.125}, + {"x": 4, "y": 1.25}, + + {"x": 0, "y": 2.375}, + {"x": 1, "y": 2.125}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2.125}, + {"x": 4, "y": 2.25}, + + {"x": 3.4, "y": 3.25}, + {"x": 4.4, "y": 3.55}, + {"x": 5.4, "y": 3.85} + ] + } + } +} diff --git a/keyboards/suihankey/split/info.json b/keyboards/suihankey/split/info.json index c3825ac3aca9..f50012dd12dd 100644 --- a/keyboards/suihankey/split/info.json +++ b/keyboards/suihankey/split/info.json @@ -2,11 +2,55 @@ "keyboard_name": "suihankey_split", "url": "https://kakunpc.booth.pm/", "maintainer": "kakunpc", - "width": 12, - "height": 4, + "width": 13.2, + "height": 4.85, "layouts": { "LAYOUT": { - "layout": [{"label":"1", "x":0, "y":0}, {"label":"2", "x":1, "y":0}, {"label":"3", "x":2, "y":0}, {"label":"4", "x":3, "y":0}, {"label":"5", "x":4, "y":0}, {"label":"19", "x":7, "y":0}, {"label":"20", "x":8, "y":0}, {"label":"21", "x":9, "y":0}, {"label":"22", "x":10, "y":0}, {"label":"23", "x":11, "y":0}, {"label":"6", "x":0, "y":1}, {"label":"7", "x":1, "y":1}, {"label":"8", "x":2, "y":1}, {"label":"9", "x":3, "y":1}, {"label":"10", "x":4, "y":1}, {"label":"24", "x":7, "y":1}, {"label":"25", "x":8, "y":1}, {"label":"26", "x":9, "y":1}, {"label":"27", "x":10, "y":1}, {"label":"28", "x":11, "y":1}, {"label":"11", "x":0, "y":2}, {"label":"12", "x":1, "y":2}, {"label":"13", "x":2, "y":2}, {"label":"14", "x":3, "y":2}, {"label":"15", "x":4, "y":2}, {"label":"29", "x":7, "y":2}, {"label":"30", "x":8, "y":2}, {"label":"31", "x":9, "y":2}, {"label":"32", "x":10, "y":2}, {"label":"33", "x":11, "y":2}, {"label":"16", "x":2, "y":3}, {"label":"17", "x":3, "y":3}, {"label":"18", "x":4, "y":3}, {"label":"34", "x":7, "y":3}, {"label":"35", "x":8, "y":3}, {"label":"36", "x":9, "y":3}] + "layout": [ + {"x": 0, "y": 0.375}, + {"x": 1, "y": 0.125}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0.125}, + {"x": 4, "y": 0.25}, + + {"x": 8.2, "y": 0.25}, + {"x": 9.2, "y": 0.125}, + {"x": 10.2, "y": 0}, + {"x": 11.2, "y": 0.125}, + {"x": 12.2, "y": 0.375}, + + {"x": 0, "y": 1.375}, + {"x": 1, "y": 1.125}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1.125}, + {"x": 4, "y": 1.25}, + + {"x": 8.2, "y": 1.25}, + {"x": 9.2, "y": 1.125}, + {"x": 10.2, "y": 1}, + {"x": 11.2, "y": 1.125}, + {"x": 12.2, "y": 1.375}, + + {"x": 0, "y": 2.375}, + {"x": 1, "y": 2.125}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2.125}, + {"x": 4, "y": 2.25}, + + {"x": 8.2, "y": 2.25}, + {"x": 9.2, "y": 2.125}, + {"x": 10.2, "y": 2}, + {"x": 11.2, "y": 2.125}, + {"x": 12.2, "y": 2.375}, + + {"x": 3.4, "y": 3.25}, + {"x": 4.4, "y": 3.55}, + {"x": 5.4, "y": 3.85}, + + {"x": 6.8, "y": 3.85}, + {"x": 7.8, "y": 3.55}, + {"x": 8.8, "y": 3.25} + ] } } } From 39b483ad32150dad0ffda37e1b47479dcd162995 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 24 Jun 2020 07:36:54 +1000 Subject: [PATCH 072/154] Fix maja info.json (#9511) --- keyboards/kbdfans/maja/info.json | 82 +++++++++++++++++++++++++++++--- 1 file changed, 75 insertions(+), 7 deletions(-) diff --git a/keyboards/kbdfans/maja/info.json b/keyboards/kbdfans/maja/info.json index 94760fb2a6ec..80526d09e122 100644 --- a/keyboards/kbdfans/maja/info.json +++ b/keyboards/kbdfans/maja/info.json @@ -1,12 +1,80 @@ { - "keyboard_name": "maja", - "url": "", - "maintainer": "KBDFANS", - "width": 16, - "height": 5, + "keyboard_name": "maja", + "url": "", + "maintainer": "KBDFANS", + "width": 18.75, + "height": 5.5, "layouts": { "LAYOUT": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":2.5, "y":4, "w":1.5}, {"label":"Alt", "x":4, "y":4, "w":2}, {"x":6, "y":4, "w":1.25}, {"label":"Alt", "x":7.25, "y":4, "w":2.75}, {"label":"Win", "x":10, "y":4, "w":1.5}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}, {"x":15, "y":4}] + "layout": [ + {"x": 2.75, "y": 0}, + {"x": 12.75, "y": 0}, + {"x": 0.75, "y": 0.25}, + {"x": 1.75, "y": 0.25}, + {"x": 3.75, "y": 0.25}, + {"x": 4.75, "y": 0.25}, + {"x": 5.75, "y": 0.25}, + {"x": 6.75, "y": 0.25}, + {"x": 8.75, "y": 0.25}, + {"x": 9.75, "y": 0.25}, + {"x": 10.75, "y": 0.25}, + {"x": 11.75, "y": 0.25}, + {"x": 13.75, "y": 0.25}, + {"x": 14.75, "y": 0.25, "w": 2}, + {"x": 17.75, "y": 0.25}, + {"x": 0.5, "y": 1.25, "w": 1.5}, + {"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": 8.5, "y": 1.25}, + {"x": 9.5, "y": 1.25}, + {"x": 10.5, "y": 1.25}, + {"x": 11.5, "y": 1.25}, + {"x": 12.5, "y": 1.25}, + {"x": 13.5, "y": 1.25}, + {"x": 14.5, "y": 1.25}, + {"x": 15.5, "y": 1.25, "w": 1.5}, + {"x": 17.75, "y": 1.25}, + {"x": 0.25, "y": 2.25, "w": 1.75}, + {"x": 2, "y": 2.25}, + {"x": 3, "y": 2.25}, + {"x": 4, "y": 2.25}, + {"x": 5, "y": 2.25}, + {"x": 6, "y": 2.25}, + {"x": 9, "y": 2.25}, + {"x": 10, "y": 2.25}, + {"x": 11, "y": 2.25}, + {"x": 12, "y": 2.25}, + {"x": 13, "y": 2.25}, + {"x": 14, "y": 2.25}, + {"x": 15, "y": 2.25, "w": 2.25}, + {"x": 17.75, "y": 2.25}, + {"x": 0, "y": 3.25, "w": 2.25}, + {"x": 2.25, "y": 3.25}, + {"x": 3.25, "y": 3.25}, + {"x": 4.25, "y": 3.25}, + {"x": 5.25, "y": 3.25}, + {"x": 6.25, "y": 3.25}, + {"x": 8.25, "y": 3.25}, + {"x": 9.25, "y": 3.25}, + {"x": 10.25, "y": 3.25}, + {"x": 11.25, "y": 3.25}, + {"x": 12.25, "y": 3.25}, + {"x": 13.25, "y": 3.25}, + {"x": 14.25, "y": 3.25, "w": 2.25}, + {"x": 16.75, "y": 3.5}, + {"x": 0, "y": 4.25, "w": 1.5}, + {"x": 3, "y": 4.25, "w": 1.5}, + {"x": 4.5, "y": 4.25, "w": 2}, + {"x": 6.5, "y": 4.25, "w": 1.25}, + {"x": 8.25, "y": 4.25, "w": 2.75}, + {"x": 11, "y": 4.25, "w": 1.5}, + {"x": 15.75, "y": 4.5}, + {"x": 16.75, "y": 4.5}, + {"x": 17.75, "y": 4.5} + ] } } -} +} \ No newline at end of file From c30170b868f50e74e52067ea78b184b7ee875be5 Mon Sep 17 00:00:00 2001 From: 4pplet Date: Wed, 24 Jun 2020 03:13:21 +0200 Subject: [PATCH 073/154] [Keyboard] added 4pplet keyboards (#8935) * added 4pplet keyboards added 4pplet keyboards * Update keyboards/4pplet/aekiso60_rev_a/aekiso60_rev_a.h * Update keyboards/4pplet/aekiso60_rev_a/config.h * Update keyboards/4pplet/aekiso60_rev_a/config.h * Update keyboards/4pplet/waffling60_rev_a/config.h * Update keyboards/4pplet/aekiso60_rev_a/rules.mk * Update keyboards/4pplet/aekiso60_rev_a/rules.mk * Update keyboards/4pplet/waffling60_rev_a/rules.mk * Update keyboards/4pplet/waffling60_rev_a/rules.mk * Update keyboards/4pplet/steezy60_rev_a/config.h * Delete info.json * Delete info.json * Delete info.json * removed VIA_ENABLE * Update config.h * Update rules.mk * Update steezy60_rev_a.h * Update config.h * Removed VIA_ENABLE * Update keyboards/4pplet/steezy60_rev_a/rules.mk * Removed VIA_ENABLE * Update config.h * Update config.h * Update config.h * adding fauxpark suggestion * Update keyboards/4pplet/aekiso60_rev_a/config.h * Update keyboards/4pplet/aekiso60_rev_a/rules.mk * some updates recommended by noroadsleft, still work in progress some updates recommended by noroadsleft, still work in progress * made directorys for revisions per noroadsleft suggestion made directorys for revisions per noroadsleft suggestion * renamed keyboard_pre_init_user to keyboard_pre_init_kb * Update keyboards/4pplet/aekiso60/rev_a/config.h * Update keyboards/4pplet/waffling60/rev_a/rev_a.c * Update keyboards/4pplet/waffling60/rev_a/rev_a.c * started working on refactoring led function for waffling60 * removed LED functionality * Update keyboards/wilba_tech/zeal60/rules.mk * Update keyboards/wilba_tech/zeal60/rules.mk * Update keyboards/4pplet/waffling60/rev_a/rules.mk * Update keyboards/4pplet/steezy60/rev_a/rules.mk * Update keyboards/4pplet/aekiso60/keymaps/via/keymap.c * Update keyboards/4pplet/aekiso60/rev_a/rules.mk --- keyboards/4pplet/aekiso60/README.md | 14 +++++++ .../4pplet/aekiso60/keymaps/default/keymap.c | 21 ++++++++++ .../4pplet/aekiso60/keymaps/via/keymap.c | 34 ++++++++++++++++ .../4pplet/aekiso60/keymaps/via/rules.mk | 1 + keyboards/4pplet/aekiso60/rev_a/config.h | 39 +++++++++++++++++++ keyboards/4pplet/aekiso60/rev_a/rev_a.c | 1 + keyboards/4pplet/aekiso60/rev_a/rev_a.h | 18 +++++++++ keyboards/4pplet/aekiso60/rev_a/rules.mk | 31 +++++++++++++++ keyboards/4pplet/steezy60/README.md | 14 +++++++ .../4pplet/steezy60/keymaps/4pplet/keymap.c | 27 +++++++++++++ .../4pplet/steezy60/keymaps/default/keymap.c | 18 +++++++++ .../4pplet/steezy60/keymaps/via/keymap.c | 32 +++++++++++++++ .../4pplet/steezy60/keymaps/via/rules.mk | 1 + keyboards/4pplet/steezy60/rev_a/config.h | 36 +++++++++++++++++ keyboards/4pplet/steezy60/rev_a/rev_a.c | 1 + keyboards/4pplet/steezy60/rev_a/rev_a.h | 18 +++++++++ keyboards/4pplet/steezy60/rev_a/rules.mk | 31 +++++++++++++++ keyboards/4pplet/waffling60/README.md | 14 +++++++ .../waffling60/keymaps/default/keymap.c | 18 +++++++++ .../4pplet/waffling60/keymaps/via/keymap.c | 32 +++++++++++++++ .../4pplet/waffling60/keymaps/via/rules.mk | 1 + keyboards/4pplet/waffling60/rev_a/config.h | 31 +++++++++++++++ keyboards/4pplet/waffling60/rev_a/rev_a.c | 1 + keyboards/4pplet/waffling60/rev_a/rev_a.h | 20 ++++++++++ keyboards/4pplet/waffling60/rev_a/rules.mk | 31 +++++++++++++++ 25 files changed, 485 insertions(+) create mode 100644 keyboards/4pplet/aekiso60/README.md create mode 100644 keyboards/4pplet/aekiso60/keymaps/default/keymap.c create mode 100644 keyboards/4pplet/aekiso60/keymaps/via/keymap.c create mode 100644 keyboards/4pplet/aekiso60/keymaps/via/rules.mk create mode 100644 keyboards/4pplet/aekiso60/rev_a/config.h create mode 100644 keyboards/4pplet/aekiso60/rev_a/rev_a.c create mode 100644 keyboards/4pplet/aekiso60/rev_a/rev_a.h create mode 100644 keyboards/4pplet/aekiso60/rev_a/rules.mk create mode 100644 keyboards/4pplet/steezy60/README.md create mode 100644 keyboards/4pplet/steezy60/keymaps/4pplet/keymap.c create mode 100644 keyboards/4pplet/steezy60/keymaps/default/keymap.c create mode 100644 keyboards/4pplet/steezy60/keymaps/via/keymap.c create mode 100644 keyboards/4pplet/steezy60/keymaps/via/rules.mk create mode 100644 keyboards/4pplet/steezy60/rev_a/config.h create mode 100644 keyboards/4pplet/steezy60/rev_a/rev_a.c create mode 100644 keyboards/4pplet/steezy60/rev_a/rev_a.h create mode 100644 keyboards/4pplet/steezy60/rev_a/rules.mk create mode 100644 keyboards/4pplet/waffling60/README.md create mode 100644 keyboards/4pplet/waffling60/keymaps/default/keymap.c create mode 100644 keyboards/4pplet/waffling60/keymaps/via/keymap.c create mode 100644 keyboards/4pplet/waffling60/keymaps/via/rules.mk create mode 100644 keyboards/4pplet/waffling60/rev_a/config.h create mode 100644 keyboards/4pplet/waffling60/rev_a/rev_a.c create mode 100644 keyboards/4pplet/waffling60/rev_a/rev_a.h create mode 100644 keyboards/4pplet/waffling60/rev_a/rules.mk diff --git a/keyboards/4pplet/aekiso60/README.md b/keyboards/4pplet/aekiso60/README.md new file mode 100644 index 000000000000..42c3d3421d28 --- /dev/null +++ b/keyboards/4pplet/aekiso60/README.md @@ -0,0 +1,14 @@ +# AEKISO60 + +A 60% PCB enabling use of ISO AEK keycaps and ALPS switches + +More info: https://geekhack.org/index.php?topic=103627.0 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: AEKISO60 Rev A + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/aekiso60/rev_a: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/4pplet/aekiso60/keymaps/default/keymap.c b/keyboards/4pplet/aekiso60/keymaps/default/keymap.c new file mode 100644 index 000000000000..4f3e895a5e1d --- /dev/null +++ b/keyboards/4pplet/aekiso60/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +#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_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_LCTRL, 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_RCTL), + +[1] = LAYOUT_all( + KC_EXEC, KC_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_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_PENT, + KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_INS, + _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______) +}; + + diff --git a/keyboards/4pplet/aekiso60/keymaps/via/keymap.c b/keyboards/4pplet/aekiso60/keymaps/via/keymap.c new file mode 100644 index 000000000000..d2036f60bd76 --- /dev/null +++ b/keyboards/4pplet/aekiso60/keymaps/via/keymap.c @@ -0,0 +1,34 @@ +#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_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_LCTRL, 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_RCTL), + +[1] = LAYOUT_all( + KC_EXEC, KC_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_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_PENT, + KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_INS, + _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______), + +[2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + +[3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; + diff --git a/keyboards/4pplet/aekiso60/keymaps/via/rules.mk b/keyboards/4pplet/aekiso60/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/4pplet/aekiso60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/4pplet/aekiso60/rev_a/config.h b/keyboards/4pplet/aekiso60/rev_a/config.h new file mode 100644 index 000000000000..7505bcf7b9d2 --- /dev/null +++ b/keyboards/4pplet/aekiso60/rev_a/config.h @@ -0,0 +1,39 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4444 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 4pplet +#define PRODUCT AEKISO60 Rev A +#define DESCRIPTION A steezy KEEB + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 +// ROWS: Top to bottom, COLS: Left to right +#define MATRIX_ROW_PINS {C2,D0,B0,C7,C5} +#define MATRIX_COL_PINS {C4,C6,B7,B6,B5,B4,B3,B2,B1,D6,D5,D4,D2,D1} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define QMK_ESC_OUTPUT C4 // usually COL +#define QMK_ESC_INPUT C2 // usually ROW + +#define RGB_DI_PIN D3 +#define RGBLED_NUM 12 +#define BACKLIGHT_LEVELS 5 + +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_ANIMATIONS diff --git a/keyboards/4pplet/aekiso60/rev_a/rev_a.c b/keyboards/4pplet/aekiso60/rev_a/rev_a.c new file mode 100644 index 000000000000..d3db08ad193b --- /dev/null +++ b/keyboards/4pplet/aekiso60/rev_a/rev_a.c @@ -0,0 +1 @@ +#include "rev_a.h" diff --git a/keyboards/4pplet/aekiso60/rev_a/rev_a.h b/keyboards/4pplet/aekiso60/rev_a/rev_a.h new file mode 100644 index 000000000000..f68a320b7fbc --- /dev/null +++ b/keyboards/4pplet/aekiso60/rev_a/rev_a.h @@ -0,0 +1,18 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + 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, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k43, k44, k45, k46, k48, k4a, k4b \ +) \ +{ \ + {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, KC_NO},\ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + {k40, k41, KC_NO, k43, k44, k45, k46, KC_NO, k48, KC_NO, k4a, k4b, KC_NO, KC_NO} \ +} diff --git a/keyboards/4pplet/aekiso60/rev_a/rules.mk b/keyboards/4pplet/aekiso60/rev_a/rules.mk new file mode 100644 index 000000000000..494e07bc0ca6 --- /dev/null +++ b/keyboards/4pplet/aekiso60/rev_a/rules.mk @@ -0,0 +1,31 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +UNICODE_ENABLE = no # Unicode diff --git a/keyboards/4pplet/steezy60/README.md b/keyboards/4pplet/steezy60/README.md new file mode 100644 index 000000000000..34245b84ef6b --- /dev/null +++ b/keyboards/4pplet/steezy60/README.md @@ -0,0 +1,14 @@ +# Steezy60 + +A 60% PCB with a ton of layout options for SMK and Alps switches + +More info: https://geekhack.org/index.php?topic=103531.0 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: Steezy60 Rev A + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/steezy60/rev_a: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/4pplet/steezy60/keymaps/4pplet/keymap.c b/keyboards/4pplet/steezy60/keymaps/4pplet/keymap.c new file mode 100644 index 000000000000..67820f2ac0be --- /dev/null +++ b/keyboards/4pplet/steezy60/keymaps/4pplet/keymap.c @@ -0,0 +1,27 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_LGUI, 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_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSPC, MO(2), + KC_LCTL, KC_LGUI, KC_NO, KC_LALT, KC_RALT, MO(2), KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_APP, KC_RCTRL), + +[1] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_LCTRL, 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_LSPO, 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_RSPC, MO(2), + KC_LCTL, KC_LGUI, KC_NO, KC_LALT, KC_RALT, MO(2), KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_APP, KC_RCTRL), + +[2] = LAYOUT_all( + KC_EXEC, KC_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_BSPC, KC_UP, KC_ENT, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_DEL, + KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______, KC_PENT, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, + DF(1), DF(0), _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, RESET ) +}; + + diff --git a/keyboards/4pplet/steezy60/keymaps/default/keymap.c b/keyboards/4pplet/steezy60/keymaps/default/keymap.c new file mode 100644 index 000000000000..6a922b0f3e0c --- /dev/null +++ b/keyboards/4pplet/steezy60/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +#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_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_LCTRL, 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_NO, + KC_LCTL, KC_LGUI, KC_NO, KC_LALT, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_RGUI, KC_NO, KC_APP, MO(1)), + +[1] = LAYOUT_all( + RESET, KC_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_UP, KC_ENT, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, + KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______ ) +}; \ No newline at end of file diff --git a/keyboards/4pplet/steezy60/keymaps/via/keymap.c b/keyboards/4pplet/steezy60/keymaps/via/keymap.c new file mode 100644 index 000000000000..603d85771da9 --- /dev/null +++ b/keyboards/4pplet/steezy60/keymaps/via/keymap.c @@ -0,0 +1,32 @@ +#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_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_LCTRL, 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_NO, + KC_LCTL, KC_LGUI, KC_NO, KC_LALT, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_RGUI, KC_NO, KC_APP, MO(1)), + +[1] = LAYOUT_all( + RESET, KC_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_UP, KC_ENT, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, + KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______ ), + +[2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + +[3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) +}; \ No newline at end of file diff --git a/keyboards/4pplet/steezy60/keymaps/via/rules.mk b/keyboards/4pplet/steezy60/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/4pplet/steezy60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/4pplet/steezy60/rev_a/config.h b/keyboards/4pplet/steezy60/rev_a/config.h new file mode 100644 index 000000000000..654454072d41 --- /dev/null +++ b/keyboards/4pplet/steezy60/rev_a/config.h @@ -0,0 +1,36 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4444 +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 4pplet +#define PRODUCT Steezy60 Rev A +#define DESCRIPTION A steezy keeb + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 +// ROWS: Top to bottom, COLS: Left to right +#define MATRIX_ROW_PINS {C2,D0,B0,C7,C5} +#define MATRIX_COL_PINS {C4,C6,B7,B6,B5,B4,B3,B2,B1,D6,D5,D4,D2,D1} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define QMK_ESC_OUTPUT C4 // usually COL +#define QMK_ESC_INPUT C2 // usually ROW + +#define RGB_DI_PIN D3 +#define RGBLED_NUM 12 +#define BACKLIGHT_LEVELS 5 + +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_ANIMATIONS diff --git a/keyboards/4pplet/steezy60/rev_a/rev_a.c b/keyboards/4pplet/steezy60/rev_a/rev_a.c new file mode 100644 index 000000000000..d3db08ad193b --- /dev/null +++ b/keyboards/4pplet/steezy60/rev_a/rev_a.c @@ -0,0 +1 @@ +#include "rev_a.h" diff --git a/keyboards/4pplet/steezy60/rev_a/rev_a.h b/keyboards/4pplet/steezy60/rev_a/rev_a.h new file mode 100644 index 000000000000..b8c3fa6b05a3 --- /dev/null +++ b/keyboards/4pplet/steezy60/rev_a/rev_a.h @@ -0,0 +1,18 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k4d, \ + 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,k4c, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \ +) \ +{ \ + {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, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d} \ +} diff --git a/keyboards/4pplet/steezy60/rev_a/rules.mk b/keyboards/4pplet/steezy60/rev_a/rules.mk new file mode 100644 index 000000000000..494e07bc0ca6 --- /dev/null +++ b/keyboards/4pplet/steezy60/rev_a/rules.mk @@ -0,0 +1,31 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +UNICODE_ENABLE = no # Unicode diff --git a/keyboards/4pplet/waffling60/README.md b/keyboards/4pplet/waffling60/README.md new file mode 100644 index 000000000000..6c333a5607b0 --- /dev/null +++ b/keyboards/4pplet/waffling60/README.md @@ -0,0 +1,14 @@ +# waffling60 + +A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. + +More info: https://geekhack.org/index.php?topic=103531.0 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: waffling60 Rev A + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/steezy60/rev_a: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/4pplet/waffling60/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/keymaps/default/keymap.c new file mode 100644 index 000000000000..d61c3f6c548c --- /dev/null +++ b/keyboards/4pplet/waffling60/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +#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_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_LCTRL, 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, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT_all( + RESET, KC_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) +}; diff --git a/keyboards/4pplet/waffling60/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/keymaps/via/keymap.c new file mode 100644 index 000000000000..40ca2a28fe6b --- /dev/null +++ b/keyboards/4pplet/waffling60/keymaps/via/keymap.c @@ -0,0 +1,32 @@ +#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_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_LCTRL, 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, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT_all( + RESET, KC_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), +// extra layer for VIA +[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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +// extra layer for VIA +[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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/4pplet/waffling60/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/4pplet/waffling60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_a/config.h b/keyboards/4pplet/waffling60/rev_a/config.h new file mode 100644 index 000000000000..d232d3e70a76 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_a/config.h @@ -0,0 +1,31 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4444 +#define PRODUCT_ID 0x0003 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 4pplet +#define PRODUCT waffling60 Rev A +#define DESCRIPTION A steezy keeb + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 11 +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {D4,D1,C2,C4,C7,B2} +#define MATRIX_COL_PINS {D3,D0,D2,B6,B5,B4,B3,D6,D5,B0,B1} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 0 + +#define QMK_ESC_OUTPUT D3 // usually COL +#define QMK_ESC_INPUT D4 // usually ROW diff --git a/keyboards/4pplet/waffling60/rev_a/rev_a.c b/keyboards/4pplet/waffling60/rev_a/rev_a.c new file mode 100644 index 000000000000..d3db08ad193b --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_a/rev_a.c @@ -0,0 +1 @@ +#include "rev_a.h" diff --git a/keyboards/4pplet/waffling60/rev_a/rev_a.h b/keyboards/4pplet/waffling60/rev_a/rev_a.h new file mode 100644 index 000000000000..3ac296877977 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_a/rev_a.h @@ -0,0 +1,20 @@ +#pragma once + +#include "quantum.h" + +// k +#define LAYOUT_all( \ + k00, k01, k11, k02, k03, k04, k05, k15, k06, k07, k08, k18, k09, k0a, k1a, \ + k10, k21, k12, k22, k13, k14, k25, k35, k16, k17, k28, k19, k29, k2a, \ + k20, k31, k32, k23, k33, k24, k45, k26, k36, k27, k38, k39, k3a, \ + k30, k40, k41, k42, k43, k34, k44, k55, k46, k37, k47, k48, k49, k4a, \ + k50, k51, k52, k53, k54, k56, k57, k58, k59, k5a \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a}, \ + {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a}, \ + {k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a} \ +} diff --git a/keyboards/4pplet/waffling60/rev_a/rules.mk b/keyboards/4pplet/waffling60/rev_a/rules.mk new file mode 100644 index 000000000000..494e07bc0ca6 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_a/rules.mk @@ -0,0 +1,31 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +UNICODE_ENABLE = no # Unicode From 9b398a8f31e31cd8aed60a2d90ada306213f70f5 Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Tue, 23 Jun 2020 22:02:12 -0400 Subject: [PATCH 074/154] Partial and window screenshots (#9332) --- layouts/community/75_ansi/spidey3/keymap.c | 3 +- users/spidey3/spidey3.c | 66 ++++++++++++++++++++++ 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/layouts/community/75_ansi/spidey3/keymap.c b/layouts/community/75_ansi/spidey3/keymap.c index aaa93ee2d029..d3c4a64ea812 100644 --- a/layouts/community/75_ansi/spidey3/keymap.c +++ b/layouts/community/75_ansi/spidey3/keymap.c @@ -1,6 +1,5 @@ #include "spidey3.h" -#define OSX_PSC G(S(KC_4)) #define FN_MENU LT(_FN,KC_APP) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -15,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // OSX layout [_OSX] = LAYOUT_75_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OSX_PSC, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/users/spidey3/spidey3.c b/users/spidey3/spidey3.c index 4e364628aa98..a8dafcb7b541 100644 --- a/users/spidey3/spidey3.c +++ b/users/spidey3/spidey3.c @@ -192,6 +192,72 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { spi_gflock = !spi_gflock; dprintf("spi_gflock = %u\n", spi_gflock); break; + + case KC_PSCR: { + uint8_t mods = get_mods(); +#ifndef NO_ACTION_ONESHOT + uint8_t osm = get_oneshot_mods(); +#else + uint8_t osm = 0; +#endif + + switch (get_unicode_input_mode()) { + case UC_MAC: + if ((mods | osm) & MOD_MASK_ALT) { + // Window screenshot + clear_mods(); +#ifndef NO_ACTION_ONESHOT + clear_oneshot_mods(); +#endif + tap_code16(LSFT(LGUI(KC_4))); + wait_ms(100); + tap_code(KC_SPC); + set_mods(mods); + return false; + } else if ((mods | osm) & MOD_MASK_SHIFT) { + // Partial screenshot + tap_code16(LSFT(LGUI(KC_4))); + return false; + } else { + // Full screenshot + tap_code16(LSFT(LGUI(KC_3))); + return false; + } + break; + + case UC_WIN: + case UC_WINC: + if ((mods | osm) & MOD_MASK_ALT) { + // Window screenshot + // Alt+PrintScreen should work as is + } else if ((mods | osm) & MOD_MASK_SHIFT) { + // Partial screenshot + tap_code16(LGUI(LSFT(KC_S))); + return false; + } else { + // Full screenshot + // PrintScreen should work as is + } + break; + + default: + // Note: These are specific to ChromeOS + if ((mods | osm) & MOD_MASK_ALT) { + // Window screenshot + tap_code16(LCTL(LALT(KC_F5))); + return false; + } else if ((mods | osm) & MOD_MASK_SHIFT) { + // Partial screenshot + tap_code16(LCTL(LSFT(KC_F5))); + return false; + } else { + // Full screenshot + // PrintScreen should work as is + } + break; + } + break; + } } } else { switch (keycode) { From 4b80ee46f80360f9f14ff8a88f3f610d0cf74544 Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Wed, 24 Jun 2020 01:35:43 -0400 Subject: [PATCH 075/154] Add Hebrew keymap aliases (#9383) * Add Hebrew keymap aliases * Use NBSP for internal space in box drawings * Apply suggestions from code review * More whitespace fixes * IL_DVAV, IL_DYOD and IL_VYOD were incorrect * Add IL_DEG, IL_MUL, IL_DIV * Hebrew is now ISO (no more BAE) * Use ISO left shift * Apply suggestions from code review * DYOD and VYOD were reversed in diagram. Oops! --- docs/reference_keymap_extras.md | 1 + quantum/keymap_extras/keymap_hebrew.h | 151 ++++++++++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 quantum/keymap_extras/keymap_hebrew.h diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index fd4b8dd8534c..44b056af6511 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -31,6 +31,7 @@ To use these, simply `#include` the corresponding [header file](https://github.c |German (macOS) |`keymap_german_osx.h` | |German (Neo2)* |`keymap_neo2.h` | |Greek* |`keymap_greek.h` | +|Hebrew* |`keymap_hebrew.h` | |Hungarian |`keymap_hungarian.h` | |Icelandic |`keymap_icelandic.h` | |Italian |`keymap_italian.h` | diff --git a/quantum/keymap_extras/keymap_hebrew.h b/quantum/keymap_extras/keymap_hebrew.h new file mode 100644 index 000000000000..ea9ac5ed4c4c --- /dev/null +++ b/quantum/keymap_extras/keymap_hebrew.h @@ -0,0 +1,151 @@ +/* Copyright 2020 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "keymap.h" + +// clang-format off + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ; │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │ / │ ' │ פ │ ם │ ן │ ו │ ט │ א │ ר │ ק │ ] │ [ │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │ ף │ ך │ ל │ ח │ י │ ע │ כ │ ג │ ד │ ש │ , │ \ │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │   │ ץ │ ת │ צ │ מ │ נ │ ה │ ב │ ס │ ז │ . │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define IL_SCLN KC_GRV // ; +#define IL_1 KC_1 // 1 +#define IL_2 KC_2 // 2 +#define IL_3 KC_3 // 3 +#define IL_4 KC_4 // 4 +#define IL_5 KC_5 // 5 +#define IL_6 KC_6 // 6 +#define IL_7 KC_7 // 7 +#define IL_8 KC_8 // 8 +#define IL_9 KC_9 // 9 +#define IL_0 KC_0 // 0 +#define IL_MINS KC_MINS // - +#define IL_EQL KC_EQL // = +// Row 2 +#define IL_SLSH KC_Q // / +#define IL_QUOT KC_W // ' +#define IL_QOF KC_E // ק +#define IL_RESH KC_R // ר +#define IL_ALEF KC_T // א +#define IL_TET KC_Y // ט +#define IL_VAV KC_U // ו +#define IL_FNUN KC_I // ן +#define IL_FMEM KC_O // ם +#define IL_PE KC_P // פ +#define IL_RBRC KC_LBRC // ] +#define IL_LBRC KC_RBRC // [ +// Row 3 +#define IL_SHIN KC_A // ש +#define IL_DALT KC_S // ד +#define IL_GIML KC_D // ג +#define IL_KAF KC_F // כ +#define IL_AYIN KC_G // ע +#define IL_YOD KC_H // י +#define IL_HET KC_J // ח +#define IL_LAMD KC_K // ל +#define IL_FKAF KC_L // ך +#define IL_FPE KC_SCLN // ף +#define IL_COMM KC_QUOT // , +#define IL_BSLS KC_NUHS // (backslash) +// Row 4 +#define IL_ZAYN KC_Z // ז +#define IL_SMKH KC_X // ס +#define IL_BET KC_C // ב +#define IL_HE KC_V // ה +#define IL_NUN KC_B // נ +#define IL_MEM KC_N // מ +#define IL_TSDI KC_M // צ +#define IL_TAV KC_COMM // ת +#define IL_FTSD KC_DOT // ץ +#define IL_DOT KC_SLSH // . + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ) │ ( │ _ │ + │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │   │   │   │   │   │   │   │   │   │   │ } │ { │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │   │   │   │   │   │   │ : │ " │ | │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │   │   │   │   │   │   │   │   │ > │ < │ ? │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define IL_TILD S(IL_SCLN) // ~ +#define IL_EXLM S(IL_1) // ! +#define IL_AT S(IL_2) // @ +#define IL_PND S(IL_3) // # +#define IL_DLR S(IL_4) // $ +#define IL_PERC S(IL_5) // % +#define IL_CIRC S(IL_6) // ^ +#define IL_AMPR S(IL_7) // & +#define IL_ASTR S(IL_8) // * +#define IL_RPRN S(IL_9) // ) +#define IL_LPRN S(IL_0) // ( +#define IL_UNDS S(IL_MINS) // _ +#define IL_PLUS S(IL_EQL) // + +// Row 2 +#define IL_RCBR S(IL_RBRC) // } +#define IL_LCBR S(IL_LBRC) // { +// Row 3 +#define IL_COLN S(IL_FPE) // : +#define IL_DQUO S(IL_COMM) // " +#define IL_PIPE S(IL_BSLS) // | +// Row 4 +#define IL_RABK S(IL_TAV) // > +#define IL_LABK S(IL_FTSD) // < +#define IL_QUES S(IL_DOT) // ? + +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │   │   │   │ € │ ₪ │ ° │   │   │ × │   │   │   │   │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │   │   │   │   │   │ װ │   │   │   │   │   │   │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │   │ ײ │ ױ │   │   │   │   │   │   │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │   │   │   │   │   │   │   │   │   │   │ ÷ │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define IL_EURO ALGR(IL_3) // € +#define IL_SHKL ALGR(IL_4) // ₪ +#define IL_DEG ALGR(IL_5) // ° +#define IL_MUL ALGR(IL_8) // × +// Row 2 +#define IL_DVAV ALGR(IL_TET) // װ +// Row 3 +#define IL_VYOD ALGR(IL_AYIN) // ױ +#define IL_DYOD ALGR(IL_YOD) // ײ +// Row 4 +#define IL_DIV ALGR(IL_DOT) // ÷ From a4b2baa2bac2b9cfadd0bcfb78af2a189e36a1ae Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Wed, 24 Jun 2020 18:10:52 +0900 Subject: [PATCH 076/154] [Update] Japanese translation of docs/newbs_building_firmware_configurator.md (#9395) * update docs/ja/newbs_building_firmware_configurator.md Following the original changes, docs/ja/newbs_building_firmware_configurator.md was divided into docs/ja/configurator_step_by_step.md and docs/ja/configurator_troubleshooting.md. * Update docs/ja/configurator_step_by_step.md Co-authored-by: shela * Update docs/ja/configurator_step_by_step.md Co-authored-by: shela * Update docs/ja/configurator_step_by_step.md Co-authored-by: shela * Update docs/ja/configurator_step_by_step.md Co-authored-by: shela * Update docs/ja/configurator_step_by_step.md Co-authored-by: shela * Update docs/ja/configurator_troubleshooting.md Co-authored-by: shela * Update docs/ja/configurator_troubleshooting.md Co-authored-by: shela * Update docs/ja/configurator_step_by_step.md Co-authored-by: shela * Update docs/ja/configurator_step_by_step.md Co-authored-by: shela * Update docs/ja/configurator_step_by_step.md Co-authored-by: shela * Update docs/ja/configurator_troubleshooting.md Co-authored-by: shela * Update docs/ja/newbs_building_firmware_configurator.md Co-authored-by: shela * Update docs/ja/configurator_troubleshooting.md Co-authored-by: shela * Update docs/ja/newbs_building_firmware_configurator.md Co-authored-by: shela * Update docs/ja/configurator_step_by_step.md Co-authored-by: shela Co-authored-by: shela --- docs/ja/configurator_step_by_step.md | 67 +++++++++++ docs/ja/configurator_troubleshooting.md | 32 +++++ .../newbs_building_firmware_configurator.md | 109 ++---------------- 3 files changed, 107 insertions(+), 101 deletions(-) create mode 100644 docs/ja/configurator_step_by_step.md create mode 100644 docs/ja/configurator_troubleshooting.md diff --git a/docs/ja/configurator_step_by_step.md b/docs/ja/configurator_step_by_step.md new file mode 100644 index 000000000000..92be0f16a951 --- /dev/null +++ b/docs/ja/configurator_step_by_step.md @@ -0,0 +1,67 @@ +# QMK Configurator: ステップ・バイ・ステップ + + + +このページでは、QMK Configurator でファームウェアを構築する手順を説明します。 + +## ステップ 1: キーボードを選ぶ + +ドロップダウンボックスをクリックして、キーマップを作成するキーボードを選択します。 + +?> **キーボードに複数のバージョンがある場合は、正しいバージョンを選択してください。** + +大事なことなのでもう一度言います。 + +!> **正しいバージョンを選択してください!** + +キーボードが QMK を搭載していると宣伝されていてもリストにない場合は、開発者がまだ作業中か、私たちがまだマージするきっかけがなかった可能性があります。 +アクティブな [プルリクエスト](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) がない場合、[qmk_firmware](https://github.com/qmk/qmk_firmware/issues)で報告して、その特定のキーボードのサポートをリクエストします。 +製作者自身の GitHub アカウントにある QMK 搭載キーボードもあります。 +それも再確認してください。 + +## ステップ2: キーボードのレイアウトを選択する + +作成したいと思うキーマップに最も近いレイアウトを選択します。一部のキーボードには、まだ十分なレイアウトや正しいレイアウトが定義されていません。これらは将来サポートされる予定です。 + +## ステップ3: キーマップの名前を決める + +お好みの名前をキーマップにつけます。 + +?> コンパイル時に問題が発生した場合は、もしかすると QMK ファームウェアリポジトリに既に同じ名前が存在しているのかもしれません。名前を変更してみてください。 + +## ステップ4: キーマップを定義する + +キーコードの入力は、3つの方法のいずれかで行います。 + +1. ドラッグ・アンド・ドロップ +2. レイアウト上の空の場所をクリックして、希望するキーコードをクリックします +3. レイアウト上の空の場所をクリックして、キーボードの物理キーを押します + +?> マウスをキーの上に置くと、そのキーコードの機能の短い説明文が出ます。より詳細な説明については以下を見てください: + +* [基本的なキーコードリファレンス](ja/keycodes_basic.md) +* [高度なキーコードリファレンス](ja/feature_advanced_keycodes.md) + +!> 選択したレイアウトが物理的なビルドと一致しない場合は、使用していないキーは空白のままにしておきます。どのキーが使用されているかわからない場合、例えば、バックスペースキーは1つだが `LAYOUT_all` には2つのキーがある場合は、同じキーコードを両方の場所に配置してください。 + +## ステップ5: 後日のためにキーマップを保存する + +キーマップに満足するか、または後で作業したい場合は、`Export Keymap' ボタンを押します。 +これでキーマップがあなたのコンピュータに保存されます。 +その後、`Import Keymap` ボタンを押すことで、この .json ファイルを後で読み込むことができます。 + +!> **注意:** このファイルは、kbfirmware.com またはその他のツールに使用される .json ファイルと同じ形式ではありません。これらのツールにこの .json を使用したり、QMK Configurator でこれらのツールの .json を使用しようとすると、問題が発生します。 + +## ステップ6: ファームウェアをコンパイルする + +緑色の `Compile` ボタンを押します。 + +コンパイルが完了すると、緑色の `Download Firmware` ボタンを押すことができます。 + +## 次のステップ: キーボードに書き込む(フラッシュする) + +[ファームウェアを書きこむ](ja/newbs_flashing.md) を参照してください。 diff --git a/docs/ja/configurator_troubleshooting.md b/docs/ja/configurator_troubleshooting.md new file mode 100644 index 000000000000..5979341c6e86 --- /dev/null +++ b/docs/ja/configurator_troubleshooting.md @@ -0,0 +1,32 @@ +# Configurator トラブルシューティング + + + +## 私の .json ファイルが動きません + +.json ファイルが QMK Configurator で作ったものの場合、おめでとうございます。バグに遭遇しました。 [qmk_configurator](https://github.com/qmk/qmk_configurator/issues) で報告してください。 + +そうでない場合は、... 他の .json ファイルを使用しないようにという、上に書いた注意書きを見逃してませんか? + +#### レイアウトに余分なスペースがありますか?どうすればいいですか? + +もしスペースバーが3つに分かれている場合は、全てスペースバーで埋めるのが最善の方法です。バックスペースや Shift キーについても同じことができます。 + +#### キーコードってなに? + +以下を見てください。 + +* [基本的なキーコードリファレンス](ja/keycodes_basic.md) +* [高度なキーコードリファレンス](ja/feature_advanced_keycodes.md) + +#### コンパイルできません + +キーマップの他のレイヤーを再確認して、おかしなキーが存在しないことを確認してください。 + +## 問題とバグ + +私たちは利用者の依頼やバグレポートを常に受け入れています。[qmk_configurator](https://github.com/qmk/qmk_configurator/issues) で報告してください。 diff --git a/docs/ja/newbs_building_firmware_configurator.md b/docs/ja/newbs_building_firmware_configurator.md index 419ba1416b8a..61d25ffb52c1 100644 --- a/docs/ja/newbs_building_firmware_configurator.md +++ b/docs/ja/newbs_building_firmware_configurator.md @@ -2,112 +2,19 @@ -[QMK Configurator](https://config.qmk.fm) は、QMKファームウェアの hex ファイルを生成するオンライングラフィカルユーザーインターフェイスです。 +[![QMK Configurator Screenshot](https://i.imgur.com/anw9cOL.png)](https://config.qmk.fm/) -?> **次の手順を順番に実行してください。** +[QMK Configurator](https://config.qmk.fm) は、QMKファームウェアの hex ファイルを生成するオンライングラフィカルユーザーインターフェイスです。 -[Video Tutorial](https://www.youtube.com/watch?v=-imgglzDMdY) を見てください。 +[ビデオチュートリアル](https://www.youtube.com/watch?v=-imgglzDMdY) を見てください。 +多くの人は、それが自分のキーボードのプログラミングを始めるのに十分な情報であることに気づくでしょう。 QMK Configurator は Chrome/Firefox で最適に動作します。 -!> **KLE や kbfirmware などの他のツールのファイルは、QMK Configurator と互換性がありません。それらをロードしたり、インポートしたりしないでください。QMK Configurator は異なるツールです。** - -## キーボードを選ぶ - -ドロップダウンボックスをクリックして、キーマップを作成するキーボードを選択します。 - -?> **キーボードに複数のバージョンがある場合は、正しいバージョンを選択してください。** - -大事なことなのでもう一度言います。 - -!> **正しいバージョンを選択してください!** - -キーボードが QMK を搭載していると宣伝されていてもリストにない場合は、開発者がまだ作業中か、私たちがまだマージするきっかけがなかった可能性があります。 -アクティブな [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) がない場合、[qmk_firmware](https://github.com/qmk/qmk_firmware/issues)で報告して、その特定のキーボードのサポートをリクエストします。 -製作者自身の GitHub アカウントにある QMK 搭載キーボードもあります。 -それも再確認してください。 - -## キーボードのレイアウトを選択する - -作成したいと思うキーマップに最も近いレイアウトを選択します。一部のキーボードには、まだ十分なレイアウトまたは正しいレイアウトが定義されていません。これらは将来サポートされる予定です。 - -## キーマップの名前 - -お好みの名前をキーマップにつけます。 - -?> コンパイル時に問題が発生した場合は、もしかすると QMK ファームウェアリポジトリに既に同じ名前が存在しているのかもしれません、名前を変更してみてください。 - -## キーマップを作る - -キーコード入力は3つの方法で実行できます。 -1. ドラッグ・アンド・ドロップ -2. レイアウト上の空の場所をクリックして、希望するキーコードをクリックします -3. レイアウト上の空の場所をクリックして、キーボードの物理キーを押します - -マウスをキーの上に置くと、そのキーコードの機能の短い説明文が出ます。より詳細な説明については以下を見てください。 - -[Basic Keycode Reference](https://docs.qmk.fm/#/keycodes_basic) -[Advanced Keycode Reference](https://docs.qmk.fm/#/feature_advanced_keycodes) - -キーマップをサポートするレイアウトが見つからない場合、例えばスペースバーが3分割されていたり、バックスペースが2分割されていたり、シフトが2分割されているような場合、それらを全て埋めてください。 - -### 例: - -3分割のスペースバー: 全てスペースバーで埋めます。 - -2分割のバックスペース: 両方ともバックスペースで埋めます。 - -2分割の右シフト: 両方とも右シフトで埋めます。 - -左シフトと ISO サポート用に1つずつ: 両方とも左シフトで埋めます。 - -5分割だが4キーのみ: 以前やったことがある人を推測して確認するか尋ねてください。 - -## 後日のためにキーマップを保存する - -キーマップに満足するか、または後で作業したい場合は、`Export Keymap' ボタンを押します。上記で選択した名前に .json が追加されたキーマップが保存されます。 - -後日、`Import Keymap` ボタンを押すことで、この .json ファイルをロードできます。 - -!> **注意:** このファイルは、kbfirmware.com またはその他のツールに使用される .json ファイルと同じ形式ではありません。これらのツールにこれを使用したり、QMK Configurator でこれらのツールの .json を使用しようとすると、キーボードが **爆発** する可能性があります。 - -## ファームウェアファイルを生成する - -緑色の `Compile` ボタンを押します。 - -コンパイルが完了すると、緑色の `Download Firmware` ボタンを押すことができます。 - -## キーボードに書き込む(フラッシュする) - -[ファームウェアを書きこむ](ja/newbs_flashing.md) を参照してください。 - -## トラブルシューティング - -#### 私の .json ファイルが動きません - -.json ファイルが QMK Configurator で作ったものの場合、おめでとうございます。バグに遭遇しました。 [qmk_configurator](https://github.com/qmk/qmk_configurator/issues) で報告してください。 - -そうでない場合は、... 他の .json ファイルを使用しないようにという、上に書いた注意書きを見逃してませんか? - -#### レイアウトに余分なスペースがありますか?どうすればいいですか? - -もしスペースバーが3つに分かれている場合は、全てスペースバーで埋めるのが最善の方法です。バックスペースやシフトについても同じことができます。 - -#### キーコードってなに? - -以下を見てください。 - -[Basic Keycode Reference](https://docs.qmk.fm/#/keycodes_basic) -[Advanced Keycode Reference](https://docs.qmk.fm/#/feature_advanced_keycodes) - -#### コンパイルできません - -キーマップの他のレイヤーを再確認して、ランダムなキーが存在しないことを確認してください。 - -## 問題とバグ +!> **注意: Keyboard Layout Editor (KLE) や kbfirmware などの他のツールのファイルは、QMK Configurator と互換性がありません。それらをロードしたり、インポートしたりしないでください。QMK Configurator は異なるツールです。** -私たちは利用者の依頼やバグレポートを常に受け入れています。[qmk_configurator](https://github.com/qmk/qmk_configurator/issues) で報告してください。 +[QMK Configurator: ステップ・バイ・ステップ](ja/configurator_step_by_step.md)を参照してください。 From 4d218566ccec5b7b9499a351f3acc5442f9f2c6a Mon Sep 17 00:00:00 2001 From: Pierre Chevalier Date: Wed, 24 Jun 2020 10:42:20 +0100 Subject: [PATCH 077/154] [Keymap] Add pierrec83's gherkin keymap (#9465) * [Keymap] Add pierrec83's gherkin keymap Contribute my gherkin keymap upstream as it is semi-stable. It has grown in symbiosis with my Kyria keymap which is already upstream. Add a readme * Remove generated keymap and instructions to generate it as it is done by qmk flash --- .../gherkin/keymaps/pierrec83/config.h | 31 +++++++++++++++ .../gherkin/keymaps/pierrec83/keymap.json | 1 + .../gherkin/keymaps/pierrec83/readme.md | 38 +++++++++++++++++++ .../gherkin/keymaps/pierrec83/rules.mk | 1 + 4 files changed, 71 insertions(+) create mode 100644 keyboards/40percentclub/gherkin/keymaps/pierrec83/config.h create mode 100644 keyboards/40percentclub/gherkin/keymaps/pierrec83/keymap.json create mode 100644 keyboards/40percentclub/gherkin/keymaps/pierrec83/readme.md create mode 100644 keyboards/40percentclub/gherkin/keymaps/pierrec83/rules.mk diff --git a/keyboards/40percentclub/gherkin/keymaps/pierrec83/config.h b/keyboards/40percentclub/gherkin/keymaps/pierrec83/config.h new file mode 100644 index 000000000000..a635e944c172 --- /dev/null +++ b/keyboards/40percentclub/gherkin/keymaps/pierrec83/config.h @@ -0,0 +1,31 @@ +#pragma once + +/* Make layout the right way: + * - USB port on left side + * - Switches facing the correct way + */ +#undef MATRIX_ROW_PINS +#undef MATRIX_COL_PINS +#define MATRIX_ROW_PINS { B6, B2, B3, B1, F7 } +#define MATRIX_COL_PINS { D0, D4, C6, D7, E6, B4 } + +// Set the mouse settings to a comfortable speed/accuracy trade-off +// Assume the screen refresh rate is 60 Htz or higher +// The default is 50. This makes the mouse ~3 times faster and more accurate +#define MOUSEKEY_INTERVAL 16 +// The default is 20. Since we made the mouse about 3 times faster with the previous setting, +// give it more time to accelerate to max speed to retain precise control over short distances. +#define MOUSEKEY_TIME_TO_MAX 40 +// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive +#define MOUSEKEY_DELAY 100 +// It makes sense to use the same delay for the mouseweel +#define MOUSEKEY_WHEEL_DELAY 100 +// The default is 100 +#define MOUSEKEY_WHEEL_INTERVAL 50 +// The default is 40 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 100 + +#define TAPPING_TERM 200 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_FORCE_HOLD diff --git a/keyboards/40percentclub/gherkin/keymaps/pierrec83/keymap.json b/keyboards/40percentclub/gherkin/keymaps/pierrec83/keymap.json new file mode 100644 index 000000000000..073eb568f048 --- /dev/null +++ b/keyboards/40percentclub/gherkin/keymaps/pierrec83/keymap.json @@ -0,0 +1 @@ +{"version":1,"notes":"My awesome 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":"40percentclub/gherkin","keymap":"pierrec83","layout":"LAYOUT_ortho_3x10","layers":[["KC_Q","KC_D","KC_R","KC_W","KC_B","KC_J","KC_F","KC_U","KC_P","KC_BSPC","LSFT_T(KC_A)","LT(5,KC_S)","LT(1,KC_H)","LT(3,KC_T)","KC_G","KC_Y","LT(4,KC_N)","LT(2,KC_E)","LT(6,KC_O)","LSFT_T(KC_I)","KC_Z","KC_X","KC_M","KC_C","KC_V","LT(7,KC_SPC)","KC_L","LALT_T(KC_COMM)","LCTL_T(KC_DOT)","KC_K"],["KC_TRNS","ANY(LCTL(LSFT(KC_C)))","KC_PGUP","ANY(LCTL(LSFT(KC_V)))","KC_TRNS","KC_TRNS","KC_BTN1","KC_WH_U","KC_BTN2","KC_TRNS","KC_TRNS","KC_BTN2","KC_NO","KC_BTN1","KC_TRNS","KC_TRNS","KC_MS_L","KC_MS_D","KC_MS_U","KC_MS_R","KC_TRNS","KC_TRNS","KC_PGDN","KC_TRNS","KC_TRNS","KC_TRNS","KC_MPRV","KC_WH_D","KC_MNXT","TG(1)"],["KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","BL_BRTG","BL_INC","KC_WH_U","KC_TRNS","KC_TRNS","KC_LEFT","KC_UP","KC_DOWN","KC_RGHT","KC_TRNS","BL_TOGG","KC_LGUI","KC_NO","LCTL(KC_LALT)","LCA(KC_LSFT)","KC_TRNS","KC_HOME","KC_PGDN","KC_END","KC_TRNS","BL_STEP","BL_DEC","KC_WH_D","KC_TRNS","KC_TRNS"],["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_UNDS","KC_PIPE","KC_QUOT","KC_TRNS","KC_CIRC","KC_ASTR","KC_AMPR","KC_NO","KC_TRNS","KC_HASH","KC_TILD","KC_SLSH","KC_DQUO","KC_DLR","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_MINS","KC_BSLS","KC_GRV","KC_TRNS"],["KC_TRNS","KC_COLN","KC_LT","KC_GT","KC_SCLN","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_LCBR","KC_RCBR","KC_LPRN","KC_RPRN","KC_AT","KC_TRNS","KC_NO","KC_EQL","KC_PLUS","KC_PERC","KC_TRNS","KC_EXLM","KC_LBRC","KC_RBRC","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"],["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_F7","KC_F8","KC_F9","KC_F10","KC_LCTL","KC_NO","KC_LALT","LCTL(KC_LALT)","KC_TRNS","KC_TRNS","KC_F4","KC_F5","KC_F6","KC_F11","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_F1","KC_F2","KC_F3","KC_F12"],["KC_PSLS","KC_7","KC_8","KC_9","KC_PPLS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_0","KC_4","KC_5","KC_6","KC_PMNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_NO","KC_TRNS","KC_PAST","KC_1","KC_2","KC_3","KC_PEQL","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"],["LT(8,KC_TRNS)","KC_ESC","KC_COLN","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_DEL","KC_TRNS","KC_PERC","KC_SLSH","KC_ENT","KC_EXLM","KC_TRNS","KC_LGUI","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TAB","KC_TRNS","KC_TRNS","RALT(KC_TRNS)","RCTL(KC_TRNS)","TG(1)"],["KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","EEP_RST","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","RESET","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO"]],"author":"Anonymous"} \ No newline at end of file diff --git a/keyboards/40percentclub/gherkin/keymaps/pierrec83/readme.md b/keyboards/40percentclub/gherkin/keymaps/pierrec83/readme.md new file mode 100644 index 000000000000..0ade64b34634 --- /dev/null +++ b/keyboards/40percentclub/gherkin/keymaps/pierrec83/readme.md @@ -0,0 +1,38 @@ +@pierrec83's keymap for the gherkin +=== + +A usable keymap for the gherkin's 30 keys layout, somewhat in sync with my Kyria keymap. + +This keymap is more or less an adaptation of my Kyria keymap which sacrifices some convenience but retains most functionality. + +Features +--- +* Mouse keys with constants tuned so the keyboard usable for me as my sole pointing device +* Homerow layers activation +* Minimal side-index motion thanks to workman base layer and similar principles in other layers +* Two symbol layers, both activated with one homerow key and either another key on the same hand's homerow or a key from the other hand +* Mousing around, including left and right clicking can be done either one-handed or fully on the homerow with both hands +* Easy chaining of common command line or vim patterns, such as `~/`, `()`, `ESC : w ENTER` etc. +* Common OS shortcuts like switching workspaces on gnome or MacOS easily accessible (for the shortcuts I use. This may not apply to others) + +Instructions to update the keymap +--- + +For now, I am still more comfortable updating the keymap through the qmk configurator as I don't trust myself to manually keep comments describing the keymap in sync with the code itself. This means that my keymap.c is generated and not really readable. For a readble view of my keymap, one must import keymap.json into [qmk configurator](https://config.qmk.fm) and use the web UI or print it. + +To update the keymap, +* Load keymap.json into qmk configurator +* Perform any edits +* Export the keymap. This should save a json file in `~/Downloads/pierrec83.json` or equivalent for your OS +* From the root of qmk_firmware, move the keymap to its destination: +``` +mv ~/Downloads/pierrec83.json keyboards/40percentclub/gherkin/keymaps/pierrec83/keymap.json +``` +* Flash the firmware (for instance, if left hand is plugged): +``` +qmk flash -kb 40percentclub/gherkin -km pierrec83 +``` + +Author +--- +I am @pierrec83 on Twitter, @pierrechevalier83 on github. I chose the shorter nickname for my keymap. diff --git a/keyboards/40percentclub/gherkin/keymaps/pierrec83/rules.mk b/keyboards/40percentclub/gherkin/keymaps/pierrec83/rules.mk new file mode 100644 index 000000000000..bd518d8f273f --- /dev/null +++ b/keyboards/40percentclub/gherkin/keymaps/pierrec83/rules.mk @@ -0,0 +1 @@ +BACKLIGHT_ENABLE = yes From 598c392709141a8d9bff1d8ab12fd50ef4f478ae Mon Sep 17 00:00:00 2001 From: Rozakiin <6567067+Rozakiin@users.noreply.github.com> Date: Wed, 24 Jun 2020 19:34:55 +0100 Subject: [PATCH 078/154] Add VIA support to Noxary 268 (#9449) * Remove "rev1" from readme.md * Update rules.mk to enable bootmagic, mousekeys, console, command Also disable NKRO * Update USB descriptor, replace ifndef with pragma once, remove RGB * Replace ifndef with pragma once * Add commented led code * Add VIA keymap * Update keyboards/noxary/268/268.c Remove commented code * Update keyboards/noxary/268/keymaps/via/readme.md Flip layout image and title * Update keyboards/noxary/268/rules.mk Remove error in comment * Update keyboards/noxary/268/rules.mk Remove HD44780 rule option * Update keyboards/noxary/268/keymaps/via/rules.mk Replace Link_Time_Optimization with LTO * Update keyboards/noxary/268/readme.md Change Noxary link --- keyboards/noxary/268/268.c | 15 +++ keyboards/noxary/268/268.h | 29 +++++- keyboards/noxary/268/config.h | 38 ++++--- keyboards/noxary/268/keymaps/via/keymap.c | 110 +++++++++++++++++++++ keyboards/noxary/268/keymaps/via/readme.md | 3 + keyboards/noxary/268/keymaps/via/rules.mk | 5 + keyboards/noxary/268/readme.md | 3 +- keyboards/noxary/268/rules.mk | 28 +++--- 8 files changed, 193 insertions(+), 38 deletions(-) create mode 100644 keyboards/noxary/268/keymaps/via/keymap.c create mode 100644 keyboards/noxary/268/keymaps/via/readme.md create mode 100644 keyboards/noxary/268/keymaps/via/rules.mk diff --git a/keyboards/noxary/268/268.c b/keyboards/noxary/268/268.c index 9d819aa4e884..60ea6070d480 100644 --- a/keyboards/noxary/268/268.c +++ b/keyboards/noxary/268/268.c @@ -1 +1,16 @@ +/* Copyright 2019 Rozakiin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #include "268.h" diff --git a/keyboards/noxary/268/268.h b/keyboards/noxary/268/268.h index 28565318adb1..bef5ff5a0eda 100644 --- a/keyboards/noxary/268/268.h +++ b/keyboards/noxary/268/268.h @@ -1,11 +1,34 @@ -#ifndef noxary268_H -#define noxary268_H +/* Copyright 2020 Rozakiin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" // readability #define ____ KC_NO +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + /* * LAYOUT OPTIONS * @@ -79,5 +102,3 @@ { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, ____, K314, K315 }, \ { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, K411, ____, K413, K414, K415 } \ } - -#endif diff --git a/keyboards/noxary/268/config.h b/keyboards/noxary/268/config.h index 8264b8019ee9..8038ef8bbb35 100644 --- a/keyboards/noxary/268/config.h +++ b/keyboards/noxary/268/config.h @@ -1,5 +1,5 @@ /* -Copyright 2017 Ruari Armstrong +Copyright 2020 Rozakiin This 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,29 +15,37 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 -#define PRODUCT_ID 0x0044 +#define VENDOR_ID 0x4E58 //"NX" +#define PRODUCT_ID 0x010C //268 #define DEVICE_VER 0x0001 #define MANUFACTURER Noxary #define PRODUCT 268 -#define DESCRIPTION QMK keyboard firmware for 268 +#define DESCRIPTION A fully customizable 65% keyboard. /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 -/* key matrix pins */ +/* + * 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) + * +*/ #define MATRIX_ROW_PINS { F5, F4, F0, F1, D0 } #define MATRIX_COL_PINS { C6, C7, F7, F6, E6, B0, D1, B2, B3, D2, D3, D5, D4, D6, D7, B4 } #define UNUSED_PINS -/* COL2ROW or ROW2COL */ +/* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW /* number of backlight levels */ @@ -53,16 +61,4 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* ws2812b options */ -#define RGB_DI_PIN B5 -#ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 18 -#define RGBLIGHT_HUE_STEP 16 -#define RGBLIGHT_SAT_STEP 16 -#define RGBLIGHT_VAL_STEP 16 -#endif - -#endif +#define LOCKING_RESYNC_ENABLE \ No newline at end of file diff --git a/keyboards/noxary/268/keymaps/via/keymap.c b/keyboards/noxary/268/keymaps/via/keymap.c new file mode 100644 index 000000000000..431ea5bac4ca --- /dev/null +++ b/keyboards/noxary/268/keymaps/via/keymap.c @@ -0,0 +1,110 @@ +/* Copyright 2020 Rozakiin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 { + _BL, + _FL1, + _FL2, + _FL3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base Layer - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │Bsp│ ` │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │PgU│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │Sft │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │ ↑ │PgD│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │Ctrl│Win │Alt │ Space │Alt │M(1)│Ctrl│ ← │ ↓ │ → │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ + */ + [_BL] = 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_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_NUHS, KC_ENT, KC_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Function Layer 1 - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │PSc│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │RST│ │ │ │ │ │ │ │ │ │Ins│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │Hom│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │Bl-│Bl+│ │ Mute │Vl+│End│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │ │ │ │ BL_Toggle │ │ │ │ │Vl-│ │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ + */ + [_FL1] = 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_PSCR, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, _______, KC_MUTE, KC_MUTE, KC_VOLU, KC_END, + _______, _______, _______, BL_TOGG, _______, _______, _______, _______, KC_VOLD, _______ + ), + /* Function Layer 2 - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ + */ + [_FL3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* Function Layer 3 - For ISO enter use ANSI enter + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴─────────────────────┴────┴────┴────┴───┴───┴───┘ + */ + [_FL3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; \ No newline at end of file diff --git a/keyboards/noxary/268/keymaps/via/readme.md b/keyboards/noxary/268/keymaps/via/readme.md new file mode 100644 index 000000000000..e2adb0eef28c --- /dev/null +++ b/keyboards/noxary/268/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# The VIA keymap for Noxary 268 + +![Noxary 268 Layout Image](https://i.imgur.com/D9jQz6g.png) diff --git a/keyboards/noxary/268/keymaps/via/rules.mk b/keyboards/noxary/268/keymaps/via/rules.mk new file mode 100644 index 000000000000..c2e96d233b21 --- /dev/null +++ b/keyboards/noxary/268/keymaps/via/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = no +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +LTO_ENABLE = yes diff --git a/keyboards/noxary/268/readme.md b/keyboards/noxary/268/readme.md index adc1add18db4..e1f3f0642660 100644 --- a/keyboards/noxary/268/readme.md +++ b/keyboards/noxary/268/readme.md @@ -6,8 +6,7 @@ A fully customizable 65% keyboard. * Keyboard Maintainer: [Rozakiin](https://github.com/rozakiin) * Hardware Supported: 268 PCB - * rev1 -* Hardware Availability: [Noxary](https://www.instagram.com/noxaryco/) +* Hardware Availability: [Noxary](https://noxary.co) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/noxary/268/rules.mk b/keyboards/noxary/268/rules.mk index f2d381510d0c..11c8a575bb88 100644 --- a/keyboards/noxary/268/rules.mk +++ b/keyboards/noxary/268/rules.mk @@ -12,15 +12,21 @@ MCU = atmega32u4 BOOTLOADER = atmel-dfu # Build Options -# comment out to disable the options. +# change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -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 -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -AUDIO_ENABLE = no -RGBLIGHT_ENABLE = no +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From 2521b970e5494380ccbdda922ea3f521e76ad01c Mon Sep 17 00:00:00 2001 From: jotix <47826561+jotix@users.noreply.github.com> Date: Wed, 24 Jun 2020 20:27:25 -0300 Subject: [PATCH 079/154] add_adjust_layer (#9532) --- layouts/community/ortho_4x12/jotix/keymap.c | 44 +++++++-------------- 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/layouts/community/ortho_4x12/jotix/keymap.c b/layouts/community/ortho_4x12/jotix/keymap.c index 09543090d25d..d28be78e56d0 100644 --- a/layouts/community/ortho_4x12/jotix/keymap.c +++ b/layouts/community/ortho_4x12/jotix/keymap.c @@ -4,16 +4,13 @@ enum layers { _QWERTY, _LOWER, _RAISE, + _ADJUST }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define TGLOWER TG(_LOWER) -static bool is_ctl_pressed; -static bool is_esc_pressed; -static bool is_bspc_pressed; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_ortho_4x12 ( @@ -52,46 +49,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), +[_ADJUST] = LAYOUT_ortho_4x12 ( +// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ + _______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ +// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ +), + }; layer_state_t layer_state_set_user(layer_state_t state) { #ifdef JOTANCK_LEDS writePin(JOTANCK_LED1, (get_highest_layer(state) == _LOWER)); #endif - return state; + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } bool led_update_user(led_t led_state) { - // NumLock allways on if (!led_state.num_lock) { tap_code(KC_NUMLOCK); } - #ifdef JOTANCK_LEDS // CapsLock led writePin(JOTANCK_LED2, led_state.caps_lock); #endif return true; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_LCTL: - is_ctl_pressed = record->event.pressed; - break; - case KC_ESC: - is_esc_pressed = record->event.pressed; - break; - case KC_BSPC: - is_bspc_pressed = record->event.pressed; - break; - }; - return true; -} - -void matrix_scan_user(void) { - if (is_ctl_pressed && is_esc_pressed && is_bspc_pressed) { - reset_keyboard(); - } -} +} \ No newline at end of file From ce91b36c5dd75a7e09700a2362adeb04021582c4 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Thu, 25 Jun 2020 14:22:17 +0900 Subject: [PATCH 080/154] [Update] Japanese Translation of docs/feature_layers.md (#9537) * update docs/ja/feature_layers.md see https://github.com/qmk/qmk_firmware/pull/9492 * update original document's TAG --- docs/ja/feature_layers.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ja/feature_layers.md b/docs/ja/feature_layers.md index b855172094b0..6b18a30c7c4f 100644 --- a/docs/ja/feature_layers.md +++ b/docs/ja/feature_layers.md @@ -1,8 +1,8 @@ # レイヤー :id=layers QMK ファームウェアの最も強力で良く使われている機能の一つは、レイヤーを使う機能です。ほとんどの人にとって、これはラップトップやタブレットキーボードにあるのと同じように、様々なキーを可能にするファンクションキーに相当します。 @@ -24,7 +24,7 @@ QMK ファームウェアの最も強力で良く使われている機能の一 ### 注意事項 :id=caveats -現在のところ、`LT()` と `MT()` は[基本的なキーコードセット](ja/keycodes_basic.md)に制限されています。つまり、`LCTL()`、`KC_TILD` あるいは `0xFF` より大きなキーコードを使うことができません。特に、`LT` と `MT` のような二重の機能キーは16ビットキーコードを使います。4ビットは機能の識別のために使われ、次の12ビットはパラメータに分かれます。レイヤータップはレイヤーに4ビットを使います(実はレイヤータップがレイヤー 0-16 に制限されている理由です)。モッドタップも同じですが、識別子に4ビット、モッドのために4ビットが使われ、全体でキーコードに8ビットを使います。このため、使用されるキーコードは `0xFF` (0-255) に制限され、基本的なキーコードのみです。 +現在のところ、`LT()` と `MT()` は[基本的なキーコードセット](ja/keycodes_basic.md)に制限されています。つまり、`LCTL()`、`KC_TILD` あるいは `0xFF` より大きなキーコードを使うことができません。特に、`LT` と `MT` のような二重の機能キーは16ビットキーコードを使います。4ビットは機能の識別のために使われ、次の12ビットはパラメータに分かれます。レイヤータップはレイヤーに4ビットを使います(実はレイヤータップがレイヤー 0-15 に制限されている理由です)。モッドタップも同じですが、識別子に4ビット、モッドのために4ビットが使われ、全体でキーコードに8ビットを使います。このため、使用されるキーコードは `0xFF` (0-255) に制限され、基本的なキーコードのみです。 これを拡張してもせいぜい複雑になるだけでしょう。32ビットキーコードに移行すると、これの多くが解決されますが、キーマップマトリックスが使用する領域が2倍になります。また、問題が起きる可能性もあります。タップしたキーコードにモディファイアを適用する必要がある場合は、[タップダンス](ja/feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys)を使うことができます。 From 9b85bd68a45026fb796806342b47ac0176ab6510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20G=C3=A9rard?= <1322081+GreatWizard@users.noreply.github.com> Date: Thu, 25 Jun 2020 07:52:40 +0200 Subject: [PATCH 081/154] feat: add dvorak-fr as extra keymap (#9512) --- docs/reference_keymap_extras.md | 1 + quantum/keymap_extras/keymap_dvorak_fr.h | 135 +++++++++++++++++++ quantum/keymap_extras/sendstring_dvorak_fr.h | 80 +++++++++++ 3 files changed, 216 insertions(+) create mode 100644 quantum/keymap_extras/keymap_dvorak_fr.h create mode 100644 quantum/keymap_extras/sendstring_dvorak_fr.h diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index 44b056af6511..a7026a0994ec 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -64,6 +64,7 @@ There are also a few which are not quite language-specific, but useful if you ar |-------------------|------------------------| |Colemak |`keymap_colemak.h` | |Dvorak |`keymap_dvorak.h` | +|Dvorak (French) |`keymap_dvorak_fr.h` | |Dvorak (Programmer)|`keymap_dvp.h` | |Norman |`keymap_norman.h` | |Plover* |`keymap_plover.h` | diff --git a/quantum/keymap_extras/keymap_dvorak_fr.h b/quantum/keymap_extras/keymap_dvorak_fr.h new file mode 100644 index 000000000000..7bb5893d3707 --- /dev/null +++ b/quantum/keymap_extras/keymap_dvorak_fr.h @@ -0,0 +1,135 @@ +/* Copyright 2020 Guillaume Gérard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* Dvorak for the French language + * Version: 2 + * + * The layout is designed by Francis Leboutte + * + * Source: https://algo.be/ergo/dvorak-fr.html + */ + +#pragma once + +#include "keymap.h" + +// clang-format off + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ « │ » │ / │ - │ è │ \ │ ^ │ ( │ ` │ ) │ _ │ [ │ ] │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │ : │ ' │ é │ G │ . │ H │ V │ C │ M │ K │ Z │ ¨ │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │ O │ A │ U │ E │ B │ F │ S │ T │ N │ D │ W │ ~ │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │ à │ ; │ Q │ , │ I │ Y │ X │ R │ L │ P │ J │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define DV_LDAQ KC_GRV // « +#define DV_RDAQ KC_1 // » +#define DV_SLSH KC_2 // / +#define DV_MINS KC_3 // - +#define DV_EGRV KC_4 // è +#define DV_BSLS KC_5 // (backslash) +#define DV_CIRC KC_6 // ^ (dead) +#define DV_LPRN KC_7 // ( +#define DV_GRV KC_8 // ` (dead) +#define DV_RPRN KC_9 // ) +#define DV_UNDS KC_0 // _ +#define DV_LBRC KC_MINS // [ +#define DV_RBRC KC_EQL // ] +// Row 2 +#define DV_COLN KC_Q // : +#define DV_QUOT KC_W // ' +#define DV_EACU KC_E // é +#define DV_G KC_R // G +#define DV_DOT KC_T // . +#define DV_H KC_Y // H +#define DV_V KC_U // V +#define DV_C KC_I // C +#define DV_M KC_O // M +#define DV_K KC_P // K +#define DV_Z KC_LBRC // Z +#define DV_DIAE KC_RBRC // ¨ (dead) +// Row 3 +#define DV_O KC_A // O +#define DV_A KC_S // A +#define DV_U KC_D // U +#define DV_E KC_F // E +#define DV_B KC_G // B +#define DV_F KC_H // F +#define DV_S KC_J // S +#define DV_T KC_K // T +#define DV_N KC_L // N +#define DV_D KC_SCLN // D +#define DV_W KC_QUOT // W +#define DV_TILD KC_NUHS // ~ (dead) +// Row 4 +#define DV_AGRV KC_NUBS // à +#define DV_SCLN KC_Z // ; +#define DV_Q KC_X // Q +#define DV_COMM KC_C // , +#define DV_I KC_V // I +#define DV_Y KC_B // Y +#define DV_X KC_N // X +#define DV_R KC_M // R +#define DV_L KC_COMM // L +#define DV_P KC_DOT // P +#define DV_J KC_SLSH // J + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 0 │ 0 │ + │ % │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │ ? │ < │ > │   │ ! │   │   │   │   │   │   │ = │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │   │   │   │   │   │   │   │   │ # │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │ ç │ | │   │ @ │   │   │   │   │   │   │   │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define DV_ASTR S(DV_LDAQ) // * +#define DV_1 S(DV_RDAQ) // 1 +#define DV_2 S(DV_SLSH) // 2 +#define DV_3 S(DV_MINS) // 3 +#define DV_4 S(DV_EGRV) // 4 +#define DV_5 S(DV_BSLS) // 5 +#define DV_6 S(DV_CIRC) // 6 +#define DV_7 S(DV_LPRN) // 7 +#define DV_8 S(DV_GRV) // 8 +#define DV_9 S(DV_RPRN) // 9 +#define DV_0 S(DV_UNDS) // 0 +#define DV_PLUS S(DV_LBRC) // + +#define DV_PERC S(DV_RBRC) // % +// Row 2 +#define DV_QUES S(DV_COLN) // ? +#define DV_LABK S(DV_QUOT) // < +#define DV_RABK S(DV_EACU) // > +#define DV_EXLM S(DV_DOT) // ! +#define DV_EQL S(DV_DIAE) // = +// Row 3 +#define DV_HASH S(DV_TILD) // # +// Row 4 +#define DV_CCED S(DV_AGRV) // ç +#define DV_PIPE S(DV_SCLN) // | +#define DV_AT S(DV_COMM) // @ diff --git a/quantum/keymap_extras/sendstring_dvorak_fr.h b/quantum/keymap_extras/sendstring_dvorak_fr.h new file mode 100644 index 000000000000..98d0577afa72 --- /dev/null +++ b/quantum/keymap_extras/sendstring_dvorak_fr.h @@ -0,0 +1,80 @@ +/* Copyright 2020 Guillaume Gérard + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Sendstring lookup tables for Dvorak French layouts + +#pragma once + +#include "keymap_dvorak_fr.h" + +// clang-format off + +const uint8_t ascii_to_shift_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 1, 0, 1, 0, 1, 0, 0), + KCLUT_ENTRY(0, 0, 1, 1, 0, 0, 0, 0), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 0, 0, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 0, 0), +}; + + +const uint8_t ascii_to_keycode_lut[128] PROGMEM = { + // NUL SOH STX ETX EOT ENQ ACK BEL + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // BS TAB LF VT FF CR SO SI + KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // DLE DC1 DC2 DC3 DC4 NAK SYN ETB + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // CAN EM SUB ESC FS GS RS US + XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + // ! " # $ % & ' + KC_SPC, DV_DOT, XXXXXXX, DV_TILD, XXXXXXX, DV_RBRC, XXXXXXX, DV_QUOT, + // ( ) * + , - . / + DV_LPRN, DV_RPRN, DV_LDAQ, DV_LBRC, DV_COMM, DV_MINS, DV_DOT, DV_SLSH, + // 0 1 2 3 4 5 6 7 + DV_UNDS, DV_RDAQ, DV_SLSH, DV_MINS, DV_EGRV, DV_BSLS, DV_CIRC, DV_LPRN, + // 8 9 : ; < = > ? + DV_GRV, DV_RPRN, DV_COLN, DV_SCLN, DV_QUOT, DV_DIAE, DV_EACU, DV_COLN, + // @ A B C D E F G + DV_COMM, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, + // H I J K L M N O + DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, + // P Q R S T U V W + DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, + // X Y Z [ \ ] ^ _ + DV_X, DV_Y, DV_Z, DV_LBRC, DV_BSLS, DV_RBRC, DV_CIRC, DV_UNDS, + // ` a b c d e f g + DV_GRV, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, + // h i j k l m n o + DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, + // p q r s t u v w + DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, + // x y z { | } ~ DEL + DV_X, DV_Y, DV_Z, XXXXXXX, DV_SCLN, XXXXXXX, DV_TILD, KC_DEL +}; From 45c73b13e1c422c11cb4a97d8b81b42b84f2eb53 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Wed, 24 Jun 2020 22:57:51 -0700 Subject: [PATCH 082/154] Minor keymap fix (#9534) Changed bottom-right keys in WOW and DESTINY layers from KC_ENT to KC_RCTL. --- keyboards/atreus62/keymaps/xyverz/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/atreus62/keymaps/xyverz/keymap.c b/keyboards/atreus62/keymaps/xyverz/keymap.c index b852d5d7b965..109d61d8f206 100644 --- a/keyboards/atreus62/keymaps/xyverz/keymap.c +++ b/keyboards/atreus62/keymaps/xyverz/keymap.c @@ -86,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, 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_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LALT, CTL_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT + KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LALT, CTL_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL ), [_DESTINY] = LAYOUT ( /* Dvorak with minor modifications for playing Destiny 2 and other FPS Looters */ @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, 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_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT + KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL ), [_LOWER] = LAYOUT ( From 995464cb9ca587de53537aee718ff300cf69fac8 Mon Sep 17 00:00:00 2001 From: shela Date: Thu, 25 Jun 2020 14:58:36 +0900 Subject: [PATCH 083/154] [Docs] fix file path (#9540) --- docs/documentation_best_practices.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/documentation_best_practices.md b/docs/documentation_best_practices.md index 77c226117c2d..c193fed6b86e 100644 --- a/docs/documentation_best_practices.md +++ b/docs/documentation_best_practices.md @@ -61,4 +61,4 @@ This page describes my cool feature. You can use my cool feature to make coffee |KC_SUGAR||Order Sugar| ``` -Place your documentation into `docs/feature_.md`, and add that file to the appropriate place in `docs/_sidebar.md`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page. +Place your documentation into `docs/feature_.md`, and add that file to the appropriate place in `docs/_summary.md`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page. From c8b35b62307072072ee0ad8cbf162a09b9c74a64 Mon Sep 17 00:00:00 2001 From: jotix <47826561+jotix@users.noreply.github.com> Date: Thu, 25 Jun 2020 03:08:24 -0300 Subject: [PATCH 084/154] Jotanck (#9531) * add_adjust_layer * add_adjust_layer --- .../jotanck/keymaps/default/keymap.c | 39 +++++-------------- keyboards/handwired/jotanck/readme.md | 2 +- 2 files changed, 11 insertions(+), 30 deletions(-) diff --git a/keyboards/handwired/jotanck/keymaps/default/keymap.c b/keyboards/handwired/jotanck/keymaps/default/keymap.c index 3de30d396b7a..1524c758abe4 100644 --- a/keyboards/handwired/jotanck/keymaps/default/keymap.c +++ b/keyboards/handwired/jotanck/keymaps/default/keymap.c @@ -1,9 +1,7 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. +// This is the default layout for the handwired/jotanck keyboard #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 @@ -12,14 +10,11 @@ #define _QWERTY 0 #define _LOWER 1 #define _RAISE 2 +#define _ADJUST 3 #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -static bool is_ctl_pressed; -static bool is_esc_pressed; -static bool is_bspc_pressed; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -75,6 +70,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END ), + +[_ADJUST] = LAYOUT_ortho_4x12 ( + _______, RESET, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), }; @@ -95,26 +97,5 @@ layer_state_t layer_state_set_user(layer_state_t state) { break; }; #endif - return state; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_LCTL: - is_ctl_pressed = record->event.pressed; - break; - case KC_ESC: - is_esc_pressed = record->event.pressed; - break; - case KC_BSPC: - is_bspc_pressed = record->event.pressed; - break; - }; - return true; -} - -void matrix_scan_user(void) { - if (is_ctl_pressed && is_esc_pressed && is_bspc_pressed) { - reset_keyboard(); - } + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } diff --git a/keyboards/handwired/jotanck/readme.md b/keyboards/handwired/jotanck/readme.md index 3ceea1ef4c18..4e4b71d4e8b2 100644 --- a/keyboards/handwired/jotanck/readme.md +++ b/keyboards/handwired/jotanck/readme.md @@ -35,6 +35,6 @@ Make example for this keyboard (after setting up your build environment): ![Default Keymap](https://i.imgur.com/xh7Dmd7.png) -To reset the keyboard press Ctrl+Esc+BackSpace +To reset the keyboard press Lower+Raise+Q 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 7a710fb426024d2b4591de3c375da54bb78ae363 Mon Sep 17 00:00:00 2001 From: Rossman360 <53881724+Rossman360@users.noreply.github.com> Date: Thu, 25 Jun 2020 02:09:06 -0400 Subject: [PATCH 085/154] [Keyboard] adding Rewind keyboard (#9497) * adding rewind * keymap cleanup * keymap cleanup * improve keymap * improved keymap * reduntant * deletions * typos * readme img size and default bootloader --- keyboards/montsinger/rewind/config.h | 62 +++++++++++++++++ keyboards/montsinger/rewind/info.json | 68 +++++++++++++++++++ .../rewind/keymaps/default/keymap.c | 40 +++++++++++ .../rewind/keymaps/rossman360/keymap.c | 56 +++++++++++++++ keyboards/montsinger/rewind/readme.md | 15 ++++ keyboards/montsinger/rewind/rewind.c | 1 + keyboards/montsinger/rewind/rewind.h | 41 +++++++++++ keyboards/montsinger/rewind/rules.mk | 28 ++++++++ 8 files changed, 311 insertions(+) create mode 100644 keyboards/montsinger/rewind/config.h create mode 100644 keyboards/montsinger/rewind/info.json create mode 100644 keyboards/montsinger/rewind/keymaps/default/keymap.c create mode 100644 keyboards/montsinger/rewind/keymaps/rossman360/keymap.c create mode 100755 keyboards/montsinger/rewind/readme.md create mode 100644 keyboards/montsinger/rewind/rewind.c create mode 100644 keyboards/montsinger/rewind/rewind.h create mode 100644 keyboards/montsinger/rewind/rules.mk diff --git a/keyboards/montsinger/rewind/config.h b/keyboards/montsinger/rewind/config.h new file mode 100644 index 000000000000..f27622212527 --- /dev/null +++ b/keyboards/montsinger/rewind/config.h @@ -0,0 +1,62 @@ +/* +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x552F +#define DEVICE_VER 0x0002 +#define MANUFACTURER Montsinger +#define PRODUCT Rewind +#define DESCRIPTION "5x10 ortho that fits inside a puffy VHS case" + +/* key matrix size */ + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 10 + +/* + * 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) + * + */ + +#define MATRIX_ROW_PINS { B5, B4, D2, D3, B2 } +#define MATRIX_COL_PINS { F6, F7, B1, B3, E6, D7, C6, D4, D0, D1 } +#define UNUSED_PINS { F4, F5, B6 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* 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 + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 \ No newline at end of file diff --git a/keyboards/montsinger/rewind/info.json b/keyboards/montsinger/rewind/info.json new file mode 100644 index 000000000000..315670994a23 --- /dev/null +++ b/keyboards/montsinger/rewind/info.json @@ -0,0 +1,68 @@ + { + "keyboard":"montsinger/rewind", + "url": "https://montsinger.net", + "maintainer": "rossman360", + "width": 10, + "height": 5, + "layouts": { + "LAYOUT_ortho_5x10": { + "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":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":7, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4} + ] + } + } +} + diff --git a/keyboards/montsinger/rewind/keymaps/default/keymap.c b/keyboards/montsinger/rewind/keymaps/default/keymap.c new file mode 100644 index 000000000000..861c04faf921 --- /dev/null +++ b/keyboards/montsinger/rewind/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +#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, + _FN1, + _SYM +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = LAYOUT_ortho_5x10( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + 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, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCTL, KC_LALT, KC_LGUI, KC_LSFT, MO(_SYM),KC_ENTER,KC_SPC, MO(_FN1),KC_BSPC, KC_DEL +), + +[_FN1] = LAYOUT_ortho_5x10( + KC_ESC, 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_HOME, KC_LEFT, KC_UP, KC_RIGHT,KC_END, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DOWN, XXXXXXX, XXXXXXX, + RESET, XXXXXXX, XXXXXXX, _______, KC_BSPC, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +), + +[_SYM] = LAYOUT_ortho_5x10( + KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_PLUS, + KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +), +}; diff --git a/keyboards/montsinger/rewind/keymaps/rossman360/keymap.c b/keyboards/montsinger/rewind/keymaps/rossman360/keymap.c new file mode 100644 index 000000000000..152a30523741 --- /dev/null +++ b/keyboards/montsinger/rewind/keymaps/rossman360/keymap.c @@ -0,0 +1,56 @@ +#include QMK_KEYBOARD_H +#include "rossman360.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, + _DEL, + _FN1, + _FN2, + _NUM, +}; + +#define PGMOD LT(_NUM, KC_PGDN) +#define SPCMOD LT(_FN1, KC_SPACE) +#define ZSHIFT MT(MOD_LSFT, KC_Z) +#define TABMOD LT(_FN1, KC_TAB) +#define ESCMOD LT(_FN1, KC_1) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_BASE] = LAYOUT_ortho_5x10( + ESCMOD, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + 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, + ZSHIFT, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_BSPC, ALTDEL, KC_LCTRL,TABMOD, PGMOD , KC_ENTER,SPCMOD, MO(_DEL), KC_BSPC, KC_DEL +), + +[_FN1] = LAYOUT_ortho_5x10( + XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + JUMPBACK,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_LEFT, KC_UP, KC_RIGHT,KC_END, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, PMERGE, KC_DOWN, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, LWORD, RWORD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +), + +[_DEL] = LAYOUT_ortho_5x10( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + REMCAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, BLINE , KC_BSPC, BWORD , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +), + +[_NUM] = LAYOUT_ortho_5x10( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NTAB, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, CTAB, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_SCLN, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_MINS, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_0, XXXXXXX, XXXXXXX +), +}; diff --git a/keyboards/montsinger/rewind/readme.md b/keyboards/montsinger/rewind/readme.md new file mode 100755 index 000000000000..d0f4a6fe73d1 --- /dev/null +++ b/keyboards/montsinger/rewind/readme.md @@ -0,0 +1,15 @@ +# Rewind + +[Rewind](https://i.imgur.com/3QZbLr0l.jpg) + +A 5x10 ortholinear keyboard that fits inside puffy VHS cases, made and sold by Montsinger. [More info on Montsinger.net](https://montsinger.net). + +* Keyboard Maintainer: [Rossman360](https://github.com/rossman360) +* Hardware Supported: Rewind; Pro Micro or Elite-C +* Hardware Availability: [Montsinger.net](https://montsinger.net) + +Make example for this keyboard (after setting up your build environment): + + make montsinger/rewind: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/montsinger/rewind/rewind.c b/keyboards/montsinger/rewind/rewind.c new file mode 100644 index 000000000000..6796ef8d2eeb --- /dev/null +++ b/keyboards/montsinger/rewind/rewind.c @@ -0,0 +1 @@ +#include "rewind.h" diff --git a/keyboards/montsinger/rewind/rewind.h b/keyboards/montsinger/rewind/rewind.h new file mode 100644 index 000000000000..3019c7c03481 --- /dev/null +++ b/keyboards/montsinger/rewind/rewind.h @@ -0,0 +1,41 @@ +/* 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * The first section contains all of the arguments representing the + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_ortho_5x10( \ + 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,\ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39,\ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49\ + ) { \ + { 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 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49 } \ +} + diff --git a/keyboards/montsinger/rewind/rules.mk b/keyboards/montsinger/rewind/rules.mk new file mode 100644 index 000000000000..a59793d6b42a --- /dev/null +++ b/keyboards/montsinger/rewind/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina + +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From 6d88794960df06059dfa5805b99e271e14270cf2 Mon Sep 17 00:00:00 2001 From: TerryMathews Date: Thu, 25 Jun 2020 17:02:27 -0400 Subject: [PATCH 086/154] M0lly: add support for VIA (#9535) Co-authored-by: Ryan --- keyboards/m0lly/config.h | 6 +- keyboards/m0lly/keymaps/default/keymap.c | 2 +- keyboards/m0lly/keymaps/via/config.h | 1 + keyboards/m0lly/keymaps/via/keymap.c | 94 ++++++++++++++++++++++++ keyboards/m0lly/keymaps/via/rules.mk | 1 + keyboards/m0lly/m0lly.c | 7 ++ 6 files changed, 107 insertions(+), 4 deletions(-) create mode 100644 keyboards/m0lly/keymaps/via/config.h create mode 100644 keyboards/m0lly/keymaps/via/keymap.c create mode 100644 keyboards/m0lly/keymaps/via/rules.mk diff --git a/keyboards/m0lly/config.h b/keyboards/m0lly/config.h index 327b0f08c156..29bd8411e371 100644 --- a/keyboards/m0lly/config.h +++ b/keyboards/m0lly/config.h @@ -20,9 +20,9 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0003 +#define VENDOR_ID 0x544B // "TK" +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 #define MANUFACTURER The Key Company #define PRODUCT M0lly #define DESCRIPTION QMK keyboard firmware for M0lly diff --git a/keyboards/m0lly/keymaps/default/keymap.c b/keyboards/m0lly/keymaps/default/keymap.c index 5f6211f0f582..27e83cd21c68 100644 --- a/keyboards/m0lly/keymaps/default/keymap.c +++ b/keyboards/m0lly/keymaps/default/keymap.c @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef OLED_DRIVER_ENABLE void oled_task_user(void) { - oled_write_P(PSTR("TKC1800\n"),false); + oled_write_P(PSTR("M0lly\n"),false); // Host Keyboard Layer Status oled_write_P(PSTR("Layer: "), false); diff --git a/keyboards/m0lly/keymaps/via/config.h b/keyboards/m0lly/keymaps/via/config.h new file mode 100644 index 000000000000..579212d4a3a0 --- /dev/null +++ b/keyboards/m0lly/keymaps/via/config.h @@ -0,0 +1 @@ +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 diff --git a/keyboards/m0lly/keymaps/via/keymap.c b/keyboards/m0lly/keymaps/via/keymap.c new file mode 100644 index 000000000000..2e5900f16632 --- /dev/null +++ b/keyboards/m0lly/keymaps/via/keymap.c @@ -0,0 +1,94 @@ +/* Copyright 2017 Mathias Andersson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 { + BASE = 0, + FUNCTION, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap BASE: (Base Layer) Default Layer + * + * ,-----------------------------------------------------------. .-------------------. + * | ~ | 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |NumL| / | * | - | + * |-----------------------------------------------------------| |-------------------| + * |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| ,| .| /|Shift | | 1 | 2 | 3 | Ent| + * |-----------------------------------------------------------| |--------------| | + * |Ctrl|Gui |Alt | Space | Alt | Win |FN |Ctr | | 0 | . | | + * `-----------------------------------------------------------' '-------------------' + */ + [BASE] = 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, XXXXXXX, KC_NLCK, 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, XXXXXXX, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + 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_P1, KC_P2, KC_P3, XXXXXXX, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(FUNCTION), KC_RCTL, KC_P0, XXXXXXX, KC_PDOT, KC_PENT + ), + /* Keymap FUNCTION: (Function Layer) + * + * ,-----------------------------------------------------------. .-------------------. + * | | | | | | | | | | | | | | RESET | | | | | | + * |-----------------------------------------------------------| |-------------------| + * | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| |-------------------| + * | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| |-------------------| + * | |Tog|Mod|Hu+|Hu-|Sa+|Sa-|Va+|Va-|Stp| | | | | | | | + * |-----------------------------------------------------------| |--------------| | + * | | | | | | | | | | | | | + * `-----------------------------------------------------------' '-------------------' + */ + [FUNCTION] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, XXXXXXX, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, + _______, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_STEP, _______, _______, XXXXXXX, _______, _______, _______, XXXXXXX, + _______, _______, _______, _______, _______, _______, MO(FUNCTION), _______, _______, XXXXXXX, _______, _______ + ), +}; + +#ifdef OLED_DRIVER_ENABLE +void oled_task_user(void) { + oled_write_P(PSTR("M0lly\n"),false); + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case BASE: + oled_write_P(PSTR("Base\n"), false); + break; + case FUNCTION: + oled_write_P(PSTR("Function\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); +} +#endif diff --git a/keyboards/m0lly/keymaps/via/rules.mk b/keyboards/m0lly/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/m0lly/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/m0lly/m0lly.c b/keyboards/m0lly/m0lly.c index 5e1b5371a126..e47f9531e190 100644 --- a/keyboards/m0lly/m0lly.c +++ b/keyboards/m0lly/m0lly.c @@ -16,6 +16,13 @@ #include "m0lly.h" #include "led.h" +void keyboard_pre_init_kb(void) { + setPinInputHigh(D0); + setPinInputHigh(D1); + + keyboard_pre_init_user(); +} + void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up From c2dd19de514eda3cf00cecdee76b21cfd0d6e2e6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 26 Jun 2020 07:11:39 +1000 Subject: [PATCH 087/154] Fix error_log complaint about Helix boards (#9528) --- keyboards/helix/helix.h | 4 +- keyboards/helix/info.json | 13 -- keyboards/helix/pico/info.json | 77 +++++++-- keyboards/helix/pico/pico.h | 87 +++++----- keyboards/helix/rev1/info.json | 89 ++++++++-- keyboards/helix/rev1/rev1.h | 296 ++++++++++++++++----------------- keyboards/helix/rev2/info.json | 93 +++++++++-- keyboards/helix/rev2/rev2.h | 204 +++++++++++------------ 8 files changed, 512 insertions(+), 351 deletions(-) delete mode 100644 keyboards/helix/info.json diff --git a/keyboards/helix/helix.h b/keyboards/helix/helix.h index 7dac2455deba..d3d3b04169b1 100644 --- a/keyboards/helix/helix.h +++ b/keyboards/helix/helix.h @@ -1,5 +1,7 @@ #pragma once +#include "quantum.h" + #ifdef KEYBOARD_helix_rev1 #include "rev1.h" #endif @@ -9,5 +11,3 @@ #ifdef KEYBOARD_helix_pico #include "pico.h" #endif - -#include "quantum.h" diff --git a/keyboards/helix/info.json b/keyboards/helix/info.json deleted file mode 100644 index 6cd13d98e47f..000000000000 --- a/keyboards/helix/info.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "keyboard_name": "Helix", - "url": "https://github.com/MakotoKurauchi/helix", - "maintainer": "MakotoKurauchi", - "width": 15, - "height": 5, - "layouts": { - "LAYOUT": { - "key_count": 64, - "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":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}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] - } - } -} diff --git a/keyboards/helix/pico/info.json b/keyboards/helix/pico/info.json index f4e50b95c046..a82a8f2ec779 100644 --- a/keyboards/helix/pico/info.json +++ b/keyboards/helix/pico/info.json @@ -1,13 +1,70 @@ { - "keyboard_name": "HelixPico", - "url": "https://github.com/MakotoKurauchi/helix", - "maintainer": "MakotoKurauchi", - "width": 15, - "height": 4, - "layouts": { - "LAYOUT": { - "key_count": 50, - "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":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}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}] + "keyboard_name": "HelixPico", + "url": "https://github.com/MakotoKurauchi/helix", + "maintainer": "MakotoKurauchi", + "width": 15, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + + {"x": 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}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 12, "y": 1}, + {"x": 13, "y": 1}, + {"x": 14, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 12, "y": 2}, + {"x": 13, "y": 2}, + {"x": 14, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 12, "y": 3}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3} + ] + } } - } } diff --git a/keyboards/helix/pico/pico.h b/keyboards/helix/pico/pico.h index 303fe315ea59..60a5078ed47d 100644 --- a/keyboards/helix/pico/pico.h +++ b/keyboards/helix/pico/pico.h @@ -1,8 +1,6 @@ #pragma once -#include "../helix.h" - -#include "quantum.h" +#include "helix.h" #ifndef SPLIT_KEYBOARD extern bool is_helix_master(void); @@ -16,54 +14,51 @@ extern uint8_t is_master; // 'is_master' will be obsolete, it is recommended to #define has_usb() is_keyboard_master() #ifndef FLIP_HALF -// Standard Keymap -// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) + // Standard Keymap + // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) #define LAYOUT( \ - 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, L36, R36, R30, R31, R32, R33, R34, R35 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05, KC_NO }, \ - { L10, L11, L12, L13, L14, L15, KC_NO }, \ - { L20, L21, L22, L23, L24, L25, KC_NO }, \ - { L30, L31, L32, L33, L34, L35, L36 }, \ - { R05, R04, R03, R02, R01, R00, KC_NO }, \ - { R15, R14, R13, R12, R11, R10, KC_NO }, \ - { R25, R24, R23, R22, R21, R20, KC_NO }, \ - { R35, R34, R33, R32, R31, R30, R36 }, \ - } + 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, L36, R36, R30, R31, R32, R33, R34, R35 \ +) { \ + { L00, L01, L02, L03, L04, L05, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { R05, R04, R03, R02, R01, R00, KC_NO }, \ + { R15, R14, R13, R12, R11, R10, KC_NO }, \ + { R25, R24, R23, R22, R21, R20, KC_NO }, \ + { R35, R34, R33, R32, R31, R30, R36 }, \ +} #else -// Keymap with right side flipped -// (TRRS jack on both halves are to the right) -#define LAYOUT( \ - 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, L36, R36, R30, R31, R32, R33, R34, R35 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05, KC_NO }, \ - { L10, L11, L12, L13, L14, L15, KC_NO }, \ - { L20, L21, L22, L23, L24, L25, KC_NO }, \ - { L30, L31, L32, L33, L34, L35, L36 }, \ - { KC_NO, R00, R01, R02, R03, R04, R05 }, \ - { KC_NO, R10, R11, R12, R13, R14, R15 }, \ - { KC_NO, R20, R21, R22, R23, R24, R25 }, \ - { R36, R30, R31, R32, R33, R34, R35 }, \ - } + // Keymap with right side flipped + // (TRRS jack on both halves are to the right) + #define LAYOUT( \ + 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, L36, R36, R30, R31, R32, R33, R34, R35 \ + ) { \ + { L00, L01, L02, L03, L04, L05, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { KC_NO, R00, R01, R02, R03, R04, R05 }, \ + { KC_NO, R10, R11, R12, R13, R14, R15 }, \ + { KC_NO, R20, R21, R22, R23, R24, R25 }, \ + { R36, R30, R31, R32, R33, R34, R35 }, \ + } #endif -#define LAYOUT_kc( \ +#define LAYOUT_kc( \ 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, L36, R36, R30, R31, R32, R33, R34, R35 \ - ) \ - LAYOUT( \ - KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ - KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ - KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ - KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ - ) +) LAYOUT( \ + KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ + KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ + KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ + KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ +) diff --git a/keyboards/helix/rev1/info.json b/keyboards/helix/rev1/info.json index 505401cee8e5..6811e764d139 100644 --- a/keyboards/helix/rev1/info.json +++ b/keyboards/helix/rev1/info.json @@ -1,13 +1,82 @@ { - "keyboard_name": "Helix rev. 1", - "url": "https://github.com/MakotoKurauchi/helix", - "maintainer": "MakotoKurauchi", - "width": 13, - "height": 5, - "layouts": { - "LAYOUT": { - "key_count": 60, - "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":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}] + "keyboard_name": "Helix rev. 1", + "url": "https://github.com/MakotoKurauchi/helix", + "maintainer": "MakotoKurauchi", + "width": 13, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 12, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 12, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 12, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4}, + + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4} + ] + } } - } } diff --git a/keyboards/helix/rev1/rev1.h b/keyboards/helix/rev1/rev1.h index b505845ada9e..b3a525554e5e 100644 --- a/keyboards/helix/rev1/rev1.h +++ b/keyboards/helix/rev1/rev1.h @@ -1,180 +1,168 @@ #pragma once -#include "../helix.h" - -#include "quantum.h" +#include "helix.h" #ifdef USE_I2C #include #ifdef __AVR__ - #include - #include + #include + #include #endif #endif #if MATRIX_ROWS == 6 // HELIX_ROWS == 3 - #ifndef FLIP_HALF - // Standard Keymap - // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) - #define LAYOUT( \ - 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 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05 }, \ - { L10, L11, L12, L13, L14, L15 }, \ - { L20, L21, L22, L23, L24, L25 }, \ - { R05, R04, R03, R02, R01, R00 }, \ - { R15, R14, R13, R12, R11, R10 }, \ - { R25, R24, R23, R22, R21, R20 }, \ - } - #else - // Keymap with right side flipped - // (TRRS jack on both halves are to the right) - #define LAYOUT( \ - 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 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05 }, \ - { L10, L11, L12, L13, L14, L15 }, \ - { L20, L21, L22, L23, L24, L25 }, \ - { R00, R01, R02, R03, R04, R05 }, \ - { R10, R11, R12, R13, R14, R15 }, \ - { R20, R21, R22, R23, R24, R25 }, \ - } - #endif + #ifndef FLIP_HALF + // Standard Keymap + // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) + #define LAYOUT( \ + 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 \ + ) { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 } \ + } + #else + // Keymap with right side flipped + // (TRRS jack on both halves are to the right) + #define LAYOUT( \ + 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 \ + ) { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { R00, R01, R02, R03, R04, R05 }, \ + { R10, R11, R12, R13, R14, R15 }, \ + { R20, R21, R22, R23, R24, R25 } \ + } + #endif #elif MATRIX_ROWS == 8 // HELIX_ROWS == 4 - #ifndef FLIP_HALF - // Standard Keymap - // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) - #define LAYOUT( \ - 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 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05 }, \ - { L10, L11, L12, L13, L14, L15 }, \ - { L20, L21, L22, L23, L24, L25 }, \ - { L30, L31, L32, L33, L34, L35 }, \ - { R05, R04, R03, R02, R01, R00 }, \ - { R15, R14, R13, R12, R11, R10 }, \ - { R25, R24, R23, R22, R21, R20 }, \ - { R35, R34, R33, R32, R31, R30 } \ - } - #else - // Keymap with right side flipped - // (TRRS jack on both halves are to the right) - #define LAYOUT( \ - 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 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05 }, \ - { L10, L11, L12, L13, L14, L15 }, \ - { L20, L21, L22, L23, L24, L25 }, \ - { L30, L31, L32, L33, L34, L35 }, \ - { R00, R01, R02, R03, R04, R05 }, \ - { R10, R11, R12, R13, R14, R15 }, \ - { R20, R21, R22, R23, R24, R25 }, \ - { R30, R31, R32, R33, R34, R35 } \ - } - #endif + #ifndef FLIP_HALF + // Standard Keymap + // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) + #define LAYOUT( \ + 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 \ + ) { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 }, \ + { R35, R34, R33, R32, R31, R30 } \ + } + #else + // Keymap with right side flipped + // (TRRS jack on both halves are to the right) + #define LAYOUT( \ + 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 \ + ) { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { R00, R01, R02, R03, R04, R05 }, \ + { R10, R11, R12, R13, R14, R15 }, \ + { R20, R21, R22, R23, R24, R25 }, \ + { R30, R31, R32, R33, R34, R35 } \ + } + #endif #elif MATRIX_ROWS == 10 // HELIX_ROWS == 5 - #ifndef FLIP_HALF - // Standard Keymap - // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) - #define LAYOUT( \ - 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, \ - L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05 }, \ - { L10, L11, L12, L13, L14, L15 }, \ - { L20, L21, L22, L23, L24, L25 }, \ - { L30, L31, L32, L33, L34, L35 }, \ - { L40, L41, L42, L43, L44, L45 }, \ - { R05, R04, R03, R02, R01, R00 }, \ - { R15, R14, R13, R12, R11, R10 }, \ - { R25, R24, R23, R22, R21, R20 }, \ - { R35, R34, R33, R32, R31, R30 }, \ - { R45, R44, R43, R42, R41, R40 } \ - } - #else - // Keymap with right side flipped - // (TRRS jack on both halves are to the right) - #define LAYOUT( \ + #ifndef FLIP_HALF + // Standard Keymap + // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) +#define LAYOUT( \ 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, \ - L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05 }, \ - { L10, L11, L12, L13, L14, L15 }, \ - { L20, L21, L22, L23, L24, L25 }, \ - { L30, L31, L32, L33, L34, L35 }, \ - { L40, L41, L42, L43, L44, L45 }, \ - { R00, R01, R02, R03, R04, R05 }, \ - { R10, R11, R12, R13, R14, R15 }, \ - { R20, R21, R22, R23, R24, R25 }, \ - { R30, R31, R32, R33, R34, R35 }, \ - { R40, R41, R42, R43, R44, R45 } \ - } - #endif + L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45 \ +) { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { L40, L41, L42, L43, L44, L45 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 }, \ + { R35, R34, R33, R32, R31, R30 }, \ + { R45, R44, R43, R42, R41, R40 } \ +} + #else + // Keymap with right side flipped + // (TRRS jack on both halves are to the right) + #define LAYOUT( \ + 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, \ + L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45 \ + ) { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { L40, L41, L42, L43, L44, L45 }, \ + { R00, R01, R02, R03, R04, R05 }, \ + { R10, R11, R12, R13, R14, R15 }, \ + { R20, R21, R22, R23, R24, R25 }, \ + { R30, R31, R32, R33, R34, R35 }, \ + { R40, R41, R42, R43, R44, R45 } \ + } + #endif #else - #error "expected HELIX_ROWS 3 or 4 or 5" + #error "expected HELIX_ROWS 3 or 4 or 5" #endif // Used to create a keymap using only KC_ prefixed keys #if MATRIX_ROWS == 6 // HELIX_ROWS == 3 - #define LAYOUT_kc( \ - 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 \ - ) \ - LAYOUT( \ - KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ - KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ - KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25 \ + #define LAYOUT_kc( \ + 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 \ + ) LAYOUT( \ + KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ + KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ + KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25 \ ) #elif MATRIX_ROWS == 8 // HELIX_ROWS == 4 - #define LAYOUT_kc( \ - 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 \ - ) \ - LAYOUT( \ - KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ - KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ - KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ - KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ + #define LAYOUT_kc( \ + 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 \ + ) LAYOUT( \ + KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ + KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ + KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ + KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ ) -#else - #define LAYOUT_kc( \ - 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, \ - L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45 \ - ) \ - LAYOUT( \ - KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ - KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ - KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ - KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, \ - KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45 \ +#else // HELIX_ROWS == 5 + #define LAYOUT_kc( \ + 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, \ + L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45 \ + ) LAYOUT( \ + KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ + KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ + KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ + KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, \ + KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45 \ ) #endif - diff --git a/keyboards/helix/rev2/info.json b/keyboards/helix/rev2/info.json index 236aa3688d70..7d9341c58b50 100644 --- a/keyboards/helix/rev2/info.json +++ b/keyboards/helix/rev2/info.json @@ -1,13 +1,86 @@ { - "keyboard_name": "Helix rev. 2", - "url": "https://github.com/MakotoKurauchi/helix", - "maintainer": "MakotoKurauchi", - "width": 15, - "height": 5, - "layouts": { - "LAYOUT": { - "key_count": 64, - "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":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}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] + "keyboard_name": "Helix rev. 2", + "url": "https://github.com/MakotoKurauchi/helix", + "maintainer": "MakotoKurauchi", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + + {"x": 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}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 12, "y": 1}, + {"x": 13, "y": 1}, + {"x": 14, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 12, "y": 2}, + {"x": 13, "y": 2}, + {"x": 14, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 12, "y": 3}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4}, + {"x": 6, "y": 4}, + + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] + } } - } } diff --git a/keyboards/helix/rev2/rev2.h b/keyboards/helix/rev2/rev2.h index 8b82a4a6eea0..42f215fdf4ce 100644 --- a/keyboards/helix/rev2/rev2.h +++ b/keyboards/helix/rev2/rev2.h @@ -1,12 +1,10 @@ #pragma once -#include "../helix.h" - -#include "quantum.h" +#include "helix.h" #ifndef SPLIT_KEYBOARD - extern bool is_helix_master(void); - #define is_keyboard_master() is_helix_master() + extern bool is_helix_master(void); + #define is_keyboard_master() is_helix_master() #endif // Each keymap.c should use is_keyboard_master() instead of 'is_master', 'has_usb()'. @@ -16,120 +14,114 @@ extern uint8_t is_master; // 'is_master' will be obsolete, it is recommended to #define has_usb() is_keyboard_master() #if MATRIX_ROWS == 8 // HELIX_ROWS == 4 -#ifndef FLIP_HALF -// Standard Keymap -// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) + #ifndef FLIP_HALF + // Standard Keymap + // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) + #define LAYOUT( \ + 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, L36, R36, R30, R31, R32, R33, R34, R35 \ + ) { \ + { L00, L01, L02, L03, L04, L05, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { R05, R04, R03, R02, R01, R00, KC_NO }, \ + { R15, R14, R13, R12, R11, R10, KC_NO }, \ + { R25, R24, R23, R22, R21, R20, KC_NO }, \ + { R35, R34, R33, R32, R31, R30, R36 } \ + } + #else + // Keymap with right side flipped + // (TRRS jack on both halves are to the right) + #define LAYOUT( \ + 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, L36, R36, R30, R31, R32, R33, R34, R35 \ + ) { \ + { L00, L01, L02, L03, L04, L05, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { KC_NO, R00, R01, R02, R03, R04, R05 }, \ + { KC_NO, R10, R11, R12, R13, R14, R15 }, \ + { KC_NO, R20, R21, R22, R23, R24, R25 }, \ + { R36, R30, R31, R32, R33, R34, R35 } \ + } + #endif +#else // HELIX_ROWS == 5 + #ifndef FLIP_HALF + // Standard Keymap + // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) #define LAYOUT( \ - 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, L36, R36, R30, R31, R32, R33, R34, R35 \ - ) \ - { \ + 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, L36, R36, R30, R31, R32, R33, R34, R35, \ + L40, L41, L42, L43, L44, L45, L46, R46, R40, R41, R42, R43, R44, R45 \ +) { \ { L00, L01, L02, L03, L04, L05, KC_NO }, \ { L10, L11, L12, L13, L14, L15, KC_NO }, \ { L20, L21, L22, L23, L24, L25, KC_NO }, \ { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ { R05, R04, R03, R02, R01, R00, KC_NO }, \ { R15, R14, R13, R12, R11, R10, KC_NO }, \ { R25, R24, R23, R22, R21, R20, KC_NO }, \ { R35, R34, R33, R32, R31, R30, R36 }, \ - } -#else -// Keymap with right side flipped -// (TRRS jack on both halves are to the right) -#define LAYOUT( \ - 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, L36, R36, R30, R31, R32, R33, R34, R35 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05, KC_NO }, \ - { L10, L11, L12, L13, L14, L15, KC_NO }, \ - { L20, L21, L22, L23, L24, L25, KC_NO }, \ - { L30, L31, L32, L33, L34, L35, L36 }, \ - { KC_NO, R00, R01, R02, R03, R04, R05 }, \ - { KC_NO, R10, R11, R12, R13, R14, R15 }, \ - { KC_NO, R20, R21, R22, R23, R24, R25 }, \ - { R36, R30, R31, R32, R33, R34, R35 }, \ - } -#endif -#else - #ifndef FLIP_HALF - // Standard Keymap - // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) - #define LAYOUT( \ - 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, L36, R36, R30, R31, R32, R33, R34, R35, \ - L40, L41, L42, L43, L44, L45, L46, R46, R40, R41, R42, R43, R44, R45 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05, KC_NO }, \ - { L10, L11, L12, L13, L14, L15, KC_NO }, \ - { L20, L21, L22, L23, L24, L25, KC_NO }, \ - { L30, L31, L32, L33, L34, L35, L36 }, \ - { L40, L41, L42, L43, L44, L45, L46 }, \ - { R05, R04, R03, R02, R01, R00, KC_NO }, \ - { R15, R14, R13, R12, R11, R10, KC_NO }, \ - { R25, R24, R23, R22, R21, R20, KC_NO }, \ - { R35, R34, R33, R32, R31, R30, R36 }, \ - { R45, R44, R43, R42, R41, R40, R46 } \ - } - #else - // Keymap with right side flipped - // (TRRS jack on both halves are to the right) - #define LAYOUT( \ - 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, L36, R36, R30, R31, R32, R33, R34, R35, \ - L40, L41, L42, L43, L44, L45, L46, R46, R40, R41, R42, R43, R44, R45 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05, KC_NO }, \ - { L10, L11, L12, L13, L14, L15, KC_NO }, \ - { L20, L21, L22, L23, L24, L25, KC_NO }, \ - { L30, L31, L32, L33, L34, L35, L36 }, \ - { L40, L41, L42, L43, L44, L45, L46 }, \ - { KC_NO, R00, R01, R02, R03, R04, R05 }, \ - { KC_NO, R10, R11, R12, R13, R14, R15 }, \ - { KC_NO, R20, R21, R22, R23, R24, R25 }, \ - { R36, R30, R31, R32, R33, R34, R35 }, \ - { R46, R40, R41, R42, R43, R44, R45 } \ - } - #endif + { R45, R44, R43, R42, R41, R40, R46 } \ +} + #else + // Keymap with right side flipped + // (TRRS jack on both halves are to the right) + #define LAYOUT( \ + 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, L36, R36, R30, R31, R32, R33, R34, R35, \ + L40, L41, L42, L43, L44, L45, L46, R46, R40, R41, R42, R43, R44, R45 \ + ) { \ + { L00, L01, L02, L03, L04, L05, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { KC_NO, R00, R01, R02, R03, R04, R05 }, \ + { KC_NO, R10, R11, R12, R13, R14, R15 }, \ + { KC_NO, R20, R21, R22, R23, R24, R25 }, \ + { R36, R30, R31, R32, R33, R34, R35 }, \ + { R46, R40, R41, R42, R43, R44, R45 } \ + } + #endif #endif // Used to create a keymap using only KC_ prefixed keys #if MATRIX_ROWS == 8 // HELIX_ROWS == 4 - #define LAYOUT_kc( \ - 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, L36, R36, R30, R31, R32, R33, R34, R35 \ - ) \ - LAYOUT( \ - KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ - KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ - KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ - KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ + #define LAYOUT_kc( \ + 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, L36, R36, R30, R31, R32, R33, R34, R35 \ + ) LAYOUT( \ + KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ + KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ + KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ + KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ ) -#else - #define LAYOUT_kc( \ - 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, L36, R36, R30, R31, R32, R33, R34, R35, \ - L40, L41, L42, L43, L44, L45, L46, R46, R40, R41, R42, R43, R44, R45 \ - ) \ - LAYOUT( \ - KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ - KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ - KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ - KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, \ - KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##L46, KC_##R46, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45 \ +#else // HELIX_ROWS == 5 + #define LAYOUT_kc( \ + 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, L36, R36, R30, R31, R32, R33, R34, R35, \ + L40, L41, L42, L43, L44, L45, L46, R46, R40, R41, R42, R43, R44, R45 \ + ) LAYOUT( \ + KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ + KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ + KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ + KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, \ + KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##L46, KC_##R46, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45 \ ) #endif From 9236c3a9d026d556ba762c5a631d1f15bc1c20a0 Mon Sep 17 00:00:00 2001 From: Adam DeHaven Date: Fri, 26 Jun 2020 06:17:31 -0400 Subject: [PATCH 088/154] [Keymap] Adding custom keymaps (#9426) * Adding custom keymaps * Update keyboards/kbdfans/kbd75/keymaps/adamdehaven/keymap.c --- .../keymaps/adamdehaven/config.h | 3 + .../keymaps/adamdehaven/keymap.c | 71 ++++++++ .../keymaps/adamdehaven/rules.mk | 1 + .../kbd75/keymaps/adamdehaven/config.h | 3 + .../kbd75/keymaps/adamdehaven/keymap.c | 168 ++++++++++++++++++ .../kbd75/keymaps/adamdehaven/rules.mk | 1 + 6 files changed, 247 insertions(+) create mode 100644 keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/config.h create mode 100644 keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/keymap.c create mode 100644 keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/rules.mk create mode 100644 keyboards/kbdfans/kbd75/keymaps/adamdehaven/config.h create mode 100644 keyboards/kbdfans/kbd75/keymaps/adamdehaven/keymap.c create mode 100644 keyboards/kbdfans/kbd75/keymaps/adamdehaven/rules.mk diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/config.h b/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/config.h new file mode 100644 index 000000000000..4fcd7735526f --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define TAPPING_TERM 200 diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/keymap.c b/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/keymap.c new file mode 100644 index 000000000000..ec5c0c8a8ef2 --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/keymap.c @@ -0,0 +1,71 @@ +#include QMK_KEYBOARD_H + +// Compile from qmk_firmware folder with the following command: +// $ make kbdfans/kbd67/mkii-soldered:adamdehaven + +// Each layer gets a name for readability. 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, and you can also skip them entirely and just use numbers. +#define _QWERTY 0 +#define _FN1 1 + +// Tap Dance Definitions +enum tapdance { + TD_HOME = 0, + TD_END +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Home, twice for PageUp + [TD_HOME] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_PGUP), + // Tap once for End, twice for PageDown + [TD_END] = ACTION_TAP_DANCE_DOUBLE(KC_END, KC_PGDOWN) +}; + +/* + * You can use _______ in place for KC_TRNS (transparent) + * Or you can use XXXXXXX for KC_NO (NOOP) + */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* 0: _QWERTY + * ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ + * │ KC_GESC │ KC_1 │ KC_2 │ KC_3 │ KC_4 │ KC_5 │ KC_6 │ KC_7 │ KC_8 │ KC_9 │ KC_0 │ KC_MINS │ KC_EQL │ KC_BSPC (2) │ 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 │ TD_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 │ TD_END │ + * ├────────────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────────────┬─────────┼─────────┤ + * │ KC_LSFT (2) │ 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(_FN1)│ + * ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬┴────────┬─┴───────┬─────────┼─────────┼─────────┤ + * │ KC_LCTL │ KC_LGUI │ KC_LALT │ KC_SPC │ KC_RALT │ KC_RCTL │ │ KC_LEFT │ KC_DOWN │ KC_RGHT │ + * └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ + */ + [_QWERTY] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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, TD(TD_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, TD(TD_END), + 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(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* 1: _FN1 + * ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬───────────────────┬─────────┐ + * │ RESET │ 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) │ KC_MUTE │ + * ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ + * │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ KC_PSCR │ _______ │ _______ │ _______ │ KC_VOLU │ + * ├──────────────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴──────────────┼─────────┤ + * │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ KC_VOLD │ + * ├────────────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────────────┬─────────┼─────────┤ + * │ _______ (2) │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ KC_MPLY │ _______ │ + * ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ + * │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ │ KC_MPRV │ KC_MPLY │ KC_MNXT │ + * └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ + */ + [_FN1] = LAYOUT_all( + RESET, KC_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_PSCR, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT + ) +}; diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/rules.mk b/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/rules.mk new file mode 100644 index 000000000000..e5ddcae8d927 --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/kbdfans/kbd75/keymaps/adamdehaven/config.h b/keyboards/kbdfans/kbd75/keymaps/adamdehaven/config.h new file mode 100644 index 000000000000..4fcd7735526f --- /dev/null +++ b/keyboards/kbdfans/kbd75/keymaps/adamdehaven/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define TAPPING_TERM 200 diff --git a/keyboards/kbdfans/kbd75/keymaps/adamdehaven/keymap.c b/keyboards/kbdfans/kbd75/keymaps/adamdehaven/keymap.c new file mode 100644 index 000000000000..134cf28db797 --- /dev/null +++ b/keyboards/kbdfans/kbd75/keymaps/adamdehaven/keymap.c @@ -0,0 +1,168 @@ +#include QMK_KEYBOARD_H + +// Compile from qmk_firmware folder with the following command: +// $ make kbdfans/kbd75/rev2:adamdehaven + +// Each layer gets a name for readability. 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, and you can also skip them entirely and just use numbers. +#define _QWERTY 0 +#define _FN1 1 + +extern rgblight_config_t rgblight_config; +static bool RGB_user_wants_enabled; +uint16_t RGB_current_mode; +uint16_t RGB_current_hue; +uint16_t RGB_current_sat; +uint16_t RGB_current_val; + +// Setup RGB +void keyboard_post_init_user(void) { + RGB_user_wants_enabled = rgblight_config.enable; + RGB_current_mode = rgblight_config.mode; + RGB_current_hue = rgblight_config.hue; + RGB_current_sat = rgblight_config.sat; + RGB_current_val = rgblight_config.val; +}; + +// Restore user settings +void restore_user_rgb_settings(void) { + // First, enable RGB + if (RGB_user_wants_enabled && !rgblight_config.enable) { + rgblight_enable(); + } else if (!RGB_user_wants_enabled && rgblight_config.enable) { + rgblight_disable(); + } + + // Restore settings + rgblight_sethsv(RGB_current_hue, RGB_current_sat, RGB_current_val); // Restore underglow RGB color + rgblight_mode(RGB_current_mode); // Restore RGB mode +}; + +// Tap Dance Definitions +enum tapdance { + TD_PGUP = 0, + TD_PGDN +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for PageUp, twice for Home + [TD_PGUP] = ACTION_TAP_DANCE_DOUBLE(KC_PGUP, KC_HOME), + // Tap once for PageDown, twice for End + [TD_PGDN] = ACTION_TAP_DANCE_DOUBLE(KC_PGDOWN, KC_END) +}; + +// Fire on keypress +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case RGB_TOG: + if (!record->event.pressed) { + // on keyup + RGB_user_wants_enabled = rgblight_config.enable; + } + break; + case RGB_MOD: + if (!record->event.pressed) { + // on keyup + RGB_current_mode = rgblight_config.mode; + } + break; + case RGB_HUI: + case RGB_HUD: + if (!record->event.pressed) { + // on keyup + RGB_current_hue = rgblight_config.hue; + } + break; + case RGB_SAI: + case RGB_SAD: + if (!record->event.pressed) { + // on keyup + RGB_current_sat = rgblight_config.sat; + } + break; + case RGB_VAI: + case RGB_VAD: + if (!record->event.pressed) { + // on keyup + RGB_current_val = rgblight_config.val; + } + break; + } + return true; +}; + + +/* + * You can use _______ in place for KC_TRNS (transparent) + * Or you can use XXXXXXX for KC_NO (NOOP) + */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* 0: _QWERTY + * ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ + * │ 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_INSERT│ 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 │ TD_PGUP │ + * ├────────────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────────────┬─────────┼─────────┤ + * │ KC_LSFT (2) │ KC_Z │ KC_X │ KC_C │ KC_V │ KC_B │ KC_N │ KC_M │ KC_COMM │ KC_DOT │ KC_SLSH │ KC_RSFT │ KC_UP │ TD_PGDN │ + * ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬┴────────┬─┴───────┬─────────┼─────────┼─────────┤ + * │ KC_LCTL │ KC_LGUI │ KC_LALT │ KC_SPC │ KC_RALT │MO(_FN1) │ KC_RCTL │ KC_LEFT │ KC_DOWN │ KC_RGHT │ + * └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ + */ + [_QWERTY] = 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_INSERT, 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_DEL, 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, TD(TD_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, TD(TD_PGDN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* 1: _FN1 + * ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ + * │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ KC_MUTE │ + * ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ + * │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ + * ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ + * │ _______ │ RGB_TOG │ RGB_MOD │ RGB_HUI │ RGB_HUD │ RGB_SAI │ RGB_SAD │ RGB_VAI │ RGB_VAD │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ + * ├──────────────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴─┬───────┴──────────────┼─────────┤ + * │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ KC_VOLU │ + * ├────────────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────────────┬─────────┼─────────┤ + * │ _______ (2) │ _______ │ _______ │ BL_DEC │ BL_TOGG │ BL_INC │ BL_STEP │ _______ │ _______ │ _______ │ _______ │ _______ │ KC_MPLY │ KC_VOLD │ + * ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ + * │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ _______ │ KC_MPRV │ KC_MPLY │ KC_MNXT │ + * └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ + */ + [_FN1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT + ) +}; + +void toggle_rgb_caps_lock(bool isActive) { + if (isActive) { + if (!rgblight_config.enable) { + rgblight_enable(); + } + + // Set underglow color if CAPS_LOCK enabled + rgblight_sethsv(HSV_RED); + // Set to breathe + rgblight_mode(5); + } else { + restore_user_rgb_settings(); + } +}; + +bool led_update_user(led_t led_state) { + toggle_rgb_caps_lock(led_state.caps_lock); + return true; +}; diff --git a/keyboards/kbdfans/kbd75/keymaps/adamdehaven/rules.mk b/keyboards/kbdfans/kbd75/keymaps/adamdehaven/rules.mk new file mode 100644 index 000000000000..e5ddcae8d927 --- /dev/null +++ b/keyboards/kbdfans/kbd75/keymaps/adamdehaven/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes From 30f4b4d76349a61173f3eda87c57a3cde1c92aab Mon Sep 17 00:00:00 2001 From: Pablo Ovelleiro Corral Date: Fri, 26 Jun 2020 13:19:19 +0200 Subject: [PATCH 089/154] [Keymap] pinpox keymap for dz60 (#9494) * pinpox keymap for dz60 * Update keyboards/dz60/keymaps/pinpox/rules.mk * Update keyboards/dz60/keymaps/pinpox/keymap.c * Update keyboards/dz60/keymaps/pinpox/rules.mk --- keyboards/dz60/keymaps/pinpox/keymap.c | 22 ++++++++++++++++++++++ keyboards/dz60/keymaps/pinpox/rules.mk | 1 + 2 files changed, 23 insertions(+) create mode 100644 keyboards/dz60/keymaps/pinpox/keymap.c create mode 100644 keyboards/dz60/keymaps/pinpox/rules.mk diff --git a/keyboards/dz60/keymaps/pinpox/keymap.c b/keyboards/dz60/keymaps/pinpox/keymap.c new file mode 100644 index 000000000000..0a6497581a81 --- /dev/null +++ b/keyboards/dz60/keymaps/pinpox/keymap.c @@ -0,0 +1,22 @@ +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Qwerty + [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_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_LCTL, KC_LGUI, MO(1), KC_SPC, KC_ALGR, KC_RGUI, KC_LALT, KC_RCTL + ), + + // Special keys + [1] = LAYOUT_60_ansi( + KC_SLEP, KC_F1, KC_F2, KC_F3, KC_F3, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_NO, RGB_MOD, RGB_RMOD, KC_NO, KC_NO, KC_NO, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_PGDOWN,KC_NO, + KC_CAPSLOCK, BL_TOGG, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MFFD, + KC_NO, BL_INC, BL_DEC, BL_BRTG, KC_NO, KC_NO, KC_UP, KC_NO, KC_HOME, KC_END, KC_NO, KC_PSCR, + KC_NO, KC_NO, KC_TRNS, KC_MPLY, KC_NO, KC_NO, KC_TRNS, KC_NO + ) +}; diff --git a/keyboards/dz60/keymaps/pinpox/rules.mk b/keyboards/dz60/keymaps/pinpox/rules.mk new file mode 100644 index 000000000000..fcf3767e1663 --- /dev/null +++ b/keyboards/dz60/keymaps/pinpox/rules.mk @@ -0,0 +1 @@ +BOOTMAGIC_ENABLE = lite From 7369e195c21588e00ed5c4d970f1170bab39ae00 Mon Sep 17 00:00:00 2001 From: jotix <47826561+jotix@users.noreply.github.com> Date: Fri, 26 Jun 2020 18:04:09 -0300 Subject: [PATCH 090/154] tap toggle to lower layer (#9542) --- layouts/community/ortho_4x12/jotix/config.h | 4 ++++ layouts/community/ortho_4x12/jotix/keymap.c | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 layouts/community/ortho_4x12/jotix/config.h diff --git a/layouts/community/ortho_4x12/jotix/config.h b/layouts/community/ortho_4x12/jotix/config.h new file mode 100644 index 000000000000..9b2f4fb64d29 --- /dev/null +++ b/layouts/community/ortho_4x12/jotix/config.h @@ -0,0 +1,4 @@ +// jotix ortho_4x12_layout config.h + +#define TAPPING_TOGGLE 2 +#define TAPPING_TERM 175 \ No newline at end of file diff --git a/layouts/community/ortho_4x12/jotix/keymap.c b/layouts/community/ortho_4x12/jotix/keymap.c index d28be78e56d0..5c08f3a2ed08 100644 --- a/layouts/community/ortho_4x12/jotix/keymap.c +++ b/layouts/community/ortho_4x12/jotix/keymap.c @@ -9,7 +9,7 @@ enum layers { #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define TGLOWER TG(_LOWER) +#define TTLOWER TT(_LOWER) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -21,7 +21,7 @@ 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_ENT, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - KC_LCTL,KC_LGUI,KC_LALT,KC_RALT,LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT + KC_LCTL,KC_LGUI,KC_LALT,KC_RALT,TTLOWER,KC_SPC, KC_SPC, RAISE, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ _______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,_______,_______,_______,TGLOWER,_______,_______,_______,KC_HOME,KC_PGDN,KC_PGUP,KC_END + _______,_______,_______,_______,_______,_______,_______,_______,KC_HOME,KC_PGDN,KC_PGUP,KC_END // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), From ac7b1d0bf30395f9564a2e64b38ebae63b87b9b8 Mon Sep 17 00:00:00 2001 From: Salicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com> Date: Sun, 28 Jun 2020 04:33:02 +0900 Subject: [PATCH 091/154] [Update]JISplite89 Readme and LED nums (#9554) 1.Update the URL and photos in the build guide. 2.Changed the number of LEDs. --- keyboards/jisplit89/readme.md | 4 ++-- keyboards/jisplit89/rev1/config.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/jisplit89/readme.md b/keyboards/jisplit89/readme.md index e7472ab96663..d2228745774d 100644 --- a/keyboards/jisplit89/readme.md +++ b/keyboards/jisplit89/readme.md @@ -1,6 +1,6 @@ # JISplit89 -![jisplit89](https://s2.booth.pm/1d33594d-0c5f-4f93-baf5-2e89e0d99afc/i/1916810/82322b65-7867-4779-b7f4-9076530d9e33_base_resized.jpg) +![jisplit89](https://s2.booth.pm/1d33594d-0c5f-4f93-baf5-2e89e0d99afc/i/1916810/ee9743ff-b03d-4ab8-8130-ddaad3c1b30d_base_resized.jpg) This is 89 keys Custom keyboard. @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). -[Build guide](https://salicylic-acid3.hatenablog.com/entry/7skb-mx-build-guide)(See here because it is almost the same as 7sKB) +[Build guide](https://salicylic-acid3.hatenablog.com/entry/jisplit89-build-guide) diff --git a/keyboards/jisplit89/rev1/config.h b/keyboards/jisplit89/rev1/config.h index a745ec834205..a2ba9040f719 100644 --- a/keyboards/jisplit89/rev1/config.h +++ b/keyboards/jisplit89/rev1/config.h @@ -51,9 +51,9 @@ along with this program. If not, see . #define RGB_DI_PIN D3 #ifndef RGBLED_NUM - #define RGBLED_NUM 31 + #define RGBLED_NUM 32 #define RGBLIGHT_SPLIT - #define RGBLED_SPLIT { 11, 20 } + #define RGBLED_SPLIT { 11, 21 } #endif #define RGBLIGHT_ANIMATIONS From 751a1789b59546728c0987d9259b4189cd9f6fe2 Mon Sep 17 00:00:00 2001 From: myoung34 Date: Sat, 27 Jun 2020 14:36:08 -0500 Subject: [PATCH 092/154] Add JD40 keymap for myoung34 (#9545) Co-authored-by: Ryan --- keyboards/jd40/keymaps/myoung34/keymap.c | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 keyboards/jd40/keymaps/myoung34/keymap.c diff --git a/keyboards/jd40/keymaps/myoung34/keymap.c b/keyboards/jd40/keymaps/myoung34/keymap.c new file mode 100644 index 000000000000..eb4146d1587b --- /dev/null +++ b/keyboards/jd40/keymaps/myoung34/keymap.c @@ -0,0 +1,28 @@ +#include QMK_KEYBOARD_H + +#define _BL 0 +#define _AL 1 +#define _UL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = 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_LCTL, 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_UP, KC_DOT, + _______, KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_SPC, MO(_AL), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_AL] = 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_TAB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_ENT, + _______, _______, KC_SCOLON, KC_QUOTE, KC_LBRACKET, KC_RBRACKET, KC_BSLASH, KC_MINUS, KC_EQUAL, KC_PGUP, KC_SLASH, + _______, _______, _______, _______, MO(_UL), TG(_UL), _______, KC_HOME, KC_PGDN, KC_END + ), + + [_UL] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; From 6574ac52ad93bdd010c323c444f26b951c9227c3 Mon Sep 17 00:00:00 2001 From: umi <57262844+umi-umi@users.noreply.github.com> Date: Sun, 28 Jun 2020 12:00:55 +0900 Subject: [PATCH 093/154] [Docs] Japanese translation of docs/documentation_best_practices.md (#9522) * add documentation_best_practices.md translation * update based on comment * update based on comment --- docs/ja/documentation_best_practices.md | 69 +++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs/ja/documentation_best_practices.md diff --git a/docs/ja/documentation_best_practices.md b/docs/ja/documentation_best_practices.md new file mode 100644 index 000000000000..50ec4ea6afe0 --- /dev/null +++ b/docs/ja/documentation_best_practices.md @@ -0,0 +1,69 @@ +# ドキュメントベストプラクティス + + + +このページは QMK のためのドキュメントを作成する時のベストプラクティスを文章化するためのものです。これらのガイドラインに従うことで、一貫したトーンとスタイルを維持することでき、他の人が QMK をより理解しやすくすることができます。 + +# ページの開始 + +ドキュメントページは通常 H1 ヘッダで始まり、最初の段落を使ってこのページの内容を説明します。この見出しと段落は目次の次にあるため、見出しは短くして空白の無い長い文字列を避けるように気を付けてください。 + +例: + +``` +# My Page Title + +This page covers my super cool feature. You can use this feature to make coffee, squeeze fresh oj, and have an egg mcmuffin and hashbrowns delivered from your local macca's by drone. +``` + +# 見出し + +通常、ページには複数の "H1" 見出しが有るべきです。H1 と H2 見出しのみが目次に含まれるので、適切に計画してください。目次が広くなりすぎないように、H1 と H2 の見出しでは幅を広げないようにしてください。 + +# スタイル付きのヒントブロック + +注意を引くためにテキストの周りにスタイル付きのヒントブロックを描くことができます。 + +### 重要なもの + +``` +!> This is important +``` + +以下のように表示されます: + +!> This is important + +### 一般的なヒント + +``` +?> This is a helpful tip. +``` + +以下のように表示されます: + +?> This is a helpful tip. + + +# 機能を文章化する + +QMK のために新しい機能を作成した場合、そのドキュメントページを作成してください。長い必要は無く、機能を説明する幾つかの文と、関連するキーコードを列挙した表で十分です。以下は基本的なテンプレートです: + +```markdown +# My Cool Feature + +This page describes my cool feature. You can use my cool feature to make coffee and order cream and sugar to be delivered via drone. + +## My Cool Feature Keycodes + +|Long Name|Short Name|Description| +|---------|----------|-----------| +|KC_COFFEE||Make Coffee| +|KC_CREAM||Order Cream| +|KC_SUGAR||Order Sugar| +``` + +ドキュメントを `docs/feature_.md` に配置し、そのファイルを `docs/_summary.md` の適切な場所に追加します。キーコードを追加した場合は、機能ページに戻るリンクとともに `docs/keycodes.md` に追加するようにしてください。 From 097df6afdbacf70ee10d84639b3975e6fc0b37ec Mon Sep 17 00:00:00 2001 From: umi <57262844+umi-umi@users.noreply.github.com> Date: Sun, 28 Jun 2020 12:02:43 +0900 Subject: [PATCH 094/154] [Docs] Japanese translation of docs/documentation_templates.md (#9523) * add documentation_templates.md translation * update based on comment * update based on comment --- docs/ja/documentation_templates.md | 45 ++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs/ja/documentation_templates.md diff --git a/docs/ja/documentation_templates.md b/docs/ja/documentation_templates.md new file mode 100644 index 000000000000..a767c671a8bc --- /dev/null +++ b/docs/ja/documentation_templates.md @@ -0,0 +1,45 @@ +# ドキュメントテンプレート + + + +このページでは、新しいキーマップやキーボードを QMK に提出する際に使うべきテンプレートをまとめています。 + +## キーマップ `readme.md` テンプレート :id=keyboard-readmemd-template + +ほとんどのキーマップには、レイアウトを表す画像があります。画像を作成するには、[Keyboard Layout Editor](http://keyboard-layout-editor.com) を使うことができます。画像は [Imgur](http://imgur.com) や別のホスティングサービスにアップロードし、プルリクエストに画像を含めないでください。 + +画像の下には、キーマップを理解してもらうための簡単な説明文を書いてください。 + +``` +![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) + +# Default Clueboard Layout + +This is the default layout that comes flashed on every Clueboard. For the most +part it's a straightforward and easy to follow layout. The only unusual key is +the key in the upper left, which sends Escape normally, but Grave when any of +the Ctrl, Alt, or GUI modifiers are held down. +``` + +## キーボード `readme.md` テンプレート + +``` +# Planck + +![Planck](http://i.imgur.com/q2M3uEU.jpg) + +A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/) + +* Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert) +* Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, Teensy 2.0 +* Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open) + +Make example for this keyboard (after setting up your build environment): + + make planck/rev4: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). +``` From c85e010d45616e119b8a2cfe97760384f661755e Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 28 Jun 2020 20:56:50 +1000 Subject: [PATCH 095/154] Add missing info.jsons for a few boards (#9549) --- keyboards/aeboards/aegis/info.json | 130 +++++++++++++++++ keyboards/aeboards/ext65/info.json | 110 ++++++++++++++ keyboards/cannonkeys/chimera65/info.json | 89 +++++++++++- .../converter/siemens_tastatur/info.json | 94 ++++++++++++ keyboards/kv/revt/info.json | 135 ++++++++++++++++++ keyboards/ogre/ergo_single/info.json | 94 ++++++++++++ keyboards/ogre/ergo_split/info.json | 94 ++++++++++++ keyboards/tr60w/info.json | 79 ++++++++++ keyboards/xelus/snap96/info.json | 124 ++++++++++++++++ keyboards/xiaomi/mk02/info.json | 113 +++++++++++++++ keyboards/zfrontier/big_switch/info.json | 14 ++ 11 files changed, 1074 insertions(+), 2 deletions(-) create mode 100644 keyboards/aeboards/aegis/info.json create mode 100644 keyboards/aeboards/ext65/info.json create mode 100644 keyboards/converter/siemens_tastatur/info.json create mode 100644 keyboards/kv/revt/info.json create mode 100644 keyboards/ogre/ergo_single/info.json create mode 100644 keyboards/ogre/ergo_split/info.json create mode 100644 keyboards/tr60w/info.json create mode 100644 keyboards/xelus/snap96/info.json create mode 100644 keyboards/xiaomi/mk02/info.json create mode 100644 keyboards/zfrontier/big_switch/info.json diff --git a/keyboards/aeboards/aegis/info.json b/keyboards/aeboards/aegis/info.json new file mode 100644 index 000000000000..1e83a7a9c102 --- /dev/null +++ b/keyboards/aeboards/aegis/info.json @@ -0,0 +1,130 @@ +{ + "keyboard_name": "Aegis", + "url": "", + "maintainer": "qmk", + "width": 19.5, + "height": 6.75, + "layouts": { + "LAYOUT_aegis": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + + {"x": 4.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.5, "y": 0}, + {"x": 16.5, "y": 0}, + {"x": 17.5, "y": 0}, + {"x": 18.5, "y": 0}, + + {"x": 0, "y": 1.5}, + {"x": 1, "y": 1.5}, + {"x": 2, "y": 1.5}, + {"x": 3, "y": 1.5}, + + {"x": 4.5, "y": 1.5}, + {"x": 5.5, "y": 1.5}, + {"x": 6.5, "y": 1.5}, + {"x": 7.5, "y": 1.5}, + {"x": 8.5, "y": 1.5}, + {"x": 9.5, "y": 1.5}, + {"x": 10.5, "y": 1.5}, + {"x": 11.5, "y": 1.5}, + {"x": 12.5, "y": 1.5}, + {"x": 13.5, "y": 1.5}, + {"x": 14.5, "y": 1.5}, + {"x": 15.5, "y": 1.5}, + {"x": 16.5, "y": 1.5}, + {"x": 17.5, "y": 1.5}, + {"x": 18.5, "y": 1.5}, + + {"x": 0, "y": 2.5}, + {"x": 1, "y": 2.5}, + {"x": 2, "y": 2.5}, + {"x": 3, "y": 2.5}, + + {"x": 4.5, "y": 2.5, "w": 1.5}, + {"x": 6, "y": 2.5}, + {"x": 7, "y": 2.5}, + {"x": 8, "y": 2.5}, + {"x": 9, "y": 2.5}, + {"x": 10, "y": 2.5}, + {"x": 11, "y": 2.5}, + {"x": 12, "y": 2.5}, + {"x": 13, "y": 2.5}, + {"x": 14, "y": 2.5}, + {"x": 15, "y": 2.5}, + {"x": 16, "y": 2.5}, + {"x": 17, "y": 2.5}, + {"x": 18, "y": 2.5, "w": 1.5}, + + {"x": 0, "y": 3.5}, + {"x": 1, "y": 3.5}, + {"x": 2, "y": 3.5}, + {"x": 3, "y": 3.5}, + + {"x": 4.5, "y": 3.5, "w": 1.75}, + {"x": 6.25, "y": 3.5}, + {"x": 7.25, "y": 3.5}, + {"x": 8.25, "y": 3.5}, + {"x": 9.25, "y": 3.5}, + {"x": 10.25, "y": 3.5}, + {"x": 11.25, "y": 3.5}, + {"x": 12.25, "y": 3.5}, + {"x": 13.25, "y": 3.5}, + {"x": 14.25, "y": 3.5}, + {"x": 15.25, "y": 3.5}, + {"x": 16.25, "y": 3.5}, + {"x": 17.25, "y": 3.5, "w": 2.25}, + + {"x": 0, "y": 4.5}, + {"x": 1, "y": 4.5}, + {"x": 2, "y": 4.5}, + {"x": 3, "y": 4.5}, + + {"x": 5.5, "y": 4.5, "w": 1.25}, + {"x": 6.75, "y": 4.5}, + {"x": 7.75, "y": 4.5}, + {"x": 8.75, "y": 4.5}, + {"x": 9.75, "y": 4.5}, + {"x": 10.75, "y": 4.5}, + {"x": 11.75, "y": 4.5}, + {"x": 12.75, "y": 4.5}, + {"x": 13.75, "y": 4.5}, + {"x": 14.75, "y": 4.5}, + {"x": 15.75, "y": 4.5}, + {"x": 16.75, "y": 4.5, "w": 1.75}, + {"x": 18.5, "y": 4.5}, + + {"x": 4.25, "y": 4.75}, + + {"x": 0, "y": 5.5}, + {"x": 1, "y": 5.5}, + {"x": 2, "y": 5.5}, + + {"x": 6.5, "y": 5.5, "w": 1.25}, + {"x": 7.75, "y": 5.5, "w": 1.25}, + {"x": 9, "y": 5.5, "w": 6.25}, + {"x": 15.25, "y": 5.5, "w": 1.5}, + {"x": 16.75, "y": 5.5, "w": 1.25}, + {"x": 18, "y": 5.5, "w": 1.5}, + + {"x": 3.25, "y": 5.75}, + {"x": 4.25, "y": 5.75}, + {"x": 5.25, "y": 5.75} + ] + } + } +} diff --git a/keyboards/aeboards/ext65/info.json b/keyboards/aeboards/ext65/info.json new file mode 100644 index 000000000000..ff3b6fcc1020 --- /dev/null +++ b/keyboards/aeboards/ext65/info.json @@ -0,0 +1,110 @@ +{ + "keyboard_name": "Ext65", + "url": "", + "maintainer": "qmk", + "width": 20.5, + "height": 5, + "layouts": { + "LAYOUT_ext65": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0}, + {"x": 14.5, "y": 0}, + {"x": 15.5, "y": 0}, + {"x": 16.5, "y": 0}, + {"x": 17.5, "y": 0}, + {"x": 18.5, "y": 0}, + {"x": 19.5, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + + {"x": 4.5, "y": 1, "w": 1.5}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 12, "y": 1}, + {"x": 13, "y": 1}, + {"x": 14, "y": 1}, + {"x": 15, "y": 1}, + {"x": 16, "y": 1}, + {"x": 17, "y": 1}, + {"x": 18, "y": 1, "w": 1.5}, + {"x": 19.5, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + + {"x": 4.5, "y": 2, "w": 1.75}, + {"x": 6.25, "y": 2}, + {"x": 7.25, "y": 2}, + {"x": 8.25, "y": 2}, + {"x": 9.25, "y": 2}, + {"x": 10.25, "y": 2}, + {"x": 11.25, "y": 2}, + {"x": 12.25, "y": 2}, + {"x": 13.25, "y": 2}, + {"x": 14.25, "y": 2}, + {"x": 15.25, "y": 2}, + {"x": 16.25, "y": 2}, + {"x": 17.25, "y": 2, "w": 2.25}, + {"x": 19.5, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + + {"x": 4.5, "y": 3, "w": 2.25}, + {"x": 6.75, "y": 3}, + {"x": 7.75, "y": 3}, + {"x": 8.75, "y": 3}, + {"x": 9.75, "y": 3}, + {"x": 10.75, "y": 3}, + {"x": 11.75, "y": 3}, + {"x": 12.75, "y": 3}, + {"x": 13.75, "y": 3}, + {"x": 14.75, "y": 3}, + {"x": 15.75, "y": 3}, + {"x": 16.75, "y": 3, "w": 1.75}, + {"x": 18.5, "y": 3}, + {"x": 19.5, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4.5, "y": 4, "w": 1.5}, + {"x": 6, "y": 4}, + {"x": 7, "y": 4, "w": 1.5}, + {"x": 8.5, "y": 4, "w": 6.25}, + {"x": 14.75, "y": 4, "w": 1.25}, + {"x": 16, "y": 4}, + + {"x": 17.5, "y": 4}, + {"x": 18.5, "y": 4}, + {"x": 19.5, "y": 4} + ] + } + } +} diff --git a/keyboards/cannonkeys/chimera65/info.json b/keyboards/cannonkeys/chimera65/info.json index 75a5f293d109..4130e7a373d3 100644 --- a/keyboards/cannonkeys/chimera65/info.json +++ b/keyboards/cannonkeys/chimera65/info.json @@ -2,6 +2,91 @@ "keyboard_name": "Chimera65", "url": "https://cannonkeys.com", "maintainer": "awkannan", - "width": 16, - "height": 5 + "width": 16.5, + "height": 5.25, + "layouts": { + "LAYOUT_default": { + "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": 15.5, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 2, "w": 1.25}, + + {"x": 15.5, "y": 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": 15.5, "y": 3}, + + {"x": 14.25, "y": 3.25}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + + {"x": 13.25, "y": 4.25}, + {"x": 14.25, "y": 4.25}, + {"x": 15.25, "y": 4.25} + ] + } + } } diff --git a/keyboards/converter/siemens_tastatur/info.json b/keyboards/converter/siemens_tastatur/info.json new file mode 100644 index 000000000000..81fc47865269 --- /dev/null +++ b/keyboards/converter/siemens_tastatur/info.json @@ -0,0 +1,94 @@ +{ + "keyboard_name": "Siemens Tastatur", + "url": "", + "maintainer": "qmk", + "width": 20, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0, "w": 1.5}, + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0, "h": 2}, + + {"x": 15, "y": 0}, + {"x": 16, "y": 0}, + {"x": 17, "y": 0}, + {"x": 18, "y": 0}, + {"x": 19, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 12, "y": 1, "w": 1.5}, + + {"x": 15, "y": 1}, + {"x": 16, "y": 1}, + {"x": 17, "y": 1}, + {"x": 18, "y": 1}, + {"x": 19, "y": 1}, + + {"x": 0, "y": 2, "w": 1.25}, + {"x": 1.25, "y": 2}, + {"x": 2.25, "y": 2}, + {"x": 3.25, "y": 2}, + {"x": 4.25, "y": 2}, + {"x": 5.25, "y": 2}, + {"x": 6.25, "y": 2}, + {"x": 7.25, "y": 2}, + {"x": 8.25, "y": 2}, + {"x": 9.25, "y": 2}, + {"x": 10.25, "y": 2}, + {"x": 11.25, "y": 2}, + {"x": 12.25, "y": 2, "w": 1.25}, + {"x": 13.5, "y": 2, "h": 2}, + + {"x": 15, "y": 2}, + {"x": 16, "y": 2}, + {"x": 17, "y": 2}, + {"x": 18, "y": 2}, + {"x": 19, "y": 2}, + + {"x": 1.75, "y": 3}, + {"x": 2.75, "y": 3}, + {"x": 3.75, "y": 3}, + {"x": 4.75, "y": 3}, + {"x": 5.75, "y": 3}, + {"x": 6.75, "y": 3}, + {"x": 7.75, "y": 3}, + {"x": 8.75, "y": 3}, + {"x": 9.75, "y": 3}, + {"x": 10.75, "y": 3}, + {"x": 11.75, "y": 3, "w": 1.75}, + + {"x": 15, "y": 3}, + {"x": 16, "y": 3}, + {"x": 17, "y": 3}, + {"x": 18, "y": 3}, + {"x": 19, "y": 3}, + + {"x": 3.5, "y": 4, "w": 6.5} + ] + } + } +} diff --git a/keyboards/kv/revt/info.json b/keyboards/kv/revt/info.json new file mode 100644 index 000000000000..176e4575348e --- /dev/null +++ b/keyboards/kv/revt/info.json @@ -0,0 +1,135 @@ +{ + "keyboard_name": "KVT", + "url": "", + "maintainer": "qmk", + "width": 22.5, + "height": 6, + "layouts": { + "LAYOUT_default": { + "layout": [ + {"x": 4.25, "y": 0}, + + {"x": 6.25, "y": 0}, + {"x": 7.25, "y": 0}, + {"x": 8.25, "y": 0}, + {"x": 9.25, "y": 0}, + + {"x": 10.75, "y": 0}, + {"x": 11.75, "y": 0}, + {"x": 12.75, "y": 0}, + {"x": 13.75, "y": 0}, + + {"x": 15.25, "y": 0}, + {"x": 16.25, "y": 0}, + {"x": 17.25, "y": 0}, + {"x": 18.25, "y": 0}, + + {"x": 19.5, "y": 0}, + {"x": 20.5, "y": 0}, + {"x": 21.5, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + + {"x": 4.25, "y": 1}, + {"x": 5.25, "y": 1}, + {"x": 6.25, "y": 1}, + {"x": 7.25, "y": 1}, + {"x": 8.25, "y": 1}, + {"x": 9.25, "y": 1}, + {"x": 10.25, "y": 1}, + {"x": 11.25, "y": 1}, + {"x": 12.25, "y": 1}, + {"x": 13.25, "y": 1}, + {"x": 14.25, "y": 1}, + {"x": 15.25, "y": 1}, + {"x": 16.25, "y": 1}, + {"x": 17.25, "y": 1, "w": 2}, + + {"x": 19.5, "y": 1}, + {"x": 20.5, "y": 1}, + {"x": 21.5, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2, "h": 2}, + + {"x": 4.25, "y": 2, "w": 1.5}, + {"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": 2}, + {"x": 14.75, "y": 2}, + {"x": 15.75, "y": 2}, + {"x": 16.75, "y": 2}, + {"x": 17.75, "y": 2, "w": 1.5}, + + {"x": 19.5, "y": 2}, + {"x": 20.5, "y": 2}, + {"x": 21.5, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + + {"x": 4.25, "y": 3, "w": 1.75}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 12, "y": 3}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + {"x": 16, "y": 3}, + {"x": 17, "y": 3, "w": 2.25}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4, "h": 2}, + + {"x": 4.25, "y": 4, "w": 2.25}, + {"x": 6.5, "y": 4}, + {"x": 7.5, "y": 4}, + {"x": 8.5, "y": 4}, + {"x": 9.5, "y": 4}, + {"x": 10.5, "y": 4}, + {"x": 11.5, "y": 4}, + {"x": 12.5, "y": 4}, + {"x": 13.5, "y": 4}, + {"x": 14.5, "y": 4}, + {"x": 15.5, "y": 4}, + {"x": 16.5, "y": 4, "w": 2.75}, + + {"x": 20.5, "y": 4}, + + {"x": 0, "y": 5, "w": 2}, + {"x": 2, "y": 5}, + + {"x": 4.25, "y": 5, "w": 1.25}, + {"x": 5.5, "y": 5, "w": 1.25}, + {"x": 6.75, "y": 5, "w": 1.25}, + {"x": 8, "y": 5, "w": 6.25}, + {"x": 14.25, "y": 5, "w": 1.25}, + {"x": 15.5, "y": 5, "w": 1.25}, + {"x": 16.75, "y": 5, "w": 1.25}, + {"x": 18, "y": 5, "w": 1.25}, + + {"x": 19.5, "y": 5}, + {"x": 20.5, "y": 5}, + {"x": 21.5, "y": 5} + ] + } + } +} diff --git a/keyboards/ogre/ergo_single/info.json b/keyboards/ogre/ergo_single/info.json new file mode 100644 index 000000000000..401e3f4889c9 --- /dev/null +++ b/keyboards/ogre/ergo_single/info.json @@ -0,0 +1,94 @@ +{ + "keyboard_name": "Ogre Ergo Single", + "url": "", + "maintainer": "qmk", + "width": 19.5, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0.25, "y": 0.5}, + {"x": 1.25, "y": 0.5}, + {"x": 2.25, "y": 0.5}, + {"x": 3.25, "y": 0.25}, + {"x": 4.25, "y": 0}, + {"x": 5.25, "y": 0.25}, + {"x": 6.25, "y": 0.5}, + {"x": 7.25, "y": 0.5}, + + {"x": 11.25, "y": 0.5}, + {"x": 12.25, "y": 0.5}, + {"x": 13.25, "y": 0.25}, + {"x": 14.25, "y": 0}, + {"x": 15.25, "y": 0.25}, + {"x": 16.25, "y": 0.5}, + {"x": 17.25, "y": 0.5}, + {"x": 18.25, "y": 0.5}, + + {"x": 0.75, "y": 1.5, "w": 1.5}, + {"x": 2.25, "y": 1.5}, + {"x": 3.25, "y": 1.25}, + {"x": 4.25, "y": 1}, + {"x": 5.25, "y": 1.25}, + {"x": 6.25, "y": 1.5}, + {"x": 7.25, "y": 1.5}, + + {"x": 11.25, "y": 1.5}, + {"x": 12.25, "y": 1.5}, + {"x": 13.25, "y": 1.25}, + {"x": 14.25, "y": 1}, + {"x": 15.25, "y": 1.25}, + {"x": 16.25, "y": 1.5}, + {"x": 17.25, "y": 1.5, "w": 1.5}, + + {"x": 0.5, "y": 2.5, "w": 1.75}, + {"x": 2.25, "y": 2.5}, + {"x": 3.25, "y": 2.25}, + {"x": 4.25, "y": 2}, + {"x": 5.25, "y": 2.25}, + {"x": 6.25, "y": 2.5}, + {"x": 7.25, "y": 2.5}, + + {"x": 11.25, "y": 2.5}, + {"x": 12.25, "y": 2.5}, + {"x": 13.25, "y": 2.25}, + {"x": 14.25, "y": 2}, + {"x": 15.25, "y": 2.25}, + {"x": 16.25, "y": 2.5}, + {"x": 17.25, "y": 2.5, "w": 1.75}, + + {"x": 0, "y": 3.5, "w": 2.25}, + {"x": 2.25, "y": 3.5}, + {"x": 3.25, "y": 3.25}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3.25}, + {"x": 6.25, "y": 3.5}, + + {"x": 12.25, "y": 3.5}, + {"x": 13.25, "y": 3.25}, + {"x": 14.25, "y": 3}, + {"x": 15.25, "y": 3.25}, + {"x": 16.25, "y": 3.5}, + {"x": 17.25, "y": 3.5, "w": 2.25}, + + {"x": 1, "y": 4.5, "w": 1.25}, + {"x": 2.25, "y": 4.5}, + {"x": 3.25, "y": 4.25}, + {"x": 4.25, "y": 4}, + + {"x": 6.25, "y": 5.5, "w": 1.25}, + {"x": 7.5, "y": 3.75, "h": 2.75}, + {"x": 8.5, "y": 4.5, "h": 2}, + + {"x": 10, "y": 5, "h": 1.5}, + {"x": 11, "y": 4.5, "h": 2}, + {"x": 12, "y": 5.5, "w": 1.25}, + + {"x": 14.25, "y": 4}, + {"x": 15.25, "y": 4.25}, + {"x": 16.25, "y": 4.5}, + {"x": 17.25, "y": 4.5, "w": 1.25} + ] + } + } +} diff --git a/keyboards/ogre/ergo_split/info.json b/keyboards/ogre/ergo_split/info.json new file mode 100644 index 000000000000..ea2efaa933d5 --- /dev/null +++ b/keyboards/ogre/ergo_split/info.json @@ -0,0 +1,94 @@ +{ + "keyboard_name": "Ogre Ergo Split", + "url": "", + "maintainer": "qmk", + "width": 19.5, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0.25, "y": 0.5}, + {"x": 1.25, "y": 0.5}, + {"x": 2.25, "y": 0.5}, + {"x": 3.25, "y": 0.25}, + {"x": 4.25, "y": 0}, + {"x": 5.25, "y": 0.25}, + {"x": 6.25, "y": 0.5}, + {"x": 7.25, "y": 0.5}, + + {"x": 11.25, "y": 0.5}, + {"x": 12.25, "y": 0.5}, + {"x": 13.25, "y": 0.25}, + {"x": 14.25, "y": 0}, + {"x": 15.25, "y": 0.25}, + {"x": 16.25, "y": 0.5}, + {"x": 17.25, "y": 0.5}, + {"x": 18.25, "y": 0.5}, + + {"x": 0.75, "y": 1.5, "w": 1.5}, + {"x": 2.25, "y": 1.5}, + {"x": 3.25, "y": 1.25}, + {"x": 4.25, "y": 1}, + {"x": 5.25, "y": 1.25}, + {"x": 6.25, "y": 1.5}, + {"x": 7.25, "y": 1.5}, + + {"x": 11.25, "y": 1.5}, + {"x": 12.25, "y": 1.5}, + {"x": 13.25, "y": 1.25}, + {"x": 14.25, "y": 1}, + {"x": 15.25, "y": 1.25}, + {"x": 16.25, "y": 1.5}, + {"x": 17.25, "y": 1.5, "w": 1.5}, + + {"x": 0.5, "y": 2.5, "w": 1.75}, + {"x": 2.25, "y": 2.5}, + {"x": 3.25, "y": 2.25}, + {"x": 4.25, "y": 2}, + {"x": 5.25, "y": 2.25}, + {"x": 6.25, "y": 2.5}, + {"x": 7.25, "y": 2.5}, + + {"x": 11.25, "y": 2.5}, + {"x": 12.25, "y": 2.5}, + {"x": 13.25, "y": 2.25}, + {"x": 14.25, "y": 2}, + {"x": 15.25, "y": 2.25}, + {"x": 16.25, "y": 2.5}, + {"x": 17.25, "y": 2.5, "w": 1.75}, + + {"x": 0, "y": 3.5, "w": 2.25}, + {"x": 2.25, "y": 3.5}, + {"x": 3.25, "y": 3.25}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3.25}, + {"x": 6.25, "y": 3.5}, + + {"x": 12.25, "y": 3.5}, + {"x": 13.25, "y": 3.25}, + {"x": 14.25, "y": 3}, + {"x": 15.25, "y": 3.25}, + {"x": 16.25, "y": 3.5}, + {"x": 17.25, "y": 3.5, "w": 2.25}, + + {"x": 1, "y": 4.5, "w": 1.25}, + {"x": 2.25, "y": 4.5}, + {"x": 3.25, "y": 4.25}, + {"x": 4.25, "y": 4}, + + {"x": 6.25, "y": 5.5, "w": 1.25}, + {"x": 7.5, "y": 3.75, "h": 2.75}, + {"x": 8.5, "y": 4.5, "h": 2}, + + {"x": 10, "y": 5, "h": 1.5}, + {"x": 11, "y": 4.5, "h": 2}, + {"x": 12, "y": 5.5, "w": 1.25}, + + {"x": 14.25, "y": 4}, + {"x": 15.25, "y": 4.25}, + {"x": 16.25, "y": 4.5}, + {"x": 17.25, "y": 4.5, "w": 1.25} + ] + } + } +} diff --git a/keyboards/tr60w/info.json b/keyboards/tr60w/info.json new file mode 100644 index 000000000000..c4dbc9085ae9 --- /dev/null +++ b/keyboards/tr60w/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "TR60W", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60_tsangan_hhkb": { + "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": 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/keyboards/xelus/snap96/info.json b/keyboards/xelus/snap96/info.json new file mode 100644 index 000000000000..69a66a100268 --- /dev/null +++ b/keyboards/xelus/snap96/info.json @@ -0,0 +1,124 @@ +{ + "keyboard_name": "Snap96", + "url": "", + "maintainer": "Xelus22", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + {"x": 15, "y": 0}, + {"x": 16, "y": 0}, + {"x": 17, "y": 0}, + {"x": 18, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 12, "y": 1}, + {"x": 13, "y": 1}, + {"x": 14, "y": 1}, + {"x": 15, "y": 1}, + {"x": 16, "y": 1}, + {"x": 17, "y": 1}, + {"x": 18, "y": 1}, + + {"x": 0, "y": 2, "w": 1.5}, + {"x": 1.5, "y": 2}, + {"x": 2.5, "y": 2}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2}, + {"x": 7.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2}, + {"x": 13.5, "y": 2, "w": 1.5}, + {"x": 15, "y": 2}, + {"x": 16, "y": 2}, + {"x": 17, "y": 2}, + {"x": 18, "y": 2}, + + {"x": 0, "y": 3, "w": 1.75}, + {"x": 1.75, "y": 3}, + {"x": 2.75, "y": 3}, + {"x": 3.75, "y": 3}, + {"x": 4.75, "y": 3}, + {"x": 5.75, "y": 3}, + {"x": 6.75, "y": 3}, + {"x": 7.75, "y": 3}, + {"x": 8.75, "y": 3}, + {"x": 9.75, "y": 3}, + {"x": 10.75, "y": 3}, + {"x": 11.75, "y": 3}, + {"x": 12.75, "y": 3, "w": 2.25}, + {"x": 15, "y": 3}, + {"x": 16, "y": 3}, + {"x": 17, "y": 3}, + {"x": 18, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4}, + {"x": 2.25, "y": 4}, + {"x": 3.25, "y": 4}, + {"x": 4.25, "y": 4}, + {"x": 5.25, "y": 4}, + {"x": 6.25, "y": 4}, + {"x": 7.25, "y": 4}, + {"x": 8.25, "y": 4}, + {"x": 9.25, "y": 4}, + {"x": 10.25, "y": 4}, + {"x": 11.25, "y": 4}, + {"x": 12.25, "y": 4, "w": 1.75}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4}, + {"x": 16, "y": 4}, + {"x": 17, "y": 4}, + {"x": 18, "y": 4}, + + {"x": 0, "y": 5, "w": 1.25}, + {"x": 1.25, "y": 5, "w": 1.25}, + {"x": 2.5, "y": 5, "w": 1.25}, + {"x": 3.75, "y": 5, "w": 2.25}, + {"x": 6, "y": 5}, + {"x": 7, "y": 5, "w": 2.25}, + {"x": 9.25, "y": 5, "w": 1.25}, + {"x": 10.5, "y": 5, "w": 1.25}, + {"x": 11.75, "y": 5, "w": 1.25}, + {"x": 13, "y": 5}, + {"x": 14, "y": 5}, + {"x": 15, "y": 5}, + {"x": 16, "y": 5}, + {"x": 17, "y": 5}, + {"x": 18, "y": 5} + ] + } + } +} diff --git a/keyboards/xiaomi/mk02/info.json b/keyboards/xiaomi/mk02/info.json new file mode 100644 index 000000000000..78a11334ad5f --- /dev/null +++ b/keyboards/xiaomi/mk02/info.json @@ -0,0 +1,113 @@ +{ + "keyboard_name": "Xiaomi MK02", + "url": "", + "maintainer": "qmk", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT_tkl_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": 0, "y": 1.5}, + {"x": 1, "y": 1.5}, + {"x": 2, "y": 1.5}, + {"x": 3, "y": 1.5}, + {"x": 4, "y": 1.5}, + {"x": 5, "y": 1.5}, + {"x": 6, "y": 1.5}, + {"x": 7, "y": 1.5}, + {"x": 8, "y": 1.5}, + {"x": 9, "y": 1.5}, + {"x": 10, "y": 1.5}, + {"x": 11, "y": 1.5}, + {"x": 12, "y": 1.5}, + {"x": 13, "y": 1.5, "w": 2}, + + {"x": 15.25, "y": 1.5}, + {"x": 16.25, "y": 1.5}, + {"x": 17.25, "y": 1.5}, + + {"x": 0, "y": 2.5, "w": 1.5}, + {"x": 1.5, "y": 2.5}, + {"x": 2.5, "y": 2.5}, + {"x": 3.5, "y": 2.5}, + {"x": 4.5, "y": 2.5}, + {"x": 5.5, "y": 2.5}, + {"x": 6.5, "y": 2.5}, + {"x": 7.5, "y": 2.5}, + {"x": 8.5, "y": 2.5}, + {"x": 9.5, "y": 2.5}, + {"x": 10.5, "y": 2.5}, + {"x": 11.5, "y": 2.5}, + {"x": 12.5, "y": 2.5}, + {"x": 13.5, "y": 2.5, "w": 1.5}, + + {"x": 15.25, "y": 2.5}, + {"x": 16.25, "y": 2.5}, + {"x": 17.25, "y": 2.5}, + + {"x": 0, "y": 3.5, "w": 1.75}, + {"x": 1.75, "y": 3.5}, + {"x": 2.75, "y": 3.5}, + {"x": 3.75, "y": 3.5}, + {"x": 4.75, "y": 3.5}, + {"x": 5.75, "y": 3.5}, + {"x": 6.75, "y": 3.5}, + {"x": 7.75, "y": 3.5}, + {"x": 8.75, "y": 3.5}, + {"x": 9.75, "y": 3.5}, + {"x": 10.75, "y": 3.5}, + {"x": 11.75, "y": 3.5}, + {"x": 12.75, "y": 3.5, "w": 2.25}, + + {"x": 0, "y": 4.5, "w": 2.25}, + {"x": 2.25, "y": 4.5}, + {"x": 3.25, "y": 4.5}, + {"x": 4.25, "y": 4.5}, + {"x": 5.25, "y": 4.5}, + {"x": 6.25, "y": 4.5}, + {"x": 7.25, "y": 4.5}, + {"x": 8.25, "y": 4.5}, + {"x": 9.25, "y": 4.5}, + {"x": 10.25, "y": 4.5}, + {"x": 11.25, "y": 4.5}, + {"x": 12.25, "y": 4.5, "w": 2.75}, + + {"x": 16.25, "y": 4.5}, + + {"x": 0, "y": 5.5, "w": 1.25}, + {"x": 1.25, "y": 5.5, "w": 1.25}, + {"x": 2.5, "y": 5.5, "w": 1.25}, + {"x": 3.75, "y": 5.5, "w": 6.25}, + {"x": 10, "y": 5.5, "w": 1.25}, + {"x": 11.25, "y": 5.5, "w": 1.25}, + {"x": 12.5, "y": 5.5, "w": 1.25}, + {"x": 13.75, "y": 5.5, "w": 1.25}, + + {"x": 15.25, "y": 5.5}, + {"x": 16.25, "y": 5.5}, + {"x": 17.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/zfrontier/big_switch/info.json b/keyboards/zfrontier/big_switch/info.json new file mode 100644 index 000000000000..92aedd35797d --- /dev/null +++ b/keyboards/zfrontier/big_switch/info.json @@ -0,0 +1,14 @@ +{ + "keyboard_name": "Red Comet Big Switch", + "url": "https://en.zfrontier.com/products/redcomet-bigswitch-combo", + "maintainer": "carlxia", + "width": 4, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0, "w": 4, "h": 4} + ] + } + } +} From 7baeaae9bb92b9501d4bb73149bbed28ad25446b Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun, 28 Jun 2020 11:04:47 +0000 Subject: [PATCH 096/154] Trinity XT tkl - New Keyboard (#9483) Co-authored-by: Ryan Co-authored-by: Erovia --- .../xelus/trinityxttkl/bootloader_defs.h | 7 + keyboards/xelus/trinityxttkl/chconf.h | 714 ++++++++++++++++++ keyboards/xelus/trinityxttkl/config.h | 45 ++ keyboards/xelus/trinityxttkl/halconf.h | 525 +++++++++++++ .../trinityxttkl/keymaps/default/keymap.c | 19 + .../xelus/trinityxttkl/keymaps/via/config.h | 2 + .../xelus/trinityxttkl/keymaps/via/keymap.c | 28 + .../xelus/trinityxttkl/keymaps/via/rules.mk | 1 + keyboards/xelus/trinityxttkl/mcuconf.h | 176 +++++ keyboards/xelus/trinityxttkl/readme.md | 12 + keyboards/xelus/trinityxttkl/rules.mk | 20 + keyboards/xelus/trinityxttkl/trinityxttkl.c | 1 + keyboards/xelus/trinityxttkl/trinityxttkl.h | 21 + 13 files changed, 1571 insertions(+) create mode 100644 keyboards/xelus/trinityxttkl/bootloader_defs.h create mode 100644 keyboards/xelus/trinityxttkl/chconf.h create mode 100644 keyboards/xelus/trinityxttkl/config.h create mode 100644 keyboards/xelus/trinityxttkl/halconf.h create mode 100644 keyboards/xelus/trinityxttkl/keymaps/default/keymap.c create mode 100644 keyboards/xelus/trinityxttkl/keymaps/via/config.h create mode 100644 keyboards/xelus/trinityxttkl/keymaps/via/keymap.c create mode 100644 keyboards/xelus/trinityxttkl/keymaps/via/rules.mk create mode 100644 keyboards/xelus/trinityxttkl/mcuconf.h create mode 100644 keyboards/xelus/trinityxttkl/readme.md create mode 100644 keyboards/xelus/trinityxttkl/rules.mk create mode 100644 keyboards/xelus/trinityxttkl/trinityxttkl.c create mode 100644 keyboards/xelus/trinityxttkl/trinityxttkl.h diff --git a/keyboards/xelus/trinityxttkl/bootloader_defs.h b/keyboards/xelus/trinityxttkl/bootloader_defs.h new file mode 100644 index 000000000000..02c48c4e6dcb --- /dev/null +++ b/keyboards/xelus/trinityxttkl/bootloader_defs.h @@ -0,0 +1,7 @@ +/* Address for jumping to bootloader on STM32 chips. */ +/* It is chip dependent, the correct number can be looked up here (page 175): + * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf + * This also requires a patch to chibios: + * /tmk_core/tool/chibios/ch-bootloader-jump.patch + */ +#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/xelus/trinityxttkl/chconf.h b/keyboards/xelus/trinityxttkl/chconf.h new file mode 100644 index 000000000000..03f63da36a88 --- /dev/null +++ b/keyboards/xelus/trinityxttkl/chconf.h @@ -0,0 +1,714 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file rt/templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ +#define _CHIBIOS_RT_CONF_VER_6_0_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_ST_RESOLUTION) +#define CH_CFG_ST_RESOLUTION 32 +#endif + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#if !defined(CH_CFG_ST_FREQUENCY) +#define CH_CFG_ST_FREQUENCY 10000 +#endif + +/** + * @brief Time intervals data size. + * @note Allowed values are 16, 32 or 64 bits. + */ +#if !defined(CH_CFG_INTERVALS_SIZE) +#define CH_CFG_INTERVALS_SIZE 32 +#endif + +/** + * @brief Time types data size. + * @note Allowed values are 16 or 32 bits. + */ +#if !defined(CH_CFG_TIME_TYPES_SIZE) +#define CH_CFG_TIME_TYPES_SIZE 32 +#endif + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#if !defined(CH_CFG_ST_TIMEDELTA) +#define CH_CFG_ST_TIMEDELTA 2 +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#if !defined(CH_CFG_TIME_QUANTUM) +#define CH_CFG_TIME_QUANTUM 0 +#endif + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#if !defined(CH_CFG_MEMCORE_SIZE) +#define CH_CFG_MEMCORE_SIZE 0 +#endif + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#if !defined(CH_CFG_NO_IDLE_THREAD) +#define CH_CFG_NO_IDLE_THREAD FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_OPTIMIZE_SPEED) +#define CH_CFG_OPTIMIZE_SPEED FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_TM) +#define CH_CFG_USE_TM FALSE +#endif + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_REGISTRY) +#define CH_CFG_USE_REGISTRY TRUE +#endif + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_WAITEXIT) +#define CH_CFG_USE_WAITEXIT TRUE +#endif + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_SEMAPHORES) +#define CH_CFG_USE_SEMAPHORES TRUE +#endif + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE +#endif + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MUTEXES) +#define CH_CFG_USE_MUTEXES TRUE +#endif + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE +#endif + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#if !defined(CH_CFG_USE_CONDVARS) +#define CH_CFG_USE_CONDVARS TRUE +#endif + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE +#endif + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_EVENTS) +#define CH_CFG_USE_EVENTS TRUE +#endif + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE +#endif + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MESSAGES) +#define CH_CFG_USE_MESSAGES TRUE +#endif + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE +#endif + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#if !defined(CH_CFG_USE_MAILBOXES) +#define CH_CFG_USE_MAILBOXES TRUE +#endif + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCORE) +#define CH_CFG_USE_MEMCORE TRUE +#endif + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#if !defined(CH_CFG_USE_HEAP) +#define CH_CFG_USE_HEAP FALSE +#endif + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMPOOLS) +#define CH_CFG_USE_MEMPOOLS FALSE +#endif + +/** + * @brief Objects FIFOs APIs. + * @details If enabled then the objects FIFOs APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_OBJ_FIFOS) +#define CH_CFG_USE_OBJ_FIFOS FALSE +#endif + +/** + * @brief Pipes APIs. + * @details If enabled then the pipes APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_PIPES) +#define CH_CFG_USE_PIPES FALSE +#endif + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#if !defined(CH_CFG_USE_DYNAMIC) +#define CH_CFG_USE_DYNAMIC FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Objects factory options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Objects Factory APIs. + * @details If enabled then the objects factory APIs are included in the + * kernel. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_CFG_USE_FACTORY) +#define CH_CFG_USE_FACTORY FALSE +#endif + +/** + * @brief Maximum length for object names. + * @details If the specified length is zero then the name is stored by + * pointer but this could have unintended side effects. + */ +#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) +#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 +#endif + +/** + * @brief Enables the registry of generic objects. + */ +#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) +#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE +#endif + +/** + * @brief Enables factory for generic buffers. + */ +#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE +#endif + +/** + * @brief Enables factory for semaphores. + */ +#if !defined(CH_CFG_FACTORY_SEMAPHORES) +#define CH_CFG_FACTORY_SEMAPHORES FALSE +#endif + +/** + * @brief Enables factory for mailboxes. + */ +#if !defined(CH_CFG_FACTORY_MAILBOXES) +#define CH_CFG_FACTORY_MAILBOXES FALSE +#endif + +/** + * @brief Enables factory for objects FIFOs. + */ +#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +#define CH_CFG_FACTORY_OBJ_FIFOS FALSE +#endif + +/** + * @brief Enables factory for Pipes. + */ +#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) +#define CH_CFG_FACTORY_PIPES FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_STATISTICS) +#define CH_DBG_STATISTICS FALSE +#endif + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_SYSTEM_STATE_CHECK) +#define CH_DBG_SYSTEM_STATE_CHECK FALSE +#endif + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_CHECKS) +#define CH_DBG_ENABLE_CHECKS FALSE +#endif + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_ENABLE_ASSERTS) +#define CH_DBG_ENABLE_ASSERTS FALSE +#endif + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_MASK) +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED +#endif + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#if !defined(CH_DBG_TRACE_BUFFER_SIZE) +#define CH_DBG_TRACE_BUFFER_SIZE 128 +#endif + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#if !defined(CH_DBG_ENABLE_STACK_CHECK) +#define CH_DBG_ENABLE_STACK_CHECK FALSE +#endif + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#if !defined(CH_DBG_FILL_THREADS) +#define CH_DBG_FILL_THREADS FALSE +#endif + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#if !defined(CH_DBG_THREADS_PROFILING) +#define CH_DBG_THREADS_PROFILING FALSE +#endif + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System structure extension. + * @details User fields added to the end of the @p ch_system_t structure. + */ +#define CH_CFG_SYSTEM_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief System initialization hook. + * @details User initialization code added to the @p chSysInit() function + * just before interrupts are enabled globally. + */ +#define CH_CFG_SYSTEM_INIT_HOOK() { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p _thread_init() function. + * + * @note It is invoked from within @p _thread_init() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/xelus/trinityxttkl/config.h b/keyboards/xelus/trinityxttkl/config.h new file mode 100644 index 000000000000..2bd64929a1d0 --- /dev/null +++ b/keyboards/xelus/trinityxttkl/config.h @@ -0,0 +1,45 @@ +/* +Copyright 2015 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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5845 // XE +#define PRODUCT_ID 0x5854 // XT +#define DEVICE_VER 0x0001 +#define MANUFACTURER Xelus +#define PRODUCT TrinityXTtkl +#define DESCRIPTION TrinityXTtkl + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 19 + +#define MATRIX_COL_PINS { A9, A8, B15, B14, B13, B12, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3, A10, B9, B4 } +#define MATRIX_ROW_PINS { A14, A15, B3, A2, B6, B5 } +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* 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/xelus/trinityxttkl/halconf.h b/keyboards/xelus/trinityxttkl/halconf.h new file mode 100644 index 000000000000..16f32117d51b --- /dev/null +++ b/keyboards/xelus/trinityxttkl/halconf.h @@ -0,0 +1,525 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef HALCONF_H +#define HALCONF_H + +#define _CHIBIOS_HAL_CONF_ +#define _CHIBIOS_HAL_CONF_VER_7_0_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the cryptographic subsystem. + */ +#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) +#define HAL_USE_CRY FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SIO subsystem. + */ +#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) +#define HAL_USE_SIO FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the TRNG subsystem. + */ +#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) +#define HAL_USE_TRNG FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/** + * @brief Enables the WSPI subsystem. + */ +#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) +#define HAL_USE_WSPI FALSE +#endif + +/*===========================================================================*/ +/* PAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) +#define PAL_USE_CALLBACKS FALSE +#endif + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) +#define PAL_USE_WAIT FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/** + * @brief Enforces the driver to use direct callbacks rather than OSAL events. + */ +#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) +#define CAN_ENFORCE_USE_CALLBACKS FALSE +#endif + +/*===========================================================================*/ +/* CRY driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the SW fall-back of the cryptographic driver. + * @details When enabled, this option, activates a fall-back software + * implementation for algorithms not supported by the underlying + * hardware. + * @note Fall-back implementations may not be present for all algorithms. + */ +#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_USE_FALLBACK FALSE +#endif + +/** + * @brief Makes the driver forcibly use the fall-back implementations. + */ +#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) +#define HAL_CRY_ENFORCE_FALLBACK FALSE +#endif + +/*===========================================================================*/ +/* DAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) +#define DAC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define DAC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the zero-copy API. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/** + * @brief OCR initialization constant for V20 cards. + */ +#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) +#define SDC_INIT_OCR_V20 0x50FF8000U +#endif + +/** + * @brief OCR initialization constant for non-V20 cards. + */ +#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) +#define SDC_INIT_OCR 0x80100000U +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 16 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 256 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 1 +#endif + +/** + * @brief Serial over USB number of buffers. + * @note The default is 2 buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_NUMBER 2 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables circular transfers APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) +#define SPI_USE_CIRCULAR FALSE +#endif + + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/** + * @brief Handling method for SPI CS line. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + +/*===========================================================================*/ +/* UART driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) +#define UART_USE_WAIT FALSE +#endif + +/** + * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define UART_USE_MUTUAL_EXCLUSION FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +/*===========================================================================*/ +/* WSPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) +#define WSPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define WSPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +#endif /* HALCONF_H */ + +/** @} */ diff --git a/keyboards/xelus/trinityxttkl/keymaps/default/keymap.c b/keyboards/xelus/trinityxttkl/keymaps/default/keymap.c new file mode 100644 index 000000000000..5336e3a47358 --- /dev/null +++ b/keyboards/xelus/trinityxttkl/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_F13, KC_F14, 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_SLCK, KC_PAUS, + KC_F15, KC_F16, 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_F17, KC_F18, KC_TAB, KC_Q, KC_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_F19, KC_F20, KC_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_F21, KC_F22, 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_F23, KC_F24, KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_all( + RESET , EEP_RST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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/xelus/trinityxttkl/keymaps/via/config.h b/keyboards/xelus/trinityxttkl/keymaps/via/config.h new file mode 100644 index 000000000000..96c85573df1e --- /dev/null +++ b/keyboards/xelus/trinityxttkl/keymaps/via/config.h @@ -0,0 +1,2 @@ +// 3 layers or else it will not fit in EEPROM +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/xelus/trinityxttkl/keymaps/via/keymap.c b/keyboards/xelus/trinityxttkl/keymaps/via/keymap.c new file mode 100644 index 000000000000..e1c3d660b0ad --- /dev/null +++ b/keyboards/xelus/trinityxttkl/keymaps/via/keymap.c @@ -0,0 +1,28 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_F13, KC_F14, 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_SLCK, KC_PAUS, + KC_F15, KC_F16, 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_F17, KC_F18, KC_TAB, KC_Q, KC_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_F19, KC_F20, KC_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_F21, KC_F22, 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_F23, KC_F24, KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/xelus/trinityxttkl/keymaps/via/rules.mk b/keyboards/xelus/trinityxttkl/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/xelus/trinityxttkl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/xelus/trinityxttkl/mcuconf.h b/keyboards/xelus/trinityxttkl/mcuconf.h new file mode 100644 index 000000000000..0e49478c8b05 --- /dev/null +++ b/keyboards/xelus/trinityxttkl/mcuconf.h @@ -0,0 +1,176 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +/* + * STM32F0xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 3...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32F0xx_MCUCONF +// #define STM32F070xB + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_HSI_ENABLED TRUE +#define STM32_HSI14_ENABLED TRUE +#define STM32_HSI48_ENABLED FALSE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED FALSE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 +#define STM32_PREDIV_VALUE 1 +#define STM32_PLLMUL_VALUE 12 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE STM32_PPRE_DIV1 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_ADCSW STM32_ADCSW_HSI14 +#define STM32_USBSW STM32_USBSW_HSI48 +#define STM32_CECSW STM32_CECSW_HSI +#define STM32_I2C1SW STM32_I2C1SW_HSI +#define STM32_USART1SW STM32_USART1SW_PCLK +#define STM32_RTCSEL STM32_RTCSEL_LSI + +/* + * ADC driver system settings. + */ +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 2 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM14 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 2 +#define STM32_GPT_TIM2_IRQ_PRIORITY 2 +#define STM32_GPT_TIM3_IRQ_PRIORITY 2 +#define STM32_GPT_TIM14_IRQ_PRIORITY 2 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_IRQ_PRIORITY 3 +#define STM32_I2C_I2C2_IRQ_PRIORITY 3 +#define STM32_I2C_USE_DMA TRUE +#define STM32_I2C_I2C1_DMA_PRIORITY 1 +#define STM32_I2C_I2C2_DMA_PRIORITY 1 +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 3 +#define STM32_ICU_TIM2_IRQ_PRIORITY 3 +#define STM32_ICU_TIM3_IRQ_PRIORITY 3 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 TRUE +#define STM32_PWM_TIM1_IRQ_PRIORITY 3 +#define STM32_PWM_TIM2_IRQ_PRIORITY 3 +#define STM32_PWM_TIM3_IRQ_PRIORITY 3 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USART1_PRIORITY 3 +#define STM32_SERIAL_USART2_PRIORITY 3 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_IRQ_PRIORITY 2 +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 2 +#define STM32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USART1_IRQ_PRIORITY 3 +#define STM32_UART_USART2_IRQ_PRIORITY 3 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_USB1 TRUE +#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE +#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/xelus/trinityxttkl/readme.md b/keyboards/xelus/trinityxttkl/readme.md new file mode 100644 index 000000000000..a6e80b0cc1f6 --- /dev/null +++ b/keyboards/xelus/trinityxttkl/readme.md @@ -0,0 +1,12 @@ +# Trinity XT TKL + +Trinity XT TKL Keyboard designed by [Reconsiderit](https://switchplate.co/). + +* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make xelus/trinityxttkl: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/xelus/trinityxttkl/rules.mk b/keyboards/xelus/trinityxttkl/rules.mk new file mode 100644 index 000000000000..f3d0426d0083 --- /dev/null +++ b/keyboards/xelus/trinityxttkl/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = STM32F072 + +# Build Options +# comment out to disable the options. +# + +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no +RGBLIGHT_ENABLE = no + + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/xelus/trinityxttkl/trinityxttkl.c b/keyboards/xelus/trinityxttkl/trinityxttkl.c new file mode 100644 index 000000000000..fbf38010a2cb --- /dev/null +++ b/keyboards/xelus/trinityxttkl/trinityxttkl.c @@ -0,0 +1 @@ +#include "trinityxttkl.h" diff --git a/keyboards/xelus/trinityxttkl/trinityxttkl.h b/keyboards/xelus/trinityxttkl/trinityxttkl.h new file mode 100644 index 000000000000..7cb7d590fd71 --- /dev/null +++ b/keyboards/xelus/trinityxttkl/trinityxttkl.h @@ -0,0 +1,21 @@ +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + K000, K001, K002, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K315, K116, K117, K118, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K414, K415, K417, \ + K500, K501, K502, K503, K504, K505, K511, K512, K515, K516, K517, K518 \ +) { \ + { K000, K001, K002, ____, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, ____, ____, ____ }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, ____, K414, K415, ____, K417, ____ }, \ + { K500, K501, K502, K503, K504, K505, ____, ____, ____, ____, ____, K511, K512, ____, ____, K515, K516, K517, K518 } \ +} From d36d5ecfad3ea32c11fbf4a251cea7e25caafc28 Mon Sep 17 00:00:00 2001 From: James Smith <37446827+Klackygears@users.noreply.github.com> Date: Sun, 28 Jun 2020 07:07:57 -0400 Subject: [PATCH 097/154] Klackygears add user and handwired brain (#9154) Co-authored-by: Ryan Co-authored-by: Erovia --- keyboards/handwired/brain/brain.c | 1 + keyboards/handwired/brain/brain.h | 28 +++ keyboards/handwired/brain/config.h | 111 +++++++++ .../handwired/brain/keymaps/default/keymap.c | 119 ++++++++++ .../brain/keymaps/klackygears/config.h | 43 ++++ .../brain/keymaps/klackygears/keymap.c | 99 ++++++++ .../brain/keymaps/klackygears/rules.mk | 3 + keyboards/handwired/brain/readme.md | 1 + keyboards/handwired/brain/rules.mk | 24 ++ 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 ++++++++++++++++++ 16 files changed, 1038 insertions(+) create mode 100644 keyboards/handwired/brain/brain.c create mode 100644 keyboards/handwired/brain/brain.h create mode 100644 keyboards/handwired/brain/config.h create mode 100644 keyboards/handwired/brain/keymaps/default/keymap.c create mode 100644 keyboards/handwired/brain/keymaps/klackygears/config.h create mode 100644 keyboards/handwired/brain/keymaps/klackygears/keymap.c create mode 100644 keyboards/handwired/brain/keymaps/klackygears/rules.mk create mode 100644 keyboards/handwired/brain/readme.md create mode 100644 keyboards/handwired/brain/rules.mk create mode 100644 users/klackygears/klackygears.c create mode 100644 users/klackygears/klackygears.h create mode 100644 users/klackygears/readme.md create mode 100644 users/klackygears/rules.mk create mode 100644 users/klackygears/tap_dances.c create mode 100644 users/klackygears/tap_dances.h create mode 100644 users/klackygears/wrappers.h diff --git a/keyboards/handwired/brain/brain.c b/keyboards/handwired/brain/brain.c new file mode 100644 index 000000000000..2f792f04cfd9 --- /dev/null +++ b/keyboards/handwired/brain/brain.c @@ -0,0 +1 @@ +#include "brain.h" diff --git a/keyboards/handwired/brain/brain.h b/keyboards/handwired/brain/brain.h new file mode 100644 index 000000000000..a0f2ad6848d7 --- /dev/null +++ b/keyboards/handwired/brain/brain.h @@ -0,0 +1,28 @@ +#pragma once + +#include "quantum.h" + + + + + +#define LAYOUT( \ + L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ + L31, L32, L33, L34, L35, R31, R32, R33, R34, R35, \ + L43, L44, L45, R41, R42, R43 \ + ) \ + { \ + { KC_NO, L01, L02, L03, L04, L05, L06}, \ + { L10, L11, L12, L13, L14, L15, L16}, \ + { L20, L21, L22, L23, L24, L25, L26}, \ + { KC_NO, L31, L32, L33, L34, L35, KC_NO}, \ + { KC_NO, KC_NO, KC_NO, L43, L44, L45, KC_NO}, \ +\ + { R00, R01, R02, R03, R04, R05, KC_NO }, \ + { R10, R11, R12, R13, R14, R15, R16 }, \ + { R20, R21, R22, R23, R24, R25, R26 }, \ + { KC_NO, R31, R32, R33, R34, R35, KC_NO }, \ + { KC_NO, R41, R42, R43, KC_NO, KC_NO, KC_NO }, \ +} diff --git a/keyboards/handwired/brain/config.h b/keyboards/handwired/brain/config.h new file mode 100644 index 000000000000..3779cfb9c179 --- /dev/null +++ b/keyboards/handwired/brain/config.h @@ -0,0 +1,111 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2020 James Smith @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 + +#include "config_common.h" +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4A53 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER klackygears +#define PRODUCT Brain +#define DESCRIPTION A split ergonomic keyboard with sculpted shell + +#define SPLIT_USB_DETECT + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +// wiring of each half + +#define MATRIX_COL_PINS \ + { D1, D4, C6, D7, E6, B4, B5 } +#define MATRIX_ROW_PINS \ + { F4, F5, F6, F7, B1 } + +#define MATRIX_COL_PINS_RIGHT \ + { B5, B4, E6, D7, C6, D4, D1 } + +#define DIODE_DIRECTION COL2ROW + +/* 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 + +/* Set 0 if debouncing isn't needed */ + + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 +#define EE_HANDS + +//#define SPLIT_HAND_PIN B7 + +/* 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 + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 + +#define RGBLED_NUM 28 // Number of LEDs + + +#define RGBLIGHT_LIMIT_VAL 120 + +#define RGBLIGHT_SPLIT + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +//#define PREVENT_STUCK_MODIFIERS +//#define TAPPING_TERM 150 +//#define IGNORE_MOD_TAP_INTERRUPT +//#define TAPPING_FORCE_HOLD + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 6 +#define BOOTMAGIC_LITE_ROW_RIGHT 5 +#define BOOTMAGIC_LITE_COLUMN_RIGHT 0 diff --git a/keyboards/handwired/brain/keymaps/default/keymap.c b/keyboards/handwired/brain/keymaps/default/keymap.c new file mode 100644 index 000000000000..a3f750542b87 --- /dev/null +++ b/keyboards/handwired/brain/keymaps/default/keymap.c @@ -0,0 +1,119 @@ +#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 layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST +}; + +enum custom_keycodes { + LOWER = SAFE_RANGE, + RAISE, + ADJUST, +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + +[_QWERTY] = LAYOUT( + // |------------------------------------------. ,---------------------------------------------, + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, + //|------+------+------+------+------+------+-------| |------+------+------+-------+--------+-------+--------, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_NO, 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_ESC, + //|------+------+------+------+------+------+-------| |------+------+------+-------+-------+--------+--------| + KC_NO, KC_NO, KC_NO, LOWER, KC_SPC, KC_ENT, RAISE, KC_NO, KC_NO, KC_NO, + //|------+------| //|-------+------+-------| |------+------+------| |-------+--------| + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + //`----------------------' `--------------------' + + ), + +[_LOWER] = LAYOUT( + // |-----------------------------------------------. ,--------------------------------------------------------, + KC_1, KC_2, KC_3, KC_3, KC_4, KC_ESC, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + //|------+------+------+--------+-------+------+---------| |--------+--------+--------+---------+---------+---------+--------, + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_BSPC, + //|------+------+------+--------+-------+------+---------| |--------+--------+--------+---------+---------+---------+--------, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + //|------+------+------+---+----+-------+------+---------| |--------+--------+--------+---------+---------+---------+--------| + KC_NO, KC_NO, KC_LGUI, LOWER, KC_SPC, KC_ENT, RAISE, KC_RALT, KC_NO, KC_NO, + //|------+------| //|------+------+----------| |--------+------+----------| |---------+---------| + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + //`------------------------' `--------------------------' + ), + +[_RAISE] = LAYOUT( + // |------------------------------------------------. ,-----------------------------------------------------, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_ESC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|------+------+------+--------+-------+------+---------| |--------+--------+--------+--------+--------+--------+--------, + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, + //|------+------+------+--------+-------+------+---------| |--------+--------+--------+--------+--------+--------+--------, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, + //|------+------+------+---+----+-------+------+---------| |--------+--------+--------+--------+--------+--------+--------| + KC_NO, KC_NO, KC_LGUI, LOWER, KC_SPC, KC_ENT, RAISE, KC_RALT, KC_NO, KC_NO, + //|------+------| //|------+------+----------| |--------+------+----------| |--------+--------| + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + //`------------------------' `--------------------------' + ), + + +[_ADJUST] = 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_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + //|------+------+------+--------+-------+------+---------| |--------+--------+--------+--------+--------+--------+--------, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + //|------+------+------+---+----+-------+------+---------| |--------+--------+--------+--------+--------+--------+--------| + KC_NO, KC_NO, KC_LGUI, LOWER, KC_SPC, KC_ENT, RAISE, KC_RALT, KC_NO, KC_NO, + //|------+------| //|------+------+----------| |--------+------+----------| |--------+--------| + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + //`------------------------' `--------------------------' + ) + + +}; + + + +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; + 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; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + } + return true; +} diff --git a/keyboards/handwired/brain/keymaps/klackygears/config.h b/keyboards/handwired/brain/keymaps/klackygears/config.h new file mode 100644 index 000000000000..4dd99c8b3a23 --- /dev/null +++ b/keyboards/handwired/brain/keymaps/klackygears/config.h @@ -0,0 +1,43 @@ +/* +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 USE_SERIAL + +#define PERMISSIVE_HOLD +#define TAPPING_TERM 150 +#define IGNORE_MOD_TAP_INTERRUPT + +#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 new file mode 100644 index 000000000000..07185446db69 --- /dev/null +++ b/keyboards/handwired/brain/keymaps/klackygears/keymap.c @@ -0,0 +1,99 @@ +#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 new file mode 100644 index 000000000000..26c9daf6ad33 --- /dev/null +++ b/keyboards/handwired/brain/keymaps/klackygears/rules.mk @@ -0,0 +1,3 @@ + +RGBLIGHT_ENABLE = yes #Enable WS2812 RGB underlight. +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/brain/readme.md b/keyboards/handwired/brain/readme.md new file mode 100644 index 000000000000..4a5ad4b94d1c --- /dev/null +++ b/keyboards/handwired/brain/readme.md @@ -0,0 +1 @@ +#The Brain is a tented ergo split handwired keyboard with a sculped shell that can be changed out for other options. diff --git a/keyboards/handwired/brain/rules.mk b/keyboards/handwired/brain/rules.mk new file mode 100644 index 000000000000..2c24d019b447 --- /dev/null +++ b/keyboards/handwired/brain/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# Do not enable SLEEP_LED_ENABLE.it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +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 +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI controls +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 + +SPLIT_KEYBOARD = yes diff --git a/users/klackygears/klackygears.c b/users/klackygears/klackygears.c new file mode 100644 index 000000000000..2e7533eb160c --- /dev/null +++ b/users/klackygears/klackygears.c @@ -0,0 +1,75 @@ +#include "klackygears.h" + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + /* + if (!process_record_dynamic_macro(keycode, record)) { + return false; + } + */ + switch (keycode) { + case KC_MACBASE: + if (record->event.pressed) { + set_single_persistent_default_layer(_MACBASE); + } + break; + + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + + case KC_WINBASE: + if (record->event.pressed) { + set_single_persistent_default_layer(_WINBASE); + } + break; + + case KC_GAMER: + if (record->event.pressed) { + set_single_persistent_default_layer(_GAMER); + } + break; + + case KC_GAMR1: + if (record->event.pressed) { + set_single_persistent_default_layer(_GAMR1); + } + break; + + case KC_GAMR2: + if (record->event.pressed) { + set_single_persistent_default_layer(_GAMR2); + } + break; + case RGBRST: +#ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + } +#endif + break; + + case MAKEK: + if (record->event.pressed) { + SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP); + } + break; + + case MAKEKF: + if (!record->event.pressed) { + SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":flash"); + } + + break; + + case SHRUG: + if (record->event.pressed) { + SEND_STRING(":Shrug:"); + } + break; + } + + return true; +} diff --git a/users/klackygears/klackygears.h b/users/klackygears/klackygears.h new file mode 100644 index 000000000000..69f3279e2f16 --- /dev/null +++ b/users/klackygears/klackygears.h @@ -0,0 +1,72 @@ +#pragma once + +#include QMK_KEYBOARD_H + +#include "wrappers.h" +#include "eeprom.h" +#ifdef TAP_DANCE_ENABLE + #include "tap_dances.h" +#endif // TAP_DANCE_ENABLE + +enum layer_number { + _WINBASE = 0, + _MACBASE, + _QWERTY, + _GAMER, + _GAMR1, + _GAMR2, + _NGMR, + _NUMB, + _MNMB, + _SYMB, + _FUNC, + _MDIA, + _MEME +}; + +enum userspace_custom_keycodes { + KC_MACBASE = SAFE_RANGE, + KC_QWERTY, + KC_WINBASE, + KC_GAMER, + KC_GAMR1, + KC_GAMR2, + NUMB, + MNMB, + SYMB, + FUNC, + MDIA, + RGBRST, + MAKEK, + MAKEKF, + SHRUG, + //DYNAMIC_MACRO_RANGE, + SAFE_RANGE_KEYMAP +}; + + +/* +#ifdef UNICODEMAP_ENABLE +enum unicode_names { + BANG, + IRONY, + SNEK, +}; + +const uint32_t PROGMEM unicode_map[] = { + [BANG] = 0x203D, // ‽ + [IRONY] = 0x2E2E, // ⸮ + [SNEK] = 0x1F40D, // 🐍 +}; +#endif // UNICODEMAP_ENABLE +*/ + + +//#include "dynamic_macro.h" + + + +#if RGBLIGHT_ENABLE +uint8_t RGB_current_mode; + +#endif diff --git a/users/klackygears/readme.md b/users/klackygears/readme.md new file mode 100644 index 000000000000..d00d9a17c096 --- /dev/null +++ b/users/klackygears/readme.md @@ -0,0 +1,15 @@ +Copyright<2019> @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 . + + +Most of what I have here was copied and modified from drashna. If it looks a bit messy it's because I'm a total noob and trying to push myself to learn new things. diff --git a/users/klackygears/rules.mk b/users/klackygears/rules.mk new file mode 100644 index 000000000000..82b2233f1212 --- /dev/null +++ b/users/klackygears/rules.mk @@ -0,0 +1,6 @@ +SRC += klackygears.c + + +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) + SRC += tap_dances.c +endif \ No newline at end of file diff --git a/users/klackygears/tap_dances.c b/users/klackygears/tap_dances.c new file mode 100644 index 000000000000..af4f187fccdc --- /dev/null +++ b/users/klackygears/tap_dances.c @@ -0,0 +1,184 @@ +#include "tap_dances.h" + +/* +void macroTogKey(qk_tap_dance_state_t *state, void *user_data) { + keyrecord_t kr; + + if (state->count == 1) + { + kr.event.pressed = false; + process_record_dynamic_macro( DYN_MACRO_PLAY1, &kr ); + } + else if (state->count == 2) + { + kr.event.pressed = true; + process_record_dynamic_macro( DYN_REC_STOP, &kr ); + } + else if (state->count == 3) + { + kr.event.pressed = false; + process_record_dynamic_macro( DYN_REC_START1, &kr ); + } +} + +void macroTogKey2(qk_tap_dance_state_t *state, void *user_data) { + keyrecord_t kr; + + if (state->count == 1) + { + kr.event.pressed = false; + process_record_dynamic_macro( DYN_MACRO_PLAY2, &kr ); + } + else if (state->count == 2) + { + kr.event.pressed = true; + process_record_dynamic_macro( DYN_REC_STOP, &kr ); + } + else if (state->count == 3) + { + kr.event.pressed = false; + process_record_dynamic_macro( DYN_REC_START2, &kr ); + } +} +*/ + +void pstinsrt(qk_tap_dance_state_t *state, void *user_data) { + if (state->count > 1) { + register_code(KC_LALT); + tap_code(KC_I); + tap_code(KC_E); + unregister_code(KC_LALT); + } else { + tap_code16(C(KC_V)); + } + reset_tap_dance(state); +} + +void ccopy(qk_tap_dance_state_t *state, void *user_data) { + if (state->count > 1) { + tap_code16(C(KC_X)); + + // SEND_STRING( SS_DOWN(KC_LCTL) SS_TAP(KC_X) SS_UP(KC_LCTL)); + } else { + tap_code16(C(KC_C)); + } + reset_tap_dance(state); +} + +void pstspecial(qk_tap_dance_state_t *state, void *user_data) { + if (state->count > 1) { + register_code(KC_LALT); + tap_code(KC_E); + tap_code(KC_S); + unregister_code(KC_LALT); + tap_code(KC_V); + } else { + register_code(KC_LALT); + tap_code(KC_E); + tap_code(KC_S); + unregister_code(KC_LALT); + tap_code(KC_T); + } + reset_tap_dance(state); +} + +void deldel(qk_tap_dance_state_t *state, void *user_data) { + if (state->count > 1) { + register_code(KC_LALT); + tap_code(KC_E); + tap_code(KC_D); + unregister_code(KC_LALT); + } else { + tap_code(KC_DEL); + } + reset_tap_dance(state); +} + +void findreplace(qk_tap_dance_state_t *state, void *user_data) { + if (state->count > 1) { + tap_code16(C(KC_H)); + } else { + tap_code16(C(KC_F)); + } + reset_tap_dance(state); +} + +void cyclawin(qk_tap_dance_state_t *state, void *user_data) { + if (state->count > 1) { + tap_code16(C(S(KC_F6))); + } else { + tap_code16(C(KC_F6)); + } + reset_tap_dance(state); +} + +void SCRNSNP(qk_tap_dance_state_t *state, void *user_data) { + if (state->count > 1) { + tap_code16(A(KC_PSCR)); + } else { + tap_code(KC_LGUI); + tap_code(KC_S); + tap_code(KC_N); + tap_code16(C(KC_N)); + } + reset_tap_dance(state); +} + +void mcccpy(qk_tap_dance_state_t *state, void *user_data) { + if (state->count > 1) { + tap_code16(G(KC_X)); + } else { + tap_code16(G(KC_C)); + } + reset_tap_dance(state); +} + +void mcpstin(qk_tap_dance_state_t *state, void *user_data) { + if (state->count > 1) { + tap_code16(G(KC_I)); + } else { + tap_code16(G(KC_V)); + } + reset_tap_dance(state); +} + +void enttab(qk_tap_dance_state_t *state, void *user_data) { + if (state->count > 1) { + tap_code(KC_ENT); + } else { + tap_code(KC_TAB); + } + reset_tap_dance(state); +} + +void rgb_toggle(qk_tap_dance_state_t *state, void *user_data) { +#ifdef RGBLIGHT_ENABLE + if (state->count == 1) { + rgblight_step(); + } else { + rgblight_increase_hue(); + } +#endif +} + +// Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_PSTI] = ACTION_TAP_DANCE_FN(pstinsrt), + [TD_PTSP] = ACTION_TAP_DANCE_FN(pstspecial), + [TD_FNDR] = ACTION_TAP_DANCE_FN(findreplace), + [TD_CCPY] = ACTION_TAP_DANCE_FN(ccopy), + [TD_DDEL] = ACTION_TAP_DANCE_FN(deldel), + [TD_ACCW] = ACTION_TAP_DANCE_FN(cyclawin), + [TD_CAPESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), + [TD_DTEX] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_EXLM), + [TD_COMQUES] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_QUES), + [TD_MINPLS] = ACTION_TAP_DANCE_DOUBLE(KC_PMNS, KC_PPLS), + [TD_DIVMLT] = ACTION_TAP_DANCE_DOUBLE(KC_PSLS, KC_PAST), + [TD_DOTEQL] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_EQL), + [TD_SCNSP] = ACTION_TAP_DANCE_FN(SCRNSNP), + [TD_MCCCPY] = ACTION_TAP_DANCE_FN(mcccpy), + [TD_MCPSTIN] = ACTION_TAP_DANCE_FN(mcpstin), + [TD_ENTAB] = ACTION_TAP_DANCE_FN(enttab), + [TD_XSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPACE, KC_X), + [TD_RGB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rgb_toggle, NULL) +}; diff --git a/users/klackygears/tap_dances.h b/users/klackygears/tap_dances.h new file mode 100644 index 000000000000..66c2c48c9140 --- /dev/null +++ b/users/klackygears/tap_dances.h @@ -0,0 +1,37 @@ +#pragma once +#include "klackygears.h" + +#ifdef TAP_DANCE_ENABLE +enum { + // TD_MCROTOG, + // TD_MCROTG2, + TD_BTK, + TD_TDE, + TD_LPRN, + TD_RPRN, + TD_MIN, + TD_USC, + TD_CMWN, + TD_ATSH, + TD_PSTI, + TD_PTSP, + TD_FNDR, + TD_CCPY, + TD_DDEL, + TD_ACCW, + TD_CAPESC, + TD_DTEX, + TD_COMQUES, + TD_MINPLS, + TD_DIVMLT, + TD_DOTEQL, + TD_LSHSYM, + TD_RSHSYM, + TD_SCNSP, + TD_MCCCPY, + TD_MCPSTIN, + TD_ENTAB, + TD_XSPC, + TD_RGB, +}; +#endif diff --git a/users/klackygears/wrappers.h b/users/klackygears/wrappers.h new file mode 100644 index 000000000000..88cbae18496d --- /dev/null +++ b/users/klackygears/wrappers.h @@ -0,0 +1,220 @@ +#pragma once +#include "klackygears.h" +/* +Most of this is copied from drashna. I added and changed a few things but, it's all based off of his user folder. +*/ +#if (!defined(LAYOUT) && defined(KEYMAP)) +#define LAYOUT KEYMAP +#endif + +//Added other layout options +#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) +#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__) +#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__) +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) +#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) +#define LAYOUT_ortho_5x10_wrapper(...) LAYOUT_ortho_5x10(__VA_ARGS__) +#define LAYOUT_ortho_5x5_wrapper(...) LAYOUT_ortho_5x5(__VA_ARGS__) + + +/* +NOTE: If you do a search/replace + then you need to add/remove underscores to keep the + lengths consistent. +*/ +//keymaps for tap dance and without +#ifdef TAP_DANCE_ENABLE + #define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T + #define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G + #define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B + + #define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P + #define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN + #define _________________QWERTY_R3_________________ KC_N, KC_M, TD(TD_COMQUES), TD(TD_DTEX), LT(_MDIA,KC_SLASH) + + + #define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G + #define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D + #define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B + + #define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN + #define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O + #define _________________COLEMAK_R3________________ KC_K, KC_M, TD(TD_COMQUES), TD(TD_DTEX), KC_SLASH +/* + #define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B + #define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G + #define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V + + #define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN + #define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O + #define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH +*/ + + #define _______________DVORAK_L1___________________ KC_QUOT, TD(TD_COMQUES), TD(TD_DTEX), KC_P, KC_Y + #define _______________DVORAK_L2___________________ KC_A, KC_O, KC_E, KC_U, KC_I + #define _______________MACDVK_L3___________________ MT(MOD_LCTL,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LGUI, KC_J), KC_K, KC_X + #define _______________WINDVK_L3___________________ MT(MOD_LGUI,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LCTL, KC_J), KC_K, KC_X + + #define _______________DVORAK_R1___________________ KC_F, KC_G, KC_C, KC_R, KC_L + #define _______________DVORAK_R2___________________ KC_D, KC_H, KC_T, KC_N, KC_S + #define _______________MACDVK_R3___________________ KC_B, KC_M, MT(MOD_LGUI,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z) + #define _______________WINDVK_R3___________________ KC_B, KC_M, MT(MOD_LCTL,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z) + + #define __________c39__MACDVK_L3___________________ MT(MOD_LCTL,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LGUI, KC_J), LT(_SYMB,KC_K), TD(TD_XSPC) + #define __________c39__WINDVK_L3___________________ MT(MOD_LGUI,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LCTL, KC_J), LT(_SYMB,KC_K), TD(TD_XSPC) + #define __________c39__MACDVK_R3___________________ LT(_MNMB,KC_B), LT(_SYMB,KC_M), MT(MOD_LGUI,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z) + #define __________c39__WINDVK_R3___________________ LT(_NUMB,KC_B), LT(_SYMB,KC_M), MT(MOD_LCTL,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z) +#else + + #define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T + #define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G + #define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B + + #define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P + #define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN + #define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, LT(_MDIA,KC_SLASH) + + + #define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G + #define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D + #define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B + + #define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN + #define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O + #define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH + + #define _______________DVORAK_L1___________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y + #define _______________DVORAK_L2___________________ KC_A, KC_O, KC_E, KC_U, KC_I + #define _______________MACDVK_L3___________________ MT(MOD_LCTL,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LGUI, KC_J), KC_K, KC_X + #define _______________WINDVK_L3___________________ MT(MOD_LGUI,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LCTL, KC_J), KC_K, KC_X + + #define _______________DVORAK_R1___________________ KC_F, KC_G, KC_C, KC_R, KC_L + #define _______________DVORAK_R2___________________ KC_D, KC_H, KC_T, KC_N, KC_S + #define _______________MACDVK_R3___________________ KC_B, KC_M, MT(MOD_LGUI,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z) + #define _______________WINDVK_R3___________________ KC_B, KC_M, MT(MOD_LCTL,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z) +#endif + +/* +#define ________________DVORAK_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y +#define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U +#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X + +#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L +#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S +#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z + + +#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B +#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G +#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V + +#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN +#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I +#define _________________WORKMAN_R3________________ KC_K, KC_L, TD(TD_COMQUES), TD(TD_DTEX), KC_SLASH + + +#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K +#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G +#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B + +#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN +#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U +#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLASH +*/ + +// thumb key layouts +#define ________WIN_THUMB_CLUSTER_________ LT(_SYMB,KC_SPC), LT(_NUMB,KC_BSPC), LT(_NUMB,KC_TAB), LT(_SYMB,KC_ENT) +#define ________MAC_THUMB_CLUSTER_________ LT(_SYMB,KC_SPC), LT(_MNMB,KC_BSPC), LT(_MNMB,KC_TAB), LT(_SYMB,KC_ENT) + +#define __________________WIN_THUMB_CLUSTER_V2______________ LT(_FUNC,KC_ENT), LT(_NUMB,KC_BSPC), MT(MOD_LSFT,KC_SPC), LT(_NUMB,KC_TAB), LT(_SYMB,KC_ENT), KC_RSFT +#define __________________MAC_THUMB_CLUSTER_V2______________ LT(_FUNC,KC_ENT), LT(_MNMB,KC_BSPC), MT(MOD_LSFT,KC_SPC), LT(_MNMB,KC_TAB), LT(_SYMB,KC_ENT), KC_RSFT +#define ________MAC_THUMB_L______ LT(_FUNC,KC_ENT), LT(_MNMB,KC_BSPC), MT(MOD_LSFT,KC_SPC) +#define ________MAC_THUMB_R______ LT(_MNMB,KC_TAB), LT(_SYMB,KC_ENT), LT(_MDIA,KC_ENT) +#define ________WIN_THUMB_L______ LT(_FUNC,KC_ENT), LT(_NUMB,KC_BSPC), MT(MOD_LSFT,KC_SPC) +#define ________WIN_THUMB_R______ LT(_NUMB,KC_TAB), LT(_SYMB,KC_ENT), LT(_MDIA,KC_ENT) + +// Mission Control Commands +#define ________MAC_MISSION_CTRL__________ LCTL(KC_LEFT), LCTL(KC_UP), LCTL(KC_DOWN), LCTL(KC_RGHT) + +//Number Row +#define _________________NUMBER_L__________________ KC_1, KC_2, KC_3, KC_4, KC_5 +#define _________________NUMBER_R__________________ KC_6, KC_7, KC_8, KC_9, KC_0 + +//keymaps for tap dance and without +#ifdef TAP_DANCE_ENABLE +//Arrow keys and copy-paste shortcuts for MAC OS + #define _________________MACNAV_L1_________________ KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______ + #define _________________MACNAV_L2_________________ KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, _______ + #define _________________MACNAV_L3_________________ _______, LGUI(KC_A), TD(TD_MCCCPY), TD(TD_MCPSTIN), KC_DEL + +//Arrow keys and copy-paste shortcuts for Windows and Microsoft Access & Excel + #define _________________WINNAV_L1_________________ KC_PGUP, KC_PGDN, KC_HOME, KC_END, TD(TD_FNDR) + #define _________________WINNAV_L2_________________ KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, TD(TD_PTSP) + #define _________________WINNAV_L3_________________ TD(TD_ACCW), LCTL(KC_A), TD(TD_CCPY), TD(TD_PSTI), TD(TD_DDEL) + +//Numpad layout with different mod-tap keys for MAC OS and Windows + #define _________________NUMB_R1___________________ TD(TD_MINPLS), KC_7, KC_8, KC_9, KC_COLN + #define _________________NUMB_R2___________________ TD(TD_DIVMLT), KC_4, KC_5, KC_6, C_S_T(KC_COLN) + #define _________________NUMB_R3_MAC_______________ TD(TD_DOTEQL), KC_1, MT(MOD_LGUI,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LCTL,KC_0) + #define _________________NUMB_R3_WIN_______________ TD(TD_DOTEQL), KC_1, MT(MOD_LCTL,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LGUI,KC_0) + #define _________________NUMB_R4___________________ KC_LSFT, KC_0, KC_0, _______, _______ +#else +//Arrow keys and copy-paste shortcuts for MAC OS + #define _________________MACNAV_L1_________________ KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______ + #define _________________MACNAV_L2_________________ KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, _______ + #define _________________MACNAV_L3_________________ _______, LGUI(KC_A), _______, _______, KC_DEL + +//Arrow keys and copy-paste shortcuts for Windows and Microsoft Access & Excel + #define _________________WINNAV_L1_________________ KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______ + #define _________________WINNAV_L2_________________ KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, _______ + #define _________________WINNAV_L3_________________ _______, _______, _______, _______, _______ + #define _________________NUMB_R1___________________ KC_PMNS, KC_7, KC_8, KC_9, KC_PPLS + #define _________________NUMB_R2___________________ KC_PSLS, KC_4, KC_5, KC_6, KC_PAST + #define _________________NUMB_R3_MAC_______________ KC_DOT, KC_1, MT(MOD_LGUI,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LCTL,KC_0) + #define _________________NUMB_R3_WIN_______________ KC_DOT, KC_1, MT(MOD_LCTL,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LGUI,KC_0) + #define _________________NUMB_R4___________________ KC_LSFT, KC_0, KC_0, _______, _______ +#endif + +//Function Row +/* +#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 +#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 +*/ + +//Function keys as macropad +#define _____________FUNC_1_______________ KC_F9, KC_F10, KC_F11, KC_F12 +#define _____________FUNC_2_______________ KC_F5, KC_F6, KC_F7, KC_F8 +#define _____________FUNC_3_______________ KC_F1, KC_F2, KC_F3, KC_F4 + +//RGB keys +#if defined RGBLIGHT_ENABLE || defined RGB_MATRIX_ENABLE +#define _________________RGB_1_____________________ RGBRST, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI +#define _________________RGB_2_____________________ RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD +#else +#define _________________RGB_1_____________________ _______, _______, _______, _______, _______ +#define _________________RGB_2_____________________ _______, _______, _______, _______, _______ +#endif + +//Audio keys +#define _________________MEDIA_____________________ KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, _______ +#define _________________MEDIA_V2__________________ KC_EJCT, KC_MRWD, KC_MPLY, KC_MFFD, _______ + +//Base layer keys +#define _________________LYOUT_____________________ _______, KC_QWERTY, KC_MACBASE, KC_WINBASE, _______ + +//Punctuation keys +#define _________________PUNC_L1___________________ KC_BSLS, KC_AT, KC_HASH, KC_DLR, KC_PERC +#define _________________PUNC_L1_ALT_______________ KC_DQT, KC_AT, KC_HASH, KC_DLR, KC_PERC +#define _________________PUNC_L2___________________ KC_PLUS, KC_MINS, KC_ASTR, KC_SLSH, KC_EQL +#define _________________PUNC_L3___________________ KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR +#define _________________PUNC_L3_ALT_______________ _______, _______, KC_TILD, KC_CIRC, KC_GRV +#define _________________PUNC_R1___________________ _______, KC_DQT, KC_EQL, _______, _______ +#define _________________PUNC_R2___________________ _______, KC_ASTR, KC_SLSH, KC_PLUS, KC_MINS +#define _________________PUNC_R3___________________ _______, KC_EQL, KC_BSLS, _______, _______ + +//Make Shortcuts and window switching +#define _____________FUNC_L1_______________________ MAKEKF, MAKEK, _______, KC_ESC, LCTL(LALT(KC_DEL)) +#define _____________FUNC_L3_______________________ KC_LGUI, KC_RALT, KC_LCTL, KC_TAB, _______ + + +#define _________________KC_BLANK__________________ _______, _______, _______, _______, _______ From e184da91a662b01eb824329087156bd2507bfad6 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sun, 28 Jun 2020 20:27:06 +0900 Subject: [PATCH 098/154] [Update] Japanese translation of docs/cli.md and docs/cli_commands.md (#9536) * update docs/ja/cli.md * update docs/ja/cli_commands.md * Update docs/ja/cli.md Co-authored-by: shela * update docs/ja/cli_commands.md Co-authored-by: shela --- docs/ja/cli.md | 15 ++-- docs/ja/cli_commands.md | 160 +++++++++++++++++++++++++--------------- 2 files changed, 106 insertions(+), 69 deletions(-) diff --git a/docs/ja/cli.md b/docs/ja/cli.md index dc6dddc41d92..9e8169a84e07 100644 --- a/docs/ja/cli.md +++ b/docs/ja/cli.md @@ -1,8 +1,8 @@ # QMK CLI :id=qmk-cli ## 概要 :id=overview @@ -11,25 +11,24 @@ QMK CLI を使用すると QMK キーボードの構築と作業が簡単にな ### 必要事項 :id=requirements -CLI は Python 3.5 以上を必要とします。我々は必要事項の数を少なくしようとしていますが、[`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt) に列挙されているパッケージもインストールする必要があります。これらは QMK CLI をインストールするときに自動的にインストールされます。 +QMK は Python 3.6 以上を必要とします。我々は必要事項の数を少なくしようとしていますが、[`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt) に列挙されているパッケージもインストールする必要があります。これらは QMK CLI をインストールするときに自動的にインストールされます。 ### Homebrew を使ったインストール (macOS、いくつかの Linux) :id=install-using-homebrew [Homebrew](https://brew.sh) をインストールしている場合は、タップして QMK をインストールすることができます: ``` -brew tap qmk/qmk -brew install qmk +brew install qmk/qmk/qmk export QMK_HOME='~/qmk_firmware' # オプション、`qmk_firmware` の場所を設定します qmk setup # これは `qmk/qmk_firmware` をクローンし、オプションでビルド環境をセットアップします ``` -### easy_install あるいは pip を使ってインストール :id=install-using-easy_install-or-pip +### pip を使ってインストール :id=install-using-easy_install-or-pip -上のリストにあなたのシステムがない場合は、QMK を手動でインストールすることができます。最初に、python 3.5 (以降)をインストールしていて、pip をインストールしていることを確認してください。次に以下のコマンドを使って QMK をインストールします: +上で列挙した中にあなたのシステムがない場合は、QMK を手動でインストールすることができます。最初に、python 3.6 (以降)をインストールしていて、pip をインストールしていることを確認してください。次に以下のコマンドを使って QMK をインストールします: ``` -pip3 install qmk +python3 -m pip install qmk export QMK_HOME='~/qmk_firmware' # オプション、`qmk_firmware` の場所を設定します qmk setup # これは `qmk/qmk_firmware` をクローンし、オプションでビルド環境をセットアップします ``` diff --git a/docs/ja/cli_commands.md b/docs/ja/cli_commands.md index 013689e5e849..81cb03cfe5bb 100644 --- a/docs/ja/cli_commands.md +++ b/docs/ja/cli_commands.md @@ -1,48 +1,18 @@ # QMK CLI コマンド -# CLI コマンド - -## `qmk cformat` - -このコマンドは clang-format を使って C コードを整形します。 - -引数無しで実行すると、変更された全てのコアコードを整形します。デフォルトでは `git diff` で `origin/master` をチェックし、ブランチは `-b ` を使って変更できます。 - -`-a` で全てのコアコードを整形するか、コマンドラインでファイル名を渡して特定のファイルに対して実行します。 - -**指定したファイルに対する使い方**: - -``` -qmk cformat [file1] [file2] [...] [fileN] -``` - -**全てのコアファイルに対する使い方**: - -``` -qmk cformat -a -``` - -**origin/master で変更されたファイルのみに対する使い方**: - -``` -qmk cformat -``` - -**branch_name で変更されたファイルのみに対する使い方**: - -``` -qmk cformat -b branch_name -``` +# ユーザー用コマンド ## `qmk compile` このコマンドにより、任意のディレクトリからファームウェアをコンパイルすることができます。 からエクスポートした JSON をコンパイルするか、リポジトリ内でキーマップをコンパイルするか、現在の作業ディレクトリでキーボードをコンパイルすることができます。 +このコマンドはディレクトリを認識します。キーボードやキーマップのディレクトリにいる場合、自動的に KEYBOARD や KEYMAP を入力します。 + **Configurator Exports での使い方**: ``` @@ -113,6 +83,8 @@ $ qmk compile -kb dz60 このコマンドは `qmk compile` に似ていますが、ブートローダを対象にすることもできます。ブートローダはオプションで、デフォルトでは `:flash` に設定されています。 違うブートローダを指定するには、`-bl ` を使ってください。利用可能なブートローダの詳細については、[ファームウェアを書き込む](ja/flashing.md)を見てください。 +このコマンドはディレクトリを認識します。キーボードやキーマップのディレクトリにいる場合、自動的に KEYBOARD や KEYMAP を入力します。 + **Configurator Exports での使い方**: ``` @@ -141,16 +113,6 @@ qmk flash -b qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN] ``` -## `qmk docs` - -このコマンドは、ドキュメントを参照または改善するために使うことができるローカル HTTP サーバを起動します。デフォルトのポートは 8936 です。 - -**使用法**: - -``` -qmk docs [-p PORT] -``` - ## `qmk doctor` このコマンドは環境を調査し、潜在的なビルドあるいは書き込みの問題について警告します。必要に応じてそれらの多くを修正できます。 @@ -175,36 +137,40 @@ qmk doctor [-y] [-n] qmk doctor -n -## `qmk json2c` +## `qmk info` -QMK Configurator からエクスポートしたものから keymap.c を生成します。 +QMK のキーボードやキーマップに関する情報を表示します。キーボードに関する情報を取得したり、レイアウトを表示したり、基礎となるキーマトリックスを表示したり、JSON キーマップをきれいに印刷したりするのに使用できます。 **使用法**: ``` -qmk json2c [-o OUTPUT] filename +qmk info [-f FORMAT] [-m] [-l] [-km KEYMAP] [-kb KEYBOARD] ``` -## `qmk kle2json` +このコマンドはディレクトリを認識します。キーボードやキーマップのディレクトリにいる場合、自動的に KEYBOARD や KEYMAP を入力します。 -このコマンドにより、生の KLE データから QMK Configurator の JSON へ変換することができます。絶対パスあるいは現在のディレクトリ内のファイル名のいずれかを受け取ります。デフォルトでは、`info.json` が既に存在している場合は上書きしません。上書きするには、`-f` あるいは `--force` フラグを使ってください。 +**例**: -**使用法**: +キーボードの基本情報を表示する: -``` -qmk kle2json [-f] -``` + qmk info -kb planck/rev5 -**例**: +キーボードのマトリクスを表示する: -``` -$ qmk kle2json kle.txt -☒ File info.json already exists, use -f or --force to overwrite. -``` + qmk info -kb ergodox_ez -m + +キーボードの JSON キーマップを表示する: + + qmk info -kb clueboard/california -km default + +## `qmk json2c` + +QMK Configurator からエクスポートしたものから keymap.c を生成します。 + +**使用法**: ``` -$ qmk kle2json -f kle.txt -f -Ψ Wrote out to info.json +qmk json2c [-o OUTPUT] filename ``` ## `qmk list-keyboards` @@ -221,6 +187,8 @@ qmk list-keyboards このコマンドは指定されたキーボード(とリビジョン)の全てのキーマップを列挙します。 +このコマンドはディレクトリを認識します。キーボードのディレクトリにいる場合、自動的に KEYBOARD を入力します。 + **使用法**: ``` @@ -231,12 +199,82 @@ qmk list-keymaps -kb planck/ez このコマンドは、キーボードの既存のデフォルトのキーマップに基づいて新しいキーマップを作成します。 +このコマンドはディレクトリを認識します。キーボードやキーマップのディレクトリにいる場合、自動的に KEYBOARD や KEYMAP を入力します。 + **使用法**: ``` qmk new-keymap [-kb KEYBOARD] [-km KEYMAP] ``` +--- + +# 開発者用コマンド + +## `qmk cformat` + +このコマンドは clang-format を使って C コードを整形します。 + +引数無しで実行すると、変更された全てのコアコードを整形します。デフォルトでは `git diff` で `origin/master` をチェックし、ブランチは `-b ` を使って変更できます。 + +`-a` で全てのコアコードを整形するか、コマンドラインでファイル名を渡して特定のファイルに対して実行します。 + +**指定したファイルに対する使い方**: + +``` +qmk cformat [file1] [file2] [...] [fileN] +``` + +**全てのコアファイルに対する使い方**: + +``` +qmk cformat -a +``` + +**origin/master で変更されたファイルのみに対する使い方**: + +``` +qmk cformat +``` + +**branch_name で変更されたファイルのみに対する使い方**: + +``` +qmk cformat -b branch_name +``` + +## `qmk docs` + +このコマンドは、ドキュメントを参照または改善するために使うことができるローカル HTTP サーバを起動します。デフォルトのポートは 8936 です。 + +**使用法**: + +``` +qmk docs [-p PORT] +``` + +## `qmk kle2json` + +このコマンドにより、生の KLE データから QMK Configurator の JSON へ変換することができます。絶対パスあるいは現在のディレクトリ内のファイル名のいずれかを受け取ります。デフォルトでは、`info.json` が既に存在している場合は上書きしません。上書きするには、`-f` あるいは `--force` フラグを使ってください。 + +**使用法**: + +``` +qmk kle2json [-f] +``` + +**例**: + +``` +$ qmk kle2json kle.txt +☒ File info.json already exists, use -f or --force to overwrite. +``` + +``` +$ qmk kle2json -f kle.txt -f +Ψ Wrote out to info.json +``` + ## `qmk pyformat` このコマンドは `qmk_firmware` 内の python コードを整形します。 From 3d45861216b59490a88264188abeb33a84185766 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 28 Jun 2020 21:51:48 +1000 Subject: [PATCH 099/154] Fix ordering for new info.jsons (#9567) --- keyboards/aeboards/aegis/info.json | 14 +++++++------- keyboards/cannonkeys/chimera65/info.json | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/keyboards/aeboards/aegis/info.json b/keyboards/aeboards/aegis/info.json index 1e83a7a9c102..90e2b16946e5 100644 --- a/keyboards/aeboards/aegis/info.json +++ b/keyboards/aeboards/aegis/info.json @@ -94,6 +94,8 @@ {"x": 2, "y": 4.5}, {"x": 3, "y": 4.5}, + {"x": 4.25, "y": 4.75}, + {"x": 5.5, "y": 4.5, "w": 1.25}, {"x": 6.75, "y": 4.5}, {"x": 7.75, "y": 4.5}, @@ -108,22 +110,20 @@ {"x": 16.75, "y": 4.5, "w": 1.75}, {"x": 18.5, "y": 4.5}, - {"x": 4.25, "y": 4.75}, - {"x": 0, "y": 5.5}, {"x": 1, "y": 5.5}, {"x": 2, "y": 5.5}, + {"x": 3.25, "y": 5.75}, + {"x": 4.25, "y": 5.75}, + {"x": 5.25, "y": 5.75}, + {"x": 6.5, "y": 5.5, "w": 1.25}, {"x": 7.75, "y": 5.5, "w": 1.25}, {"x": 9, "y": 5.5, "w": 6.25}, {"x": 15.25, "y": 5.5, "w": 1.5}, {"x": 16.75, "y": 5.5, "w": 1.25}, - {"x": 18, "y": 5.5, "w": 1.5}, - - {"x": 3.25, "y": 5.75}, - {"x": 4.25, "y": 5.75}, - {"x": 5.25, "y": 5.75} + {"x": 18, "y": 5.5, "w": 1.5} ] } } diff --git a/keyboards/cannonkeys/chimera65/info.json b/keyboards/cannonkeys/chimera65/info.json index 4130e7a373d3..f4c6046a65c8 100644 --- a/keyboards/cannonkeys/chimera65/info.json +++ b/keyboards/cannonkeys/chimera65/info.json @@ -71,10 +71,10 @@ {"x": 11.25, "y": 3}, {"x": 12.25, "y": 3, "w": 1.75}, - {"x": 15.5, "y": 3}, - {"x": 14.25, "y": 3.25}, + {"x": 15.5, "y": 3}, + {"x": 0, "y": 4, "w": 1.25}, {"x": 1.25, "y": 4, "w": 1.25}, {"x": 2.5, "y": 4, "w": 1.25}, From 2344b6865a26298fe8e1bc0c5ea2a6082271ebff Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 28 Jun 2020 22:21:37 +1000 Subject: [PATCH 100/154] Fix siemens_tastatur info.json (#9568) --- keyboards/converter/siemens_tastatur/info.json | 2 +- keyboards/converter/siemens_tastatur/siemens_tastatur.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/converter/siemens_tastatur/info.json b/keyboards/converter/siemens_tastatur/info.json index 81fc47865269..de9998cb7131 100644 --- a/keyboards/converter/siemens_tastatur/info.json +++ b/keyboards/converter/siemens_tastatur/info.json @@ -69,6 +69,7 @@ {"x": 18, "y": 2}, {"x": 19, "y": 2}, + {"x": 0, "y": 3, "w": 1.75}, {"x": 1.75, "y": 3}, {"x": 2.75, "y": 3}, {"x": 3.75, "y": 3}, @@ -79,7 +80,6 @@ {"x": 8.75, "y": 3}, {"x": 9.75, "y": 3}, {"x": 10.75, "y": 3}, - {"x": 11.75, "y": 3, "w": 1.75}, {"x": 15, "y": 3}, {"x": 16, "y": 3}, diff --git a/keyboards/converter/siemens_tastatur/siemens_tastatur.h b/keyboards/converter/siemens_tastatur/siemens_tastatur.h index 6a81b2550d76..f14cd82a8d7c 100644 --- a/keyboards/converter/siemens_tastatur/siemens_tastatur.h +++ b/keyboards/converter/siemens_tastatur/siemens_tastatur.h @@ -30,7 +30,7 @@ along with this program. If not, see . k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h, k0i, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, k1h, k1i, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, k2i, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3e, k3f, k3g, k3h, k3i, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3e, k3f, k3g, k3h, k3i, \ k3b \ ) \ { \ From b87895dc1246065ac05487d5715fab0e734fc5bd Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Sun, 28 Jun 2020 22:09:14 +0800 Subject: [PATCH 101/154] Move Wete to ramonimbao folder (#9569) * [Breaking] Move Wete to ramonimbao folder * Delete files * Move files with git instead * Update readme with new directory --- keyboards/{ => ramonimbao}/wete/chconf.h | 0 keyboards/{ => ramonimbao}/wete/config.h | 0 keyboards/{ => ramonimbao}/wete/halconf.h | 0 keyboards/{ => ramonimbao}/wete/info.json | 0 keyboards/{ => ramonimbao}/wete/keymaps/default/keymap.c | 0 keyboards/{ => ramonimbao}/wete/keymaps/iso/keymap.c | 0 keyboards/{ => ramonimbao}/wete/keymaps/jis/keymap.c | 0 keyboards/{ => ramonimbao}/wete/keymaps/via/config.h | 0 keyboards/{ => ramonimbao}/wete/keymaps/via/keymap.c | 0 keyboards/{ => ramonimbao}/wete/keymaps/via/rules.mk | 0 keyboards/{ => ramonimbao}/wete/mcuconf.h | 0 keyboards/{ => ramonimbao}/wete/readme.md | 2 +- keyboards/{ => ramonimbao}/wete/rules.mk | 0 keyboards/{ => ramonimbao}/wete/wete.c | 0 keyboards/{ => ramonimbao}/wete/wete.h | 0 15 files changed, 1 insertion(+), 1 deletion(-) rename keyboards/{ => ramonimbao}/wete/chconf.h (100%) rename keyboards/{ => ramonimbao}/wete/config.h (100%) rename keyboards/{ => ramonimbao}/wete/halconf.h (100%) rename keyboards/{ => ramonimbao}/wete/info.json (100%) rename keyboards/{ => ramonimbao}/wete/keymaps/default/keymap.c (100%) rename keyboards/{ => ramonimbao}/wete/keymaps/iso/keymap.c (100%) rename keyboards/{ => ramonimbao}/wete/keymaps/jis/keymap.c (100%) rename keyboards/{ => ramonimbao}/wete/keymaps/via/config.h (100%) rename keyboards/{ => ramonimbao}/wete/keymaps/via/keymap.c (100%) rename keyboards/{ => ramonimbao}/wete/keymaps/via/rules.mk (100%) rename keyboards/{ => ramonimbao}/wete/mcuconf.h (100%) rename keyboards/{ => ramonimbao}/wete/readme.md (94%) rename keyboards/{ => ramonimbao}/wete/rules.mk (100%) rename keyboards/{ => ramonimbao}/wete/wete.c (100%) rename keyboards/{ => ramonimbao}/wete/wete.h (100%) diff --git a/keyboards/wete/chconf.h b/keyboards/ramonimbao/wete/chconf.h similarity index 100% rename from keyboards/wete/chconf.h rename to keyboards/ramonimbao/wete/chconf.h diff --git a/keyboards/wete/config.h b/keyboards/ramonimbao/wete/config.h similarity index 100% rename from keyboards/wete/config.h rename to keyboards/ramonimbao/wete/config.h diff --git a/keyboards/wete/halconf.h b/keyboards/ramonimbao/wete/halconf.h similarity index 100% rename from keyboards/wete/halconf.h rename to keyboards/ramonimbao/wete/halconf.h diff --git a/keyboards/wete/info.json b/keyboards/ramonimbao/wete/info.json similarity index 100% rename from keyboards/wete/info.json rename to keyboards/ramonimbao/wete/info.json diff --git a/keyboards/wete/keymaps/default/keymap.c b/keyboards/ramonimbao/wete/keymaps/default/keymap.c similarity index 100% rename from keyboards/wete/keymaps/default/keymap.c rename to keyboards/ramonimbao/wete/keymaps/default/keymap.c diff --git a/keyboards/wete/keymaps/iso/keymap.c b/keyboards/ramonimbao/wete/keymaps/iso/keymap.c similarity index 100% rename from keyboards/wete/keymaps/iso/keymap.c rename to keyboards/ramonimbao/wete/keymaps/iso/keymap.c diff --git a/keyboards/wete/keymaps/jis/keymap.c b/keyboards/ramonimbao/wete/keymaps/jis/keymap.c similarity index 100% rename from keyboards/wete/keymaps/jis/keymap.c rename to keyboards/ramonimbao/wete/keymaps/jis/keymap.c diff --git a/keyboards/wete/keymaps/via/config.h b/keyboards/ramonimbao/wete/keymaps/via/config.h similarity index 100% rename from keyboards/wete/keymaps/via/config.h rename to keyboards/ramonimbao/wete/keymaps/via/config.h diff --git a/keyboards/wete/keymaps/via/keymap.c b/keyboards/ramonimbao/wete/keymaps/via/keymap.c similarity index 100% rename from keyboards/wete/keymaps/via/keymap.c rename to keyboards/ramonimbao/wete/keymaps/via/keymap.c diff --git a/keyboards/wete/keymaps/via/rules.mk b/keyboards/ramonimbao/wete/keymaps/via/rules.mk similarity index 100% rename from keyboards/wete/keymaps/via/rules.mk rename to keyboards/ramonimbao/wete/keymaps/via/rules.mk diff --git a/keyboards/wete/mcuconf.h b/keyboards/ramonimbao/wete/mcuconf.h similarity index 100% rename from keyboards/wete/mcuconf.h rename to keyboards/ramonimbao/wete/mcuconf.h diff --git a/keyboards/wete/readme.md b/keyboards/ramonimbao/wete/readme.md similarity index 94% rename from keyboards/wete/readme.md rename to keyboards/ramonimbao/wete/readme.md index f632ae5f1cf9..f0f26b78bd84 100644 --- a/keyboards/wete/readme.md +++ b/keyboards/ramonimbao/wete/readme.md @@ -9,6 +9,6 @@ A southpaw full-sized keyboard. Make example for this keyboard (after setting up your build environment): - make wete:default + make ramonimbao/wete: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/wete/rules.mk b/keyboards/ramonimbao/wete/rules.mk similarity index 100% rename from keyboards/wete/rules.mk rename to keyboards/ramonimbao/wete/rules.mk diff --git a/keyboards/wete/wete.c b/keyboards/ramonimbao/wete/wete.c similarity index 100% rename from keyboards/wete/wete.c rename to keyboards/ramonimbao/wete/wete.c diff --git a/keyboards/wete/wete.h b/keyboards/ramonimbao/wete/wete.h similarity index 100% rename from keyboards/wete/wete.h rename to keyboards/ramonimbao/wete/wete.h From b27c20d2041a3569f126e7901b9a926c0169fbc6 Mon Sep 17 00:00:00 2001 From: Miles Goodhew Date: Mon, 29 Jun 2020 00:38:41 +1000 Subject: [PATCH 102/154] Added DFU instructions for XD004 board (#9565) --- keyboards/xd004/readme.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/keyboards/xd004/readme.md b/keyboards/xd004/readme.md index 8b32c6a48c64..8f858a84111e 100644 --- a/keyboards/xd004/readme.md +++ b/keyboards/xd004/readme.md @@ -9,6 +9,20 @@ Keyboard Maintainer: QMK Community Hardware Supported: XD004 PCB v1.0 Hardware Availability: [KPRepublic](https://kprepublic.com/products/xd004-xiudi-4-custom-mechanical-keyboard-4-keys-switch-leds-pcb-programmed-hot-swappable-macro-key-silver-case-micro-port) +To put this board in DFU (firmware update) mode, bridge the last two pins (#5 & 6) of the 6-pin "J2" header on the opposite edge of the board to the USB port" +``` +----+ + J2 | +[o] | +(o) | +(o) | +(o) | +(o)-+-\ (These +(o)-+-/ two) + | +----+ +``` + To build with a default keymap (not useful at all, have a look at other keymaps): ```make xd004/v1:default``` From 32a47e7af4a2ce21260aadde5bf7ed8f78293ff9 Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Sun, 28 Jun 2020 23:22:11 +0800 Subject: [PATCH 103/154] Add Herringbone keyboard (#9495) Co-authored-by: Ryan Co-authored-by: Erovia --- keyboards/ramonimbao/herringbone/config.h | 218 ++++++++++++ .../ramonimbao/herringbone/herringbone.c | 17 + .../ramonimbao/herringbone/herringbone.h | 82 +++++ keyboards/ramonimbao/herringbone/info.json | 317 ++++++++++++++++++ .../herringbone/keymaps/default/keymap.c | 27 ++ .../herringbone/keymaps/iso/keymap.c | 27 ++ .../herringbone/keymaps/via/keymap.c | 51 +++ .../herringbone/keymaps/via/rules.mk | 3 + keyboards/ramonimbao/herringbone/readme.md | 14 + keyboards/ramonimbao/herringbone/rules.mk | 34 ++ 10 files changed, 790 insertions(+) create mode 100644 keyboards/ramonimbao/herringbone/config.h create mode 100644 keyboards/ramonimbao/herringbone/herringbone.c create mode 100644 keyboards/ramonimbao/herringbone/herringbone.h create mode 100644 keyboards/ramonimbao/herringbone/info.json create mode 100644 keyboards/ramonimbao/herringbone/keymaps/default/keymap.c create mode 100644 keyboards/ramonimbao/herringbone/keymaps/iso/keymap.c create mode 100644 keyboards/ramonimbao/herringbone/keymaps/via/keymap.c create mode 100644 keyboards/ramonimbao/herringbone/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/herringbone/readme.md create mode 100644 keyboards/ramonimbao/herringbone/rules.mk diff --git a/keyboards/ramonimbao/herringbone/config.h b/keyboards/ramonimbao/herringbone/config.h new file mode 100644 index 000000000000..3dab5ddeb3a2 --- /dev/null +++ b/keyboards/ramonimbao/herringbone/config.h @@ -0,0 +1,218 @@ +/* +Copyright 2020 Ramon Imbao + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xB16B +#define PRODUCT_ID 0x04E5 +#define DEVICE_VER 0x0012 +#define MANUFACTURER Ramon Imbao +#define PRODUCT Herringbone +#define DESCRIPTION A through hole 75% keyboard + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* + * 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) + * + */ +#define MATRIX_ROW_PINS { C5, C6, C7, A7, A6, A5 } +#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, C4, D6, D5, D1, B0, B1, B3, B4, B7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose 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 +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* 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 1 + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/ramonimbao/herringbone/herringbone.c b/keyboards/ramonimbao/herringbone/herringbone.c new file mode 100644 index 000000000000..c7087ea0ac5e --- /dev/null +++ b/keyboards/ramonimbao/herringbone/herringbone.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "herringbone.h" diff --git a/keyboards/ramonimbao/herringbone/herringbone.h b/keyboards/ramonimbao/herringbone/herringbone.h new file mode 100644 index 000000000000..80c411690e73 --- /dev/null +++ b/keyboards/ramonimbao/herringbone/herringbone.h @@ -0,0 +1,82 @@ +/* Copyright 2020 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define XXX KC_NO + +#define LAYOUT_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4e, \ + k50, k52, k53, k55, k59, k5a, k5c, k5d, k5e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, k4e }, \ + { k50, XXX, k52, k53, XXX, k55, XXX, XXX, XXX, k59, k5a, XXX, k5c, k5d, k5e } \ +} + +#define LAYOUT_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ + k40, k51, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4e, \ + k50, k52, k53, k55, k59, k5a, k5c, k5d, k5e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, k4e }, \ + { k50, k51, k52, k53, XXX, k55, XXX, XXX, XXX, k59, k5a, XXX, k5c, k5d, k5e } \ +} + +// Split backspace +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k3c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ + k40, k51, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4e, \ + k50, k52, k53, k55, k59, k5a, k5c, k5d, k5e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, k4e }, \ + { k50, k51, k52, k53, XXX, k55, XXX, XXX, XXX, k59, k5a, XXX, k5c, k5d, k5e } \ +} diff --git a/keyboards/ramonimbao/herringbone/info.json b/keyboards/ramonimbao/herringbone/info.json new file mode 100644 index 000000000000..5a23ec0b10fb --- /dev/null +++ b/keyboards/ramonimbao/herringbone/info.json @@ -0,0 +1,317 @@ +{ + "keyboard_name": "Herringbone", + "url": "", + "maintainer": "Ramon Imbao", + "width": 16.5, + "height": 6.5, + "layouts": { + "LAYOUT_ansi": { + "layout": [ + {"x": 0, "y": 0}, + + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + + {"x": 5.75, "y": 0}, + {"x": 6.75, "y": 0}, + {"x": 7.75, "y": 0}, + {"x": 8.75, "y": 0}, + + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + + {"x": 14.25, "y": 0}, + + {"x": 15.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.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.5, "y": 2.25}, + + {"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": 15.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": 1.75}, + + {"x": 14.25, "y": 4.5}, + + {"x": 15.5, "y": 4.25}, + + {"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.5}, + {"x": 11.5, "y": 5.25, "w": 1.5}, + + {"x": 13.25, "y": 5.5}, + {"x": 14.25, "y": 5.5}, + {"x": 15.25, "y": 5.5} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"x": 0, "y": 0}, + + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + + {"x": 5.75, "y": 0}, + {"x": 6.75, "y": 0}, + {"x": 7.75, "y": 0}, + {"x": 8.75, "y": 0}, + + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + + {"x": 14.25, "y": 0}, + + {"x": 15.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.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.5, "y": 2.25}, + + {"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": 15.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": 1.75}, + + {"x": 14.25, "y": 4.5}, + + {"x": 15.5, "y": 4.25}, + + {"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.5}, + {"x": 11.5, "y": 5.25, "w": 1.5}, + + {"x": 13.25, "y": 5.5}, + {"x": 14.25, "y": 5.5}, + {"x": 15.25, "y": 5.5} + ] + }, + "LAYOUT_all": { + "layout": [ + {"x": 0, "y": 0}, + + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + + {"x": 5.75, "y": 0}, + {"x": 6.75, "y": 0}, + {"x": 7.75, "y": 0}, + {"x": 8.75, "y": 0}, + + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + + {"x": 14.25, "y": 0}, + + {"x": 15.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.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.5, "y": 2.25}, + + {"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": 15.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": 1.75}, + + {"x": 14.25, "y": 4.5}, + + {"x": 15.5, "y": 4.25}, + + {"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.5}, + {"x": 11.5, "y": 5.25, "w": 1.5}, + + {"x": 13.25, "y": 5.5}, + {"x": 14.25, "y": 5.5}, + {"x": 15.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/ramonimbao/herringbone/keymaps/default/keymap.c b/keyboards/ramonimbao/herringbone/keymaps/default/keymap.c new file mode 100644 index 000000000000..18047fbea763 --- /dev/null +++ b/keyboards/ramonimbao/herringbone/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2020 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_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_TILD, KC_1, KC_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), +}; diff --git a/keyboards/ramonimbao/herringbone/keymaps/iso/keymap.c b/keyboards/ramonimbao/herringbone/keymaps/iso/keymap.c new file mode 100644 index 000000000000..43255343e72b --- /dev/null +++ b/keyboards/ramonimbao/herringbone/keymaps/iso/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2020 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_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_DEL, + KC_TILD, KC_1, KC_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_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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), +}; diff --git a/keyboards/ramonimbao/herringbone/keymaps/via/keymap.c b/keyboards/ramonimbao/herringbone/keymaps/via/keymap.c new file mode 100644 index 000000000000..d39f7c9ab82f --- /dev/null +++ b/keyboards/ramonimbao/herringbone/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Ramon Imbao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_DEL, + KC_TILD, KC_1, KC_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_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_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, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/ramonimbao/herringbone/keymaps/via/rules.mk b/keyboards/ramonimbao/herringbone/keymaps/via/rules.mk new file mode 100644 index 000000000000..930e3552ad08 --- /dev/null +++ b/keyboards/ramonimbao/herringbone/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = no diff --git a/keyboards/ramonimbao/herringbone/readme.md b/keyboards/ramonimbao/herringbone/readme.md new file mode 100644 index 000000000000..019b7da4a542 --- /dev/null +++ b/keyboards/ramonimbao/herringbone/readme.md @@ -0,0 +1,14 @@ +# Herringbone + +![Herringbone](https://i.imgur.com/SQyS0j8.png) + +A through-hole 75% keyboard. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32A + +Make example for this keyboard (after setting up your build environment): + + make herringbone: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/ramonimbao/herringbone/rules.mk b/keyboards/ramonimbao/herringbone/rules.mk new file mode 100644 index 000000000000..9fde8b14e305 --- /dev/null +++ b/keyboards/ramonimbao/herringbone/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32a + +# Processor frequency +F_CPU = 16000000 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = USBasp + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From a8904d47b745518e9bbab8f20f05828d77f7f42d Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Mon, 29 Jun 2020 00:12:35 +0800 Subject: [PATCH 104/154] Add GHS.RAR keyboard (#9561) Co-authored-by: Ryan --- keyboards/ghs/rar/config.h | 196 ++++++++ keyboards/ghs/rar/info.json | 512 +++++++++++++++++++++ keyboards/ghs/rar/keymaps/default/keymap.c | 42 ++ keyboards/ghs/rar/keymaps/iso/keymap.c | 42 ++ keyboards/ghs/rar/keymaps/via/keymap.c | 52 +++ keyboards/ghs/rar/keymaps/via/rules.mk | 1 + keyboards/ghs/rar/rar.c | 17 + keyboards/ghs/rar/rar.h | 145 ++++++ keyboards/ghs/rar/readme.md | 15 + keyboards/ghs/rar/rules.mk | 31 ++ 10 files changed, 1053 insertions(+) create mode 100644 keyboards/ghs/rar/config.h create mode 100644 keyboards/ghs/rar/info.json create mode 100644 keyboards/ghs/rar/keymaps/default/keymap.c create mode 100644 keyboards/ghs/rar/keymaps/iso/keymap.c create mode 100644 keyboards/ghs/rar/keymaps/via/keymap.c create mode 100644 keyboards/ghs/rar/keymaps/via/rules.mk create mode 100644 keyboards/ghs/rar/rar.c create mode 100644 keyboards/ghs/rar/rar.h create mode 100644 keyboards/ghs/rar/readme.md create mode 100644 keyboards/ghs/rar/rules.mk diff --git a/keyboards/ghs/rar/config.h b/keyboards/ghs/rar/config.h new file mode 100644 index 000000000000..0e41f47b3173 --- /dev/null +++ b/keyboards/ghs/rar/config.h @@ -0,0 +1,196 @@ +/* +Copyright 2020 Gone Hacking 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x0645 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Gone Hacking Studio +#define PRODUCT GHS.RAR +#define DESCRIPTION A 75 % keyboard + +/* key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 8 + +/* + * 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) + * + */ +#define MATRIX_ROW_PINS { B0, B7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, D1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN D0 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 17 + #define RGBLIGHT_ANIMATIONS +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* 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 1 + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/ghs/rar/info.json b/keyboards/ghs/rar/info.json new file mode 100644 index 000000000000..3d2ffe1a43c3 --- /dev/null +++ b/keyboards/ghs/rar/info.json @@ -0,0 +1,512 @@ +{ + "keyboard_name": "GHS.RAR", + "url": "https://gonehacking.studio/", + "maintainer": "Gone Hacking Studio", + "width": 16.5, + "height": 6.75, + "layouts": { + "LAYOUT_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.5, "y": 0}, + + {"x": 0, "y": 1.5}, + {"x": 1, "y": 1.5}, + {"x": 2, "y": 1.5}, + {"x": 3, "y": 1.5}, + {"x": 4, "y": 1.5}, + {"x": 5, "y": 1.5}, + {"x": 6, "y": 1.5}, + {"x": 7, "y": 1.5}, + {"x": 8, "y": 1.5}, + {"x": 9, "y": 1.5}, + {"x": 10, "y": 1.5}, + {"x": 11, "y": 1.5}, + {"x": 12, "y": 1.5}, + {"x": 13, "y": 1.5, "w": 2}, + + {"x": 15.5, "y": 1.5}, + + {"x": 0, "y": 2.5, "w": 1.5}, + {"x": 1.5, "y": 2.5}, + {"x": 2.5, "y": 2.5}, + {"x": 3.5, "y": 2.5}, + {"x": 4.5, "y": 2.5}, + {"x": 5.5, "y": 2.5}, + {"x": 6.5, "y": 2.5}, + {"x": 7.5, "y": 2.5}, + {"x": 8.5, "y": 2.5}, + {"x": 9.5, "y": 2.5}, + {"x": 10.5, "y": 2.5}, + {"x": 11.5, "y": 2.5}, + {"x": 12.5, "y": 2.5}, + {"x": 13.5, "y": 2.5, "w": 1.5}, + + {"x": 15.5, "y": 2.5}, + + {"x": 0, "y": 3.5, "w": 1.75}, + {"x": 1.75, "y": 3.5}, + {"x": 2.75, "y": 3.5}, + {"x": 3.75, "y": 3.5}, + {"x": 4.75, "y": 3.5}, + {"x": 5.75, "y": 3.5}, + {"x": 6.75, "y": 3.5}, + {"x": 7.75, "y": 3.5}, + {"x": 8.75, "y": 3.5}, + {"x": 9.75, "y": 3.5}, + {"x": 10.75, "y": 3.5}, + {"x": 11.75, "y": 3.5}, + {"x": 12.75, "y": 3.5, "w": 2.25}, + + {"x": 15.5, "y": 3.5}, + + {"x": 0, "y": 4.5, "w": 2.25}, + {"x": 2.25, "y": 4.5}, + {"x": 3.25, "y": 4.5}, + {"x": 4.25, "y": 4.5}, + {"x": 5.25, "y": 4.5}, + {"x": 6.25, "y": 4.5}, + {"x": 7.25, "y": 4.5}, + {"x": 8.25, "y": 4.5}, + {"x": 9.25, "y": 4.5}, + {"x": 10.25, "y": 4.5}, + {"x": 11.25, "y": 4.5}, + {"x": 12.25, "y": 4.5, "w": 1.75}, + + {"x": 14.25, "y": 4.75}, + + {"x": 15.5, "y": 4.5}, + + {"x": 0, "y": 5.5, "w": 1.25}, + {"x": 1.25, "y": 5.5, "w": 1.25}, + {"x": 2.5, "y": 5.5, "w": 1.25}, + {"x": 3.75, "y": 5.5, "w": 6.25}, + {"x": 10, "y": 5.5, "w": 1.5}, + {"x": 11.5, "y": 5.5, "w": 1.5}, + + {"x": 13.25, "y": 5.75}, + {"x": 14.25, "y": 5.75}, + {"x": 15.25, "y": 5.75} + ] + }, + "LAYOUT_ansi_wkl": { + "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.5, "y": 0}, + + {"x": 0, "y": 1.5}, + {"x": 1, "y": 1.5}, + {"x": 2, "y": 1.5}, + {"x": 3, "y": 1.5}, + {"x": 4, "y": 1.5}, + {"x": 5, "y": 1.5}, + {"x": 6, "y": 1.5}, + {"x": 7, "y": 1.5}, + {"x": 8, "y": 1.5}, + {"x": 9, "y": 1.5}, + {"x": 10, "y": 1.5}, + {"x": 11, "y": 1.5}, + {"x": 12, "y": 1.5}, + {"x": 13, "y": 1.5, "w": 2}, + + {"x": 15.5, "y": 1.5}, + + {"x": 0, "y": 2.5, "w": 1.5}, + {"x": 1.5, "y": 2.5}, + {"x": 2.5, "y": 2.5}, + {"x": 3.5, "y": 2.5}, + {"x": 4.5, "y": 2.5}, + {"x": 5.5, "y": 2.5}, + {"x": 6.5, "y": 2.5}, + {"x": 7.5, "y": 2.5}, + {"x": 8.5, "y": 2.5}, + {"x": 9.5, "y": 2.5}, + {"x": 10.5, "y": 2.5}, + {"x": 11.5, "y": 2.5}, + {"x": 12.5, "y": 2.5}, + {"x": 13.5, "y": 2.5, "w": 1.5}, + + {"x": 15.5, "y": 2.5}, + + {"x": 0, "y": 3.5, "w": 1.75}, + {"x": 1.75, "y": 3.5}, + {"x": 2.75, "y": 3.5}, + {"x": 3.75, "y": 3.5}, + {"x": 4.75, "y": 3.5}, + {"x": 5.75, "y": 3.5}, + {"x": 6.75, "y": 3.5}, + {"x": 7.75, "y": 3.5}, + {"x": 8.75, "y": 3.5}, + {"x": 9.75, "y": 3.5}, + {"x": 10.75, "y": 3.5}, + {"x": 11.75, "y": 3.5}, + {"x": 12.75, "y": 3.5, "w": 2.25}, + + {"x": 15.5, "y": 3.5}, + + {"x": 0, "y": 4.5, "w": 2.25}, + {"x": 2.25, "y": 4.5}, + {"x": 3.25, "y": 4.5}, + {"x": 4.25, "y": 4.5}, + {"x": 5.25, "y": 4.5}, + {"x": 6.25, "y": 4.5}, + {"x": 7.25, "y": 4.5}, + {"x": 8.25, "y": 4.5}, + {"x": 9.25, "y": 4.5}, + {"x": 10.25, "y": 4.5}, + {"x": 11.25, "y": 4.5}, + {"x": 12.25, "y": 4.5, "w": 1.75}, + + {"x": 14.25, "y": 4.75}, + + {"x": 15.5, "y": 4.5}, + + {"x": 0, "y": 5.5, "w": 1.5}, + {"x": 1.5, "y": 5.5, "w": 1.5}, + {"x": 3, "y": 5.5, "w": 7}, + {"x": 10, "y": 5.5, "w": 1.5}, + {"x": 11.5, "y": 5.5, "w": 1.5}, + + {"x": 13.25, "y": 5.75}, + {"x": 14.25, "y": 5.75}, + {"x": 15.25, "y": 5.75} + ] + }, + "LAYOUT_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.5, "y": 0}, + + {"x": 0, "y": 1.5}, + {"x": 1, "y": 1.5}, + {"x": 2, "y": 1.5}, + {"x": 3, "y": 1.5}, + {"x": 4, "y": 1.5}, + {"x": 5, "y": 1.5}, + {"x": 6, "y": 1.5}, + {"x": 7, "y": 1.5}, + {"x": 8, "y": 1.5}, + {"x": 9, "y": 1.5}, + {"x": 10, "y": 1.5}, + {"x": 11, "y": 1.5}, + {"x": 12, "y": 1.5}, + {"x": 13, "y": 1.5, "w": 2}, + + {"x": 15.5, "y": 1.5}, + + {"x": 0, "y": 2.5, "w": 1.5}, + {"x": 1.5, "y": 2.5}, + {"x": 2.5, "y": 2.5}, + {"x": 3.5, "y": 2.5}, + {"x": 4.5, "y": 2.5}, + {"x": 5.5, "y": 2.5}, + {"x": 6.5, "y": 2.5}, + {"x": 7.5, "y": 2.5}, + {"x": 8.5, "y": 2.5}, + {"x": 9.5, "y": 2.5}, + {"x": 10.5, "y": 2.5}, + {"x": 11.5, "y": 2.5}, + {"x": 12.5, "y": 2.5}, + {"x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"x": 15.5, "y": 2.5}, + + {"x": 0, "y": 3.5, "w": 1.75}, + {"x": 1.75, "y": 3.5}, + {"x": 2.75, "y": 3.5}, + {"x": 3.75, "y": 3.5}, + {"x": 4.75, "y": 3.5}, + {"x": 5.75, "y": 3.5}, + {"x": 6.75, "y": 3.5}, + {"x": 7.75, "y": 3.5}, + {"x": 8.75, "y": 3.5}, + {"x": 9.75, "y": 3.5}, + {"x": 10.75, "y": 3.5}, + {"x": 11.75, "y": 3.5}, + {"x": 12.75, "y": 3.5}, + + {"x": 15.5, "y": 3.5}, + + {"x": 0, "y": 4.5, "w": 1.25}, + {"x": 1.25, "y": 4.5}, + {"x": 2.25, "y": 4.5}, + {"x": 3.25, "y": 4.5}, + {"x": 4.25, "y": 4.5}, + {"x": 5.25, "y": 4.5}, + {"x": 6.25, "y": 4.5}, + {"x": 7.25, "y": 4.5}, + {"x": 8.25, "y": 4.5}, + {"x": 9.25, "y": 4.5}, + {"x": 10.25, "y": 4.5}, + {"x": 11.25, "y": 4.5}, + {"x": 12.25, "y": 4.5, "w": 1.75}, + + {"x": 14.25, "y": 4.75}, + + {"x": 15.5, "y": 4.5}, + + {"x": 0, "y": 5.5, "w": 1.25}, + {"x": 1.25, "y": 5.5, "w": 1.25}, + {"x": 2.5, "y": 5.5, "w": 1.25}, + {"x": 3.75, "y": 5.5, "w": 6.25}, + {"x": 10, "y": 5.5, "w": 1.5}, + {"x": 11.5, "y": 5.5, "w": 1.5}, + + {"x": 13.25, "y": 5.75}, + {"x": 14.25, "y": 5.75}, + {"x": 15.25, "y": 5.75} + ] + }, + "LAYOUT_iso_wkl": { + "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.5, "y": 0}, + + {"x": 0, "y": 1.5}, + {"x": 1, "y": 1.5}, + {"x": 2, "y": 1.5}, + {"x": 3, "y": 1.5}, + {"x": 4, "y": 1.5}, + {"x": 5, "y": 1.5}, + {"x": 6, "y": 1.5}, + {"x": 7, "y": 1.5}, + {"x": 8, "y": 1.5}, + {"x": 9, "y": 1.5}, + {"x": 10, "y": 1.5}, + {"x": 11, "y": 1.5}, + {"x": 12, "y": 1.5}, + {"x": 13, "y": 1.5, "w": 2}, + + {"x": 15.5, "y": 1.5}, + + {"x": 0, "y": 2.5, "w": 1.5}, + {"x": 1.5, "y": 2.5}, + {"x": 2.5, "y": 2.5}, + {"x": 3.5, "y": 2.5}, + {"x": 4.5, "y": 2.5}, + {"x": 5.5, "y": 2.5}, + {"x": 6.5, "y": 2.5}, + {"x": 7.5, "y": 2.5}, + {"x": 8.5, "y": 2.5}, + {"x": 9.5, "y": 2.5}, + {"x": 10.5, "y": 2.5}, + {"x": 11.5, "y": 2.5}, + {"x": 12.5, "y": 2.5}, + {"x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"x": 15.5, "y": 2.5}, + + {"x": 0, "y": 3.5, "w": 1.75}, + {"x": 1.75, "y": 3.5}, + {"x": 2.75, "y": 3.5}, + {"x": 3.75, "y": 3.5}, + {"x": 4.75, "y": 3.5}, + {"x": 5.75, "y": 3.5}, + {"x": 6.75, "y": 3.5}, + {"x": 7.75, "y": 3.5}, + {"x": 8.75, "y": 3.5}, + {"x": 9.75, "y": 3.5}, + {"x": 10.75, "y": 3.5}, + {"x": 11.75, "y": 3.5}, + {"x": 12.75, "y": 3.5}, + + {"x": 15.5, "y": 3.5}, + + {"x": 0, "y": 4.5, "w": 1.25}, + {"x": 1.25, "y": 4.5}, + {"x": 2.25, "y": 4.5}, + {"x": 3.25, "y": 4.5}, + {"x": 4.25, "y": 4.5}, + {"x": 5.25, "y": 4.5}, + {"x": 6.25, "y": 4.5}, + {"x": 7.25, "y": 4.5}, + {"x": 8.25, "y": 4.5}, + {"x": 9.25, "y": 4.5}, + {"x": 10.25, "y": 4.5}, + {"x": 11.25, "y": 4.5}, + {"x": 12.25, "y": 4.5, "w": 1.75}, + + {"x": 14.25, "y": 4.75}, + + {"x": 15.5, "y": 4.5}, + + {"x": 0, "y": 5.5, "w": 1.5}, + {"x": 1.5, "y": 5.5, "w": 1.5}, + {"x": 3, "y": 5.5, "w": 7}, + {"x": 10, "y": 5.5, "w": 1.5}, + {"x": 11.5, "y": 5.5, "w": 1.5}, + + {"x": 13.25, "y": 5.75}, + {"x": 14.25, "y": 5.75}, + {"x": 15.25, "y": 5.75} + ] + }, + "LAYOUT_all": { + "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.5, "y": 0}, + + {"x": 0, "y": 1.5}, + {"x": 1, "y": 1.5}, + {"x": 2, "y": 1.5}, + {"x": 3, "y": 1.5}, + {"x": 4, "y": 1.5}, + {"x": 5, "y": 1.5}, + {"x": 6, "y": 1.5}, + {"x": 7, "y": 1.5}, + {"x": 8, "y": 1.5}, + {"x": 9, "y": 1.5}, + {"x": 10, "y": 1.5}, + {"x": 11, "y": 1.5}, + {"x": 12, "y": 1.5}, + {"x": 13, "y": 1.5}, + {"x": 14, "y": 1.5}, + + {"x": 15.5, "y": 1.5}, + + {"x": 0, "y": 2.5, "w": 1.5}, + {"x": 1.5, "y": 2.5}, + {"x": 2.5, "y": 2.5}, + {"x": 3.5, "y": 2.5}, + {"x": 4.5, "y": 2.5}, + {"x": 5.5, "y": 2.5}, + {"x": 6.5, "y": 2.5}, + {"x": 7.5, "y": 2.5}, + {"x": 8.5, "y": 2.5}, + {"x": 9.5, "y": 2.5}, + {"x": 10.5, "y": 2.5}, + {"x": 11.5, "y": 2.5}, + {"x": 12.5, "y": 2.5}, + {"x": 13.5, "y": 2.5, "w": 1.5}, + + {"x": 15.5, "y": 2.5}, + + {"x": 0, "y": 3.5, "w": 1.75}, + {"x": 1.75, "y": 3.5}, + {"x": 2.75, "y": 3.5}, + {"x": 3.75, "y": 3.5}, + {"x": 4.75, "y": 3.5}, + {"x": 5.75, "y": 3.5}, + {"x": 6.75, "y": 3.5}, + {"x": 7.75, "y": 3.5}, + {"x": 8.75, "y": 3.5}, + {"x": 9.75, "y": 3.5}, + {"x": 10.75, "y": 3.5}, + {"x": 11.75, "y": 3.5}, + {"x": 12.75, "y": 3.5, "w": 2.25}, + + {"x": 15.5, "y": 3.5}, + + {"x": 0, "y": 4.5, "w": 1.25}, + {"x": 1.25, "y": 4.5}, + {"x": 2.25, "y": 4.5}, + {"x": 3.25, "y": 4.5}, + {"x": 4.25, "y": 4.5}, + {"x": 5.25, "y": 4.5}, + {"x": 6.25, "y": 4.5}, + {"x": 7.25, "y": 4.5}, + {"x": 8.25, "y": 4.5}, + {"x": 9.25, "y": 4.5}, + {"x": 10.25, "y": 4.5}, + {"x": 11.25, "y": 4.5}, + {"x": 12.25, "y": 4.5, "w": 1.75}, + + {"x": 14.25, "y": 4.75}, + + {"x": 15.5, "y": 4.5}, + + {"x": 0, "y": 5.5, "w": 1.25}, + {"x": 1.25, "y": 5.5, "w": 1.25}, + {"x": 2.5, "y": 5.5, "w": 1.25}, + {"x": 3.75, "y": 5.5, "w": 6.25}, + {"x": 10, "y": 5.5}, + {"x": 11, "y": 5.5}, + {"x": 12, "y": 5.5}, + + {"x": 13.25, "y": 5.75}, + {"x": 14.25, "y": 5.75}, + {"x": 15.25, "y": 5.75} + ] + } + } +} diff --git a/keyboards/ghs/rar/keymaps/default/keymap.c b/keyboards/ghs/rar/keymaps/default/keymap.c new file mode 100644 index 000000000000..3c644d4a2047 --- /dev/null +++ b/keyboards/ghs/rar/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2020 Gone Hacking 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 . + */ +#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_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_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_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, + ), + [_FN] = LAYOUT_ansi( + RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, 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_HUI, + KC_NO, KC_NO, 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_SAI, + KC_NO, 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_SAD, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI, RGB_HUD, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, RGB_MOD, RGB_VAD, RGB_RMOD, + ) +}; diff --git a/keyboards/ghs/rar/keymaps/iso/keymap.c b/keyboards/ghs/rar/keymaps/iso/keymap.c new file mode 100644 index 000000000000..661159f0367d --- /dev/null +++ b/keyboards/ghs/rar/keymaps/iso/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2020 Gone Hacking 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 . + */ +#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_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_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_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_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, + ), + [_FN] = LAYOUT_iso( + RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, 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_HUI, + KC_NO, KC_NO, 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_SAI, + KC_NO, 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_SAD, + 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_VAI, RGB_HUD, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, RGB_MOD, RGB_VAD, RGB_RMOD, + ) +}; diff --git a/keyboards/ghs/rar/keymaps/via/keymap.c b/keyboards/ghs/rar/keymaps/via/keymap.c new file mode 100644 index 000000000000..9700fd3bbdc4 --- /dev/null +++ b/keyboards/ghs/rar/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2020 Gone Hacking 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 . + */ +#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_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_NO, 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_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, + ), + [1] = LAYOUT_all( + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_VAD, RGB_RMOD, + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + ) +}; diff --git a/keyboards/ghs/rar/keymaps/via/rules.mk b/keyboards/ghs/rar/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/ghs/rar/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ghs/rar/rar.c b/keyboards/ghs/rar/rar.c new file mode 100644 index 000000000000..72f0654fc1e4 --- /dev/null +++ b/keyboards/ghs/rar/rar.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Gone Hacking 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 . + */ + +#include "rar.h" diff --git a/keyboards/ghs/rar/rar.h b/keyboards/ghs/rar/rar.h new file mode 100644 index 000000000000..fc68f85bd4b5 --- /dev/null +++ b/keyboards/ghs/rar/rar.h @@ -0,0 +1,145 @@ +/* Copyright 2020 Gone Hacking 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 + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define XXX KC_NO + +#define LAYOUT_ansi( \ + k00, k01, k11, k02, k12, k03, k13, k04, k14, k15, k06, k16, k07, k17, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k37, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k56, k47, k57, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k76, k77, \ + k80, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k87, k97, \ + ka0, kb0, ka1, ka3, ka5, ka6, kb6, ka7, kb7 \ +) \ +{ \ + { k00, k01, k02, k03, k04, XXX, k06, k07 }, \ + { XXX, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, k44, k45, XXX, k47 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57 }, \ + { k60, k61, k62, k63, k64, k65, XXX, XXX }, \ + { k70, k71, k72, k73, k74, k75, k76, k77 }, \ + { k80, k81, k82, k83, k84, k85, k86, k87 }, \ + { XXX, k91, k92, k93, k94, k95, XXX, k97 }, \ + { ka0, ka1, XXX, ka3, XXX, ka5, ka6, ka7 }, \ + { kb0, XXX, XXX, XXX, XXX, XXX, kb6, kb7 }, \ +} + +#define LAYOUT_ansi_wkl( \ + k00, k01, k11, k02, k12, k03, k13, k04, k14, k15, k06, k16, k07, k17, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k37, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k56, k47, k57, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k76, k77, \ + k80, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k87, k97, \ + ka0, kb0, ka3, ka5, ka6, kb6, ka7, kb7 \ +) \ +{ \ + { k00, k01, k02, k03, k04, XXX, k06, k07 }, \ + { XXX, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, k44, k45, XXX, k47 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57 }, \ + { k60, k61, k62, k63, k64, k65, XXX, XXX }, \ + { k70, k71, k72, k73, k74, k75, k76, k77 }, \ + { k80, k81, k82, k83, k84, k85, k86, k87 }, \ + { XXX, k91, k92, k93, k94, k95, XXX, k97 }, \ + { ka0, XXX, XXX, ka3, XXX, ka5, ka6, ka7 }, \ + { kb0, XXX, XXX, XXX, XXX, XXX, kb6, kb7 }, \ +} + +#define LAYOUT_iso( \ + k00, k01, k11, k02, k12, k03, k13, k04, k14, k15, k06, k16, k07, k17, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k37, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k56, k47, k57, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k76, k77, \ + k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k87, k97, \ + ka0, kb0, ka1, ka3, ka5, ka6, kb6, ka7, kb7 \ +) \ +{ \ + { k00, k01, k02, k03, k04, XXX, k06, k07 }, \ + { XXX, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, k44, k45, XXX, k47 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57 }, \ + { k60, k61, k62, k63, k64, k65, XXX, XXX }, \ + { k70, k71, k72, k73, k74, k75, k76, k77 }, \ + { k80, k81, k82, k83, k84, k85, k86, k87 }, \ + { k90, k91, k92, k93, k94, k95, XXX, k97 }, \ + { ka0, ka1, XXX, ka3, XXX, ka5, ka6, ka7 }, \ + { kb0, XXX, XXX, XXX, XXX, XXX, kb6, kb7 }, \ +} + +#define LAYOUT_iso_wkl( \ + k00, k01, k11, k02, k12, k03, k13, k04, k14, k15, k06, k16, k07, k17, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k37, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k56, k47, k57, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k76, k77, \ + k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k87, k97, \ + ka0, kb0, ka3, ka5, ka6, kb6, ka7, kb7 \ +) \ +{ \ + { k00, k01, k02, k03, k04, XXX, k06, k07 }, \ + { XXX, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, k44, k45, XXX, k47 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57 }, \ + { k60, k61, k62, k63, k64, k65, XXX, XXX }, \ + { k70, k71, k72, k73, k74, k75, k76, k77 }, \ + { k80, k81, k82, k83, k84, k85, k86, k87 }, \ + { k90, k91, k92, k93, k94, k95, XXX, k97 }, \ + { ka0, XXX, XXX, ka3, XXX, ka5, ka6, ka7 }, \ + { kb0, XXX, XXX, XXX, XXX, XXX, kb6, kb7 }, \ +} + +#define LAYOUT_all( \ + k00, k01, k11, k02, k12, k03, k13, k04, k14, k15, k06, k16, k07, k17, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, k37, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k56, k47, k57, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k76, k77, \ + k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k87, k97, \ + ka0, kb0, ka1, ka3, ka5, kb5, ka6, kb6, ka7, kb7 \ +) \ +{ \ + { k00, k01, k02, k03, k04, XXX, k06, k07 }, \ + { XXX, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, k44, k45, XXX, k47 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57 }, \ + { k60, k61, k62, k63, k64, k65, XXX, XXX }, \ + { k70, k71, k72, k73, k74, k75, k76, k77 }, \ + { k80, k81, k82, k83, k84, k85, k86, k87 }, \ + { k90, k91, k92, k93, k94, k95, XXX, k97 }, \ + { ka0, ka1, XXX, ka3, XXX, ka5, ka6, ka7 }, \ + { kb0, XXX, XXX, XXX, XXX, kb5, kb6, kb7 }, \ +} diff --git a/keyboards/ghs/rar/readme.md b/keyboards/ghs/rar/readme.md new file mode 100644 index 000000000000..cb08e9334a13 --- /dev/null +++ b/keyboards/ghs/rar/readme.md @@ -0,0 +1,15 @@ +# GHS.RAR + +![GHS.RAR](https://i.imgur.com/5n893ul.jpg) + +A seamless screwless 75% keyboard. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32u4 +* Hardware Availability: [Gone Hacking Studio](https://gonehacking.studio) + +Make example for this keyboard (after setting up your build environment): + + make ghs/rar: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/ghs/rar/rules.mk b/keyboards/ghs/rar/rules.mk new file mode 100644 index 000000000000..c291ba802782 --- /dev/null +++ b/keyboards/ghs/rar/rules.mk @@ -0,0 +1,31 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From 092849622017fcd32c1b3e4708030b1cf2fd6ade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20G=C3=A9rard?= <1322081+GreatWizard@users.noreply.github.com> Date: Sun, 28 Jun 2020 19:45:16 +0200 Subject: [PATCH 105/154] [Keyboard] Refactor JJ50 keyboard mapping to current standard (#9415) --- keyboards/jj50/README.md | 10 +- keyboards/jj50/config.h | 13 +- keyboards/jj50/jj50.h | 8 +- keyboards/jj50/keymaps/default/README.md | 117 ++++++++++++ keyboards/jj50/keymaps/default/keymap.c | 222 +++++++++++++++-------- keyboards/jj50/rules.mk | 25 ++- keyboards/readme.md | 1 + 7 files changed, 292 insertions(+), 104 deletions(-) create mode 100644 keyboards/jj50/keymaps/default/README.md diff --git a/keyboards/jj50/README.md b/keyboards/jj50/README.md index 2d3e711becc9..9719f01ecac1 100644 --- a/keyboards/jj50/README.md +++ b/keyboards/jj50/README.md @@ -1,10 +1,12 @@ # JJ50 -A preonic-like board +![JJ50 + SA Vilebloom (w/ Sakurios) by u/rendleshift](https://i.imgur.com/SwYZ4wol.jpg) -* Keyboard Maintainer: [Wayne K. Jones](github.com/WarmCatUK) -* Hardware Supported: JJ50 with the ATmega32a chip. -* Hardware Availability: [KPrepublic on AliExpress](https://www.aliexpress.com/item/jj50-v1-0-Custom-Mechanical-Keyboard-50-PCB-programmed-50-preonic-layouts-bface-firmware-with-rgb/32848915277.html) +A compact 50% (5x12) ortholinear keyboard made and sold by KPrepublic. + +* Keyboard Maintainer: [QMK Community](https://github.com/qmk) +* Hardware Supported: Atmega32A +* Hardware Availability: [AliExpress](https://www.aliexpress.com/item/jj50-v1-0-Custom-Mechanical-Keyboard-50-PCB-programmed-50-preonic-layouts-bface-firmware-with-rgb/32848915277.html); [KPrepublic](https://kprepublic.com/collections/jj50-50/products/jj50-50-custom-keyboard-pcb-similar-with-preonic) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/jj50/config.h b/keyboards/jj50/config.h index 8453f55880f7..a1840919ee41 100644 --- a/keyboards/jj50/config.h +++ b/keyboards/jj50/config.h @@ -2,6 +2,7 @@ Base Copyright 2017 Luiz Ribeiro Modified 2017 Andrew Novak Modified 2018 Wayne Jones (WarmCatUK) +Modified 2020 Guillaume Gérard This 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 +18,16 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D +#define VENDOR_ID 0x4B50 // "KP" +#define PRODUCT_ID 0x0050 #define DEVICE_VER 0x0200 #define MANUFACTURER KPrepublic #define PRODUCT JJ50 -#define DESCRIPTION Preonic-like clone +#define DESCRIPTION A compact 50% (5x12) ortholinear keyboard /* matrix size */ #define MATRIX_ROWS 5 @@ -38,6 +38,7 @@ along with this program. If not, see . #define BACKLIGHT_PIN D4 #define BACKLIGHT_LEVELS 12 +#define BACKLIGHT_BREATHING #define RGB_DI_PIN E2 #define RGBLED_NUM 12 @@ -45,5 +46,3 @@ along with this program. If not, see . #define RGBLIGHT_HUE_STEP 12 #define RGBLIGHT_SAT_STEP 15 #define RGBLIGHT_VAL_STEP 18 - -#endif diff --git a/keyboards/jj50/jj50.h b/keyboards/jj50/jj50.h index 6b1c7eacf3bb..59d5c6409731 100644 --- a/keyboards/jj50/jj50.h +++ b/keyboards/jj50/jj50.h @@ -17,13 +17,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef KEYMAP_COMMON_H -#define KEYMAP_COMMON_H +#pragma once #include "quantum.h" -#include "quantum_keycodes.h" -#include "keycode.h" -#include "action.h" #define LAYOUT_ortho_5x12( \ K011, K010, K009, K008, K004, K005, K006, K007, K003, K002, K201, K000, \ @@ -40,5 +36,3 @@ along with this program. If not, see . } #define LAYOUT LAYOUT_ortho_5x12 - -#endif diff --git a/keyboards/jj50/keymaps/default/README.md b/keyboards/jj50/keymaps/default/README.md new file mode 100644 index 000000000000..49622dd2957b --- /dev/null +++ b/keyboards/jj50/keymaps/default/README.md @@ -0,0 +1,117 @@ +# JJ50 default keymaps + +## Base layers + +### 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 | +|------+------+------+------+------+------+------+------+------+------+------+------| +| FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` + +### 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 | +|------+------+------+------+------+------+------+------+------+------+------+------| +| FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` + +### 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 | +|------+------+------+------+------+------+------+------+------+------+------+------| +| FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` + +## Momentarily Layers + +### Lower + +``` +,-----------------------------------------------------------------------------------. +| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | +|------+------+------+------+------+-------------+------+------+------+------+------| +| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | +|------+------+------+------+------+------|------+------+------+------+------+------| +| | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | Next | Vol- | Vol+ | Play | +`-----------------------------------------------------------------------------------' +``` + +### 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 / |PageUp|PageDn| | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | Next | Vol- | Vol+ | Play | +`-----------------------------------------------------------------------------------' +``` + +### Adjust (Lower + Raise) + +``` +,-----------------------------------------------------------------------------------. +| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | Reset| | | | | | | | | | Del | +|------+------+------+------+------+-------------+------+------+------+------+------| +| | | | | | | |Qwerty|Colemk|Dvorak| | | +|------+------+------+------+------+------|------+------+------+------+------+------| +| | | | | | | | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | | | | +`-----------------------------------------------------------------------------------' +``` + +### Fn (rgblight and backlight layout) + +``` +,-----------------------------------------------------------------------------------. +| | | | | | | | | | | | | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | |RGBVA-|RGBVA+| | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | | |RGBSA-|RGBSA+| | +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD| +|------+------+------+------+------+------+------+------+------+------+------+------| +| | | | | | | |BLTOGG| BL- | BL+ |BLBRTG| +`-----------------------------------------------------------------------------------' +``` diff --git a/keyboards/jj50/keymaps/default/keymap.c b/keyboards/jj50/keymaps/default/keymap.c index d5334d4956b9..29db0e265f58 100644 --- a/keyboards/jj50/keymaps/default/keymap.c +++ b/keyboards/jj50/keymaps/default/keymap.c @@ -1,7 +1,5 @@ /* -Base Copyright 2017 Luiz Ribeiro -Modified 2017 Andrew Novak -Modified 2018 Wayne Jones (WarmCatUK) +Copyright 2020 Guillaume Gérard This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,117 +17,197 @@ along with this program. If not, see . #include QMK_KEYBOARD_H -#define ______ KC_TRNS -#define _DEFLT 0 -#define _RAISE 1 -#define _LOWER 2 -#define _FN 3 - -enum custom_keycodes { - P_MACRO = SAFE_RANGE +enum layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST, + _FN }; -// GBP £ Macro (sends alt 156 - windows users only) -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch(keycode) { - case P_MACRO: - SEND_STRING(SS_DOWN(X_LALT)); - SEND_STRING(SS_TAP(X_KP_1)); - SEND_STRING(SS_TAP(X_KP_5)); - SEND_STRING(SS_TAP(X_KP_6)); - SEND_STRING(SS_UP(X_LALT)); - return false; break; - } - } - return true; +enum keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK }; +#define FN MO(_FN) +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. - * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * | 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 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | (Hold for shift / tap for enter) - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | _FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ - [_DEFLT] = LAYOUT( \ - KC_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_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, SFT_T(KC_ENT),\ - MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER),KC_SPC,KC_SPC,MO(_RAISE),KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + [_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_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, + FN, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - /* Raise + /* Colemak * ,-----------------------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * | 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 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | [ | ] | \ | + * | FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_COLEMAK] = 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_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, + FN, 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 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | |ISO # |ISO / | PUP | PDN | | + * | 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 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | + * | FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ - - [_RAISE] = 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_DEL, \ - RESET, BL_INC, RGB_SAI, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, \ - _______, BL_DEC, _______, _______, _______, _______, _______, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \ - RGB_TOG, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + [_DVORAK] = 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_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, + FN, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Lower * ,-----------------------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | 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( + 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 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | |ISO ~ |ISO | | HOM | END | | + * | ` | 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 / |PageUp|PageDn| | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ - - [_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_F12, \ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ - RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR, KC_PIPE, \ - _______, _______, _______, _______, _______, _______, _______,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, \ - BL_STEP, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + [_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_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 ), - /* Fn + /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. - * | | | £ | | | | | | | | | | + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_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, + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Fn (rgblight and backlight layout) + * ,-----------------------------------------------------------------------------------. * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | + * | | | | | | | | | |RGBVA-|RGBVA+| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | |RGBSA-|RGBSA+| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | |BL_OFF|BL_DEC|BL_INC|BL_ON | + * | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG| * `-----------------------------------------------------------------------------------' */ - [_FN] = LAYOUT( \ - _______, _______, P_MACRO, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, BL_OFF, BL_DEC, BL_INC, BL_ON \ + [_FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_HUI, RGB_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, BL_BRTG ) }; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +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; + } + return true; +}; diff --git a/keyboards/jj50/rules.mk b/keyboards/jj50/rules.mk index 73be71d35efd..8f78a7674691 100644 --- a/keyboards/jj50/rules.mk +++ b/keyboards/jj50/rules.mk @@ -12,19 +12,16 @@ MCU = atmega32a BOOTLOADER = bootloadHID # build options -BOOTMAGIC_ENABLE = yes -MOUSEKEY_ENABLE = no -EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = no -COMMAND_ENABLE = yes -BACKLIGHT_ENABLE = yes -RGBLIGHT_ENABLE = yes -WS2812_DRIVER = i2c -NKRO_ENABLE = no -# Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work - -KEY_LOCK_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 +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality +WS2812_DRIVER = i2c # This driver powers the RGB Lighting and RGB Matrix features +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +LTO_ENABLE = yes # Enable link time optimization LAYOUTS = ortho_5x12 diff --git a/keyboards/readme.md b/keyboards/readme.md index db2a18cc9322..30f856847d22 100644 --- a/keyboards/readme.md +++ b/keyboards/readme.md @@ -45,6 +45,7 @@ These keyboards are part of the QMK repository, but their manufacturers are not * [Infinity 60%](/keyboards/infinity60) - — Compact community keyboard by Input Club. * [JD45](/keyboards/jd45) — Another Geekhack community project, designed by jdcarpe. * [JJ40](/keyboards/jj40) — ps2avrGB based ortholinear sold by KPrepublic +* [JJ50](/keyboards/jj50) — A compact 50% (5x12) ortholinear keyboard sold by KPrepublic. * [KBD75](/keyboards/kbd75) — A 75% keyboard made by made by KBDFans. * [KC60](/keyboards/kc60) — A programmable Chinese-made keyboard, lost in the mists of time. * [Kinesis Advantage](/keyboards/kinesis) — Contoured ergonomic keyboard by Kinesis Computer Ergonomics. From b215bc3aba9bb5feb7edfc7166afdc30cb1a0b1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20G=C3=A9rard?= <1322081+GreatWizard@users.noreply.github.com> Date: Sun, 28 Jun 2020 23:47:33 +0200 Subject: [PATCH 106/154] Add workman layout in JJ50 default keymap (#9574) --- keyboards/jj50/keymaps/default/README.md | 26 ++++++++++--- keyboards/jj50/keymaps/default/keymap.c | 48 +++++++++++++++++++----- 2 files changed, 59 insertions(+), 15 deletions(-) diff --git a/keyboards/jj50/keymaps/default/README.md b/keyboards/jj50/keymaps/default/README.md index 49622dd2957b..15a480ae1140 100644 --- a/keyboards/jj50/keymaps/default/README.md +++ b/keyboards/jj50/keymaps/default/README.md @@ -18,6 +18,22 @@ `-----------------------------------------------------------------------------------' ``` +### Workman + +``` +,-----------------------------------------------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Tab | Q | D | R | W | B | J | F | U | P | ; | Del | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Esc | A | S | H | T | G | Y | N | E | O | I | ' | +|------+------+------+------+------+------|------+------+------+------+------+------| +| Shift| Z | X | M | C | V | K | L | , | . | / |Enter | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` + ### Colemak ``` @@ -56,9 +72,9 @@ ``` ,-----------------------------------------------------------------------------------. -| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | +| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | |------+------+------+------+------+-------------+------+------+------+------+------| -| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | +| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | |------+------+------+------+------+-------------+------+------+------+------+------| | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | |------+------+------+------+------+------|------+------+------+------+------+------| @@ -72,9 +88,9 @@ ``` ,-----------------------------------------------------------------------------------. -| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | +| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | |------+------+------+------+------+------+------+------+------+------+------+------| -| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | +| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | |------+------+------+------+------+-------------+------+------+------+------+------| | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | |------+------+------+------+------+------|------+------+------+------+------+------| @@ -92,7 +108,7 @@ |------+------+------+------+------+------+------+------+------+------+------+------| | | Reset| | | | | | | | | | Del | |------+------+------+------+------+-------------+------+------+------+------+------| -| | | | | | | |Qwerty|Colemk|Dvorak| | | +|CPSLCK| | | | | | |Qwerty|Workmn|Colemk|Dvorak| | |------+------+------+------+------+------|------+------+------+------+------+------| | | | | | | | | | | | | | |------+------+------+------+------+------+------+------+------+------+------+------| diff --git a/keyboards/jj50/keymaps/default/keymap.c b/keyboards/jj50/keymaps/default/keymap.c index 29db0e265f58..96a308f82a5c 100644 --- a/keyboards/jj50/keymaps/default/keymap.c +++ b/keyboards/jj50/keymaps/default/keymap.c @@ -19,6 +19,7 @@ along with this program. If not, see . enum layers { _QWERTY, + _WORKMAN, _COLEMAK, _DVORAK, _LOWER, @@ -29,6 +30,7 @@ enum layers { enum keycodes { QWERTY = SAFE_RANGE, + WORKMAN, COLEMAK, DVORAK }; @@ -60,6 +62,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { FN, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), + /* Workman + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | D | R | W | B | J | F | U | P | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_WORKMAN] = 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_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_DEL, + KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + FN, 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 | @@ -104,9 +127,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Lower * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -116,8 +139,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + 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_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 @@ -125,9 +148,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Raise * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -137,8 +160,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_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_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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + 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_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 @@ -150,7 +173,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | |Qwerty|Colemk|Dvorak| | | + * |CPSLCK| | | | | | |Qwerty|Workmn|Colemk|Dvorak| | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -160,7 +183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, QWERTY, WORKMAN, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -198,6 +221,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { set_single_persistent_default_layer(_QWERTY); } return false; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; case COLEMAK: if (record->event.pressed) { set_single_persistent_default_layer(_COLEMAK); From 51509ec07bb6e442301c5a0b07638cd52ff89e38 Mon Sep 17 00:00:00 2001 From: mcginnisa Date: Sun, 28 Jun 2020 15:26:33 -0700 Subject: [PATCH 107/154] Add DZ60 keymap lint_kid (#9477) * adding dz60 layout lint_kid * adding dz60 layout lint_kid, removed readme * removing wrong commented layout from dz60 lint_kid layout * added readme * Apply suggestions from code review Co-authored-by: Joel Challis Co-authored-by: Joel Challis --- keyboards/dz60/keymaps/lint_kid/config.h | 3 ++ keyboards/dz60/keymaps/lint_kid/keymap.c | 56 +++++++++++++++++++++++ keyboards/dz60/keymaps/lint_kid/readme.md | 11 +++++ 3 files changed, 70 insertions(+) create mode 100644 keyboards/dz60/keymaps/lint_kid/config.h create mode 100644 keyboards/dz60/keymaps/lint_kid/keymap.c create mode 100644 keyboards/dz60/keymaps/lint_kid/readme.md diff --git a/keyboards/dz60/keymaps/lint_kid/config.h b/keyboards/dz60/keymaps/lint_kid/config.h new file mode 100644 index 000000000000..090dcf747155 --- /dev/null +++ b/keyboards/dz60/keymaps/lint_kid/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define GRAVE_ESC_GUI_OVERRIDE // Always send Escape if GUI is pressed diff --git a/keyboards/dz60/keymaps/lint_kid/keymap.c b/keyboards/dz60/keymaps/lint_kid/keymap.c new file mode 100644 index 000000000000..5134836a261d --- /dev/null +++ b/keyboards/dz60/keymaps/lint_kid/keymap.c @@ -0,0 +1,56 @@ +#include QMK_KEYBOARD_H +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // layer 0 + 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_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, 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_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(5,KC_SPC), LT(5,KC_SPC), LT(5,KC_SPC), LT(3,KC_LEFT), KC_DOWN, _______, KC_UP, KC_RIGHT + ), + + // layer 1 toggle hardware caps layer + LAYOUT_directional( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + LT(4,KC_ENT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + //layer 2 toggle space layer + LAYOUT_directional( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_SPC, KC_SPC, KC_SPC, _______, _______, _______, _______, _______ + ), + + // layer 3 FN + 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, _______, RESET, + KC_TILD, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + TG(1), BL_TOGG, BL_STEP, BL_INC, BL_DEC, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, TG(2), TG(2), TG(2), _______, _______, _______, _______, _______ + ), + + // layer 4 caps + 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_TILD, KC_DEL, KC_UP,LSFT(LCTL(KC_TAB)), LCTL(KC_TAB), _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_W), _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LPRN, KC_RPRN, KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_BSPC, KC_BSPC, KC_BSPC, _______, _______, _______, _______, _______ + ), + + // layer 5 space + 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_TILD, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, KC_PIPE, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/dz60/keymaps/lint_kid/readme.md b/keyboards/dz60/keymaps/lint_kid/readme.md new file mode 100644 index 000000000000..265668016d52 --- /dev/null +++ b/keyboards/dz60/keymaps/lint_kid/readme.md @@ -0,0 +1,11 @@ +# DZ60 + +![DZ60](https://i.imgur.com/8eeYOzU.jpg) + +https://kbdfans.com/products/dz60-60-pcb + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb dz60 -km lint_kid + +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 2c0201e80f7d1e477440c3a0cfcb9b90575a002a Mon Sep 17 00:00:00 2001 From: AlisGraveNil <63020540+AlisGraveNil@users.noreply.github.com> Date: Sun, 28 Jun 2020 21:37:47 -0400 Subject: [PATCH 108/154] [Keyboard] Coupe and Sedan keyboards (#9539) * Initial upload - sedan and coupe keyboards * Update coupe.h * Update coupe.h * Update coupe.h * Update sedan.h * Update keyboards/clawsome/coupe/readme.md * Update keyboards/clawsome/sedan/config.h * Update keyboards/clawsome/sedan/config.h * Update keyboards/clawsome/coupe/config.h * Update keyboards/clawsome/sedan/readme.md * Update keyboards/clawsome/sedan/info.json * Update keyboards/clawsome/sedan/readme.md * Update keyboards/clawsome/coupe/readme.md * Update keyboards/clawsome/coupe/info.json * Update keyboards/clawsome/coupe/coupe.h * Update keyboards/clawsome/coupe/info.json * Update keyboards/clawsome/coupe/info.json * Update keyboards/clawsome/coupe/keymaps/default/keymap.c * Update keyboards/clawsome/sedan/info.json * Update keyboards/clawsome/sedan/sedan.h * Update keyboards/clawsome/sedan/rules.mk * Update keyboards/clawsome/sedan/sedan.h * Update keyboards/clawsome/sedan/keymap/default/keymap.c * Update keyboards/clawsome/sedan/keymap/default/keymap.c * Update keyboards/clawsome/coupe/rules.mk * Update keyboards/clawsome/sedan/info.json * Update keyboards/clawsome/sedan/info.json * Rename keymap.c to keymaps.c * Rename keymap.c to keymaps.c * folder name updated * updated keymaps * remove erroneously added files * extend keymap functionality * Update config.h * Update config.h * added URL on line #3 for image of Coupe * Added URL to line #3 * Update keyboards/clawsome/sedan/readme.md * Update keyboards/clawsome/coupe/readme.md --- keyboards/clawsome/coupe/config.h | 47 +++++++++++ keyboards/clawsome/coupe/coupe.c | 16 ++++ keyboards/clawsome/coupe/coupe.h | 37 +++++++++ keyboards/clawsome/coupe/info.json | 74 +++++++++++++++++ .../clawsome/coupe/keymaps/default/keymap.c | 63 +++++++++++++++ keyboards/clawsome/coupe/readme.md | 15 ++++ keyboards/clawsome/coupe/rules.mk | 27 +++++++ keyboards/clawsome/sedan/config.h | 47 +++++++++++ keyboards/clawsome/sedan/info.json | 81 +++++++++++++++++++ .../clawsome/sedan/keymaps/default/keymap.c | 61 ++++++++++++++ keyboards/clawsome/sedan/readme.md | 15 ++++ keyboards/clawsome/sedan/rules.mk | 27 +++++++ keyboards/clawsome/sedan/sedan.c | 16 ++++ keyboards/clawsome/sedan/sedan.h | 32 ++++++++ 14 files changed, 558 insertions(+) create mode 100644 keyboards/clawsome/coupe/config.h create mode 100644 keyboards/clawsome/coupe/coupe.c create mode 100644 keyboards/clawsome/coupe/coupe.h create mode 100644 keyboards/clawsome/coupe/info.json create mode 100644 keyboards/clawsome/coupe/keymaps/default/keymap.c create mode 100644 keyboards/clawsome/coupe/readme.md create mode 100644 keyboards/clawsome/coupe/rules.mk create mode 100644 keyboards/clawsome/sedan/config.h create mode 100644 keyboards/clawsome/sedan/info.json create mode 100644 keyboards/clawsome/sedan/keymaps/default/keymap.c create mode 100644 keyboards/clawsome/sedan/readme.md create mode 100644 keyboards/clawsome/sedan/rules.mk create mode 100644 keyboards/clawsome/sedan/sedan.c create mode 100644 keyboards/clawsome/sedan/sedan.h diff --git a/keyboards/clawsome/coupe/config.h b/keyboards/clawsome/coupe/config.h new file mode 100644 index 000000000000..381f5cdc2b38 --- /dev/null +++ b/keyboards/clawsome/coupe/config.h @@ -0,0 +1,47 @@ +/* +Copyright 2020 AAClawson (AlisGraveNil) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7767 +#define PRODUCT_ID 0x7E94 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AlisGraveNil +#define PRODUCT The Coupe +#define DESCRIPTION A 61-key/60% QMK-powered custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +/* + * 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) + * + */ +#define MATRIX_ROW_PINS { D7, D2, C6, B5, D4, B4, D0, D3, D1, E6 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B6, B3, B2 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/clawsome/coupe/coupe.c b/keyboards/clawsome/coupe/coupe.c new file mode 100644 index 000000000000..80aca53943e3 --- /dev/null +++ b/keyboards/clawsome/coupe/coupe.c @@ -0,0 +1,16 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "coupe.h" \ No newline at end of file diff --git a/keyboards/clawsome/coupe/coupe.h b/keyboards/clawsome/coupe/coupe.h new file mode 100644 index 000000000000..360dbb24f291 --- /dev/null +++ b/keyboards/clawsome/coupe/coupe.h @@ -0,0 +1,37 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 LAYOUT_60_ansi( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K56, \ + K60, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \ + K80, K90, K81, K83, K85, K95, K86, K96 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06 }, \ + { K10, K11, K12, K13, K14, K15, K16 }, \ + { K20, K21, K22, K23, K24, K25, K26 }, \ + { K30, K31, K32, K33, K34, K35, K36 }, \ + { K40, K41, K42, K43, K44, K45, KC_NO }, \ + { K50, K51, K52, K53, K54, K55, K56 }, \ + { K60, K61, K62, K63, K64, K65, KC_NO }, \ + { KC_NO, K71, K72, K73, K74, K75, K76 }, \ + { K80, K81, KC_NO, K83, KC_NO, K85, K86 }, \ + { K90, KC_NO, KC_NO, KC_NO, KC_NO, K95, K96 }, \ +} diff --git a/keyboards/clawsome/coupe/info.json b/keyboards/clawsome/coupe/info.json new file mode 100644 index 000000000000..6c930922a5cf --- /dev/null +++ b/keyboards/clawsome/coupe/info.json @@ -0,0 +1,74 @@ +{ + "keyboard_name": "Coupe", + "url": "www.clawboards.xyz", + "maintainer": "AAClawson (AlisGraveNil)", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"label":"K00 (D7,F4)", "x":0, "y":0}, + {"label":"K10 (D2,F4)", "x":1, "y":0}, + {"label":"K01 (D7,F5)", "x":2, "y":0}, + {"label":"K11 (D2,F5)", "x":3, "y":0}, + {"label":"K02 (D7,F6)", "x":4, "y":0}, + {"label":"K12 (D2,F6)", "x":5, "y":0}, + {"label":"K03 (D7,F7)", "x":6, "y":0}, + {"label":"K13 (D2,F7)", "x":7, "y":0}, + {"label":"K04 (D7,B6)", "x":8, "y":0}, + {"label":"K14 (D2,B6)", "x":9, "y":0}, + {"label":"K05 (D7,B3)", "x":10, "y":0}, + {"label":"K15 (D2,B3)", "x":11, "y":0}, + {"label":"K06 (D7,B2)", "x":12, "y":0}, + {"label":"K16 (D2,B2)", "x":13, "y":0, "w":2}, + {"label":"K20 (C6,F4)", "x":0, "y":1, "w":1.5}, + {"label":"K30 (B5,F4)", "x":1.5, "y":1}, + {"label":"K21 (C6,F5)", "x":2.5, "y":1}, + {"label":"K31 (B5,F5)", "x":3.5, "y":1}, + {"label":"K22 (C6,F6)", "x":4.5, "y":1}, + {"label":"K32 (B5,F6)", "x":5.5, "y":1}, + {"label":"K23 (C6,F7)", "x":6.5, "y":1}, + {"label":"K33 (B5,F7)", "x":7.5, "y":1}, + {"label":"K24 (C6,B6)", "x":8.5, "y":1}, + {"label":"K34 (B5,B6)", "x":9.5, "y":1}, + {"label":"K25 (C6,B3)", "x":10.5, "y":1}, + {"label":"K35 (B5,B3)", "x":11.5, "y":1}, + {"label":"K26 (C6,B2)", "x":12.5, "y":1}, + {"label":"K36 (B5,B2)", "x":13.5, "y":1, "w":1.5}, + {"label":"K40 (D4,F4)", "x":0, "y":2, "w":1.75}, + {"label":"K50 (B4,F4)", "x":1.75, "y":2}, + {"label":"K41 (D4,F5)", "x":2.75, "y":2}, + {"label":"K51 (B4,F5)", "x":3.75, "y":2}, + {"label":"K42 (D4,F6)", "x":4.75, "y":2}, + {"label":"K52 (B4,F6)", "x":5.75, "y":2}, + {"label":"K43 (D4,F7)", "x":6.75, "y":2}, + {"label":"K53 (B4,F7)", "x":7.75, "y":2}, + {"label":"K44 (D4,B6)", "x":8.75, "y":2}, + {"label":"K54 (B4,B6)", "x":9.75, "y":2}, + {"label":"K45 (D4,B3)", "x":10.75, "y":2}, + {"label":"K55 (B4,B3)", "x":11.75, "y":2}, + {"label":"K56 (B4,B2)", "x":12.75, "y":2, "w":2.25}, + {"label":"K60 (D0,F4)", "x":0, "y":3, "w":2.25}, + {"label":"K61 (D0,F5)", "x":2.25, "y":3}, + {"label":"K71 (D3,F5)", "x":3.25, "y":3}, + {"label":"K62 (D0,F6)", "x":4.25, "y":3}, + {"label":"K72 (D3,F6)", "x":5.25, "y":3}, + {"label":"K63 (D0,F7)", "x":6.25, "y":3}, + {"label":"K73 (D3,F7)", "x":7.25, "y":3}, + {"label":"K64 (D0,B6)", "x":8.25, "y":3}, + {"label":"K74 (D3,B6)", "x":9.25, "y":3}, + {"label":"K65 (D0,B3)", "x":10.25, "y":3}, + {"label":"K75 (D3,B3)", "x":11.25, "y":3}, + {"label":"K76 (D3,B2)", "x":12.25, "y":3, "w":2.75}, + {"label":"K80 (D1,F4)", "x":0, "y":4, "w":1.25}, + {"label":"K90 (E6,F4)", "x":1.25, "y":4, "w":1.25}, + {"label":"K81 (D1,F5)", "x":2.5, "y":4, "w":1.25}, + {"label":"K83 (D1,F7)", "x":3.75, "y":4, "w":6.25}, + {"label":"K85 (D1,B3)", "x":10, "y":4, "w":1.25}, + {"label":"K95 (E6,B3)", "x":11.25, "y":4, "w":1.25}, + {"label":"K86 (D1,B2)", "x":12.5, "y":4, "w":1.25}, + {"label":"K96 (E6,B2)", "x":13.75, "y":4, "w":1.25} + ] + } + } +} diff --git a/keyboards/clawsome/coupe/keymaps/default/keymap.c b/keyboards/clawsome/coupe/keymaps/default/keymap.c new file mode 100644 index 000000000000..4c71f0b1810c --- /dev/null +++ b/keyboards/clawsome/coupe/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 FNM LT(1, KC_APP) // MO(1) when held, KC_APP when tapped + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + *----------------------------------------------------------------------- + *|ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | 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 | + *----------------------------------------------------------------------- + *|CTRL|GUI |ALT | SPACE |ALT |GUI | FNM |CTRL| + *----------------------------------------------------------------------- + */ + [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_LSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, FNM, KC_LCTL + ), + + /* + *------------------------------------------------------------- + *| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | DEL | + *------------------------------------------------------------- + *| | | ^ | | | | | | | | |PSC|SLK|PAUSE| + *------------------------------------------------------------- + *| | < | v | > | | |HOM|PGU| | | | | | + *------------------------------------------------------------- + *| | | | | | |END|PGD| | | | + *------------------------------------------------------------- + *|RST | | | | | | | | + *------------------------------------------------------------- + */ + [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_UP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/clawsome/coupe/readme.md b/keyboards/clawsome/coupe/readme.md new file mode 100644 index 000000000000..77d5fc2f0bbb --- /dev/null +++ b/keyboards/clawsome/coupe/readme.md @@ -0,0 +1,15 @@ +# Coupe + +![Coupe](https://images.squarespace-cdn.com/content/v1/5ec961924eb3960db955f752/1591981988950-D64UDSNKPAT91WUA8RNC/ke17ZwdGBToddI8pDm48kDHPSfPanjkWqhH6pl6g5ph7gQa3H78H3Y0txjaiv_0fDoOvxcdMmMKkDsyUqMSsMWxHk725yiiHCCLfrh8O1z4YTzHvnKhyp6Da-NYroOW3ZGjoBKy3azqku80C789l0mwONMR1ELp49Lyc52iWr5dNb1QJw9casjKdtTg1_-y4jz4ptJBmI9gQmbjSQnNGng/Coupe3.jpeg?format=640w) + +This is a 5x14 keyboard in a 60% layout. + +* Keyboard Maintainer: [AAClawson](http://github.com/AlisGraveNil) +* Hardware Supported: The Coupe, Pro Micro, Elite-C +* Hardware Availability: www.clawboards.xyz + +Make example for this keyboard (after setting up your build environment): + + make clawsome/coupe: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/clawsome/coupe/rules.mk b/keyboards/clawsome/coupe/rules.mk new file mode 100644 index 000000000000..d0ec2731c5ef --- /dev/null +++ b/keyboards/clawsome/coupe/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +LAYOUTS = 60_ansi diff --git a/keyboards/clawsome/sedan/config.h b/keyboards/clawsome/sedan/config.h new file mode 100644 index 000000000000..20d58d366e75 --- /dev/null +++ b/keyboards/clawsome/sedan/config.h @@ -0,0 +1,47 @@ +/* +Copyright 2020 AAClawson (AlisGraveNil) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7767 +#define PRODUCT_ID 0x8C78 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AlisGraveNil +#define PRODUCT The Sedan +#define DESCRIPTION A QMK-powered 68% custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * 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) + * + */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4 } +#define MATRIX_COL_PINS { B5, B6, B7, C0, C1, C2, C3, C4, C5, C6, C7, D0, D1, D2, D3 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/clawsome/sedan/info.json b/keyboards/clawsome/sedan/info.json new file mode 100644 index 000000000000..ecf4c7212aa4 --- /dev/null +++ b/keyboards/clawsome/sedan/info.json @@ -0,0 +1,81 @@ +{ + "keyboard_name": "sedan", + "url": "www.clawboards.xyz", + "maintainer": "AAClawson (AlisGraveNil)", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_ansi": { + "layout": [ + {"label":"K00 (B0,B5)", "x":0, "y":0}, + {"label":"K01 (B0,B6)", "x":1, "y":0}, + {"label":"K02 (B0,B7)", "x":2, "y":0}, + {"label":"K03 (B0,C0)", "x":3, "y":0}, + {"label":"K04 (B0,C1)", "x":4, "y":0}, + {"label":"K05 (B0,C2)", "x":5, "y":0}, + {"label":"K06 (B0,C3)", "x":6, "y":0}, + {"label":"K07 (B0,C4)", "x":7, "y":0}, + {"label":"K08 (B0,C5)", "x":8, "y":0}, + {"label":"K09 (B0,C6)", "x":9, "y":0}, + {"label":"K0A (B0,C7)", "x":10, "y":0}, + {"label":"K0B (B0,D0)", "x":11, "y":0}, + {"label":"K0C (B0,D1)", "x":12, "y":0}, + {"label":"K0D (B0,D2)", "x":13, "y":0, "w":2}, + {"label":"K0E (B0,D3)", "x":15, "y":0}, + {"label":"K10 (B1,B5)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (B1,B6)", "x":1.5, "y":1}, + {"label":"K12 (B1,B7)", "x":2.5, "y":1}, + {"label":"K13 (B1,C0)", "x":3.5, "y":1}, + {"label":"K14 (B1,C1)", "x":4.5, "y":1}, + {"label":"K15 (B1,C2)", "x":5.5, "y":1}, + {"label":"K16 (B1,C3)", "x":6.5, "y":1}, + {"label":"K17 (B1,C4)", "x":7.5, "y":1}, + {"label":"K18 (B1,C5)", "x":8.5, "y":1}, + {"label":"K19 (B1,C6)", "x":9.5, "y":1}, + {"label":"K1A (B1,C7)", "x":10.5, "y":1}, + {"label":"K1B (B1,D0)", "x":11.5, "y":1}, + {"label":"K1C (B1,D1)", "x":12.5, "y":1}, + {"label":"K1D (B1,D2)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1E (B1,D3)", "x":15, "y":1}, + {"label":"K20 (B2,B5)", "x":0, "y":2, "w":1.75}, + {"label":"K21 (B2,B6)", "x":1.75, "y":2}, + {"label":"K22 (B2,B7)", "x":2.75, "y":2}, + {"label":"K23 (B2,C0)", "x":3.75, "y":2}, + {"label":"K24 (B2,C1)", "x":4.75, "y":2}, + {"label":"K25 (B2,C2)", "x":5.75, "y":2}, + {"label":"K26 (B2,C3)", "x":6.75, "y":2}, + {"label":"K27 (B2,C4)", "x":7.75, "y":2}, + {"label":"K28 (B2,C5)", "x":8.75, "y":2}, + {"label":"K29 (B2,C6)", "x":9.75, "y":2}, + {"label":"K2A (B2,C7)", "x":10.75, "y":2}, + {"label":"K2B (B2,D0)", "x":11.75, "y":2}, + {"label":"K2D (B2,D2)", "x":12.75, "y":2, "w":2.25}, + {"label":"K2E (B2,D3)", "x":15, "y":2}, + {"label":"K30 (B3,B5)", "x":0, "y":3, "w":2.25}, + {"label":"K31 (B3,B6)", "x":2.25, "y":3}, + {"label":"K32 (B3,B7)", "x":3.25, "y":3}, + {"label":"K33 (B3,C0)", "x":4.25, "y":3}, + {"label":"K34 (B3,C1)", "x":5.25, "y":3}, + {"label":"K35 (B3,C2)", "x":6.25, "y":3}, + {"label":"K36 (B3,C3)", "x":7.25, "y":3}, + {"label":"K37 (B3,C4)", "x":8.25, "y":3}, + {"label":"K38 (B3,C5)", "x":9.25, "y":3}, + {"label":"K39 (B3,C6)", "x":10.25, "y":3}, + {"label":"K3A (B3,C7)", "x":11.25, "y":3}, + {"label":"K3B (B3,D0)", "x":12.25, "y":3, "w":1.75}, + {"label":"K3D (B3,D2)", "x":14, "y":3}, + {"label":"K3E (B3,D3)", "x":15, "y":3}, + {"label":"K40 (B4,B5)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (B4,B6)", "x":1.25, "y":4, "w":1.25}, + {"label":"K42 (B4,B7)", "x":2.5, "y":4, "w":1.25}, + {"label":"K45 (B4,C2)", "x":3.75, "y":4, "w":6.25}, + {"label":"K49 (B4,C6)", "x":10, "y":4}, + {"label":"K4A (B4,C7)", "x":11, "y":4}, + {"label":"K4B (B4,D0)", "x":12, "y":4}, + {"label":"K4C (B4,D1)", "x":13, "y":4}, + {"label":"K4D (B4,D2)", "x":14, "y":4}, + {"label":"K4E (B4,D3)", "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/clawsome/sedan/keymaps/default/keymap.c b/keyboards/clawsome/sedan/keymaps/default/keymap.c new file mode 100644 index 000000000000..099296578978 --- /dev/null +++ b/keyboards/clawsome/sedan/keymaps/default/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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] = { + /* + *--------------------------------------------------------------------------------- + *|ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BSPC |HOME| + *--------------------------------------------------------------------------------- + *| TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |END | + *--------------------------------------------------------------------------------- + *| CAPS | A | S | D | F | G | H | J | K | L | ; | " | ENTER |PGUP| + *--------------------------------------------------------------------------------- + *| SHIFT | Z | X | C | V | B | N | M | , | . | ? | SHIFT | ^ |PGDN| + *--------------------------------------------------------------------------------- + *|CTRL|GUI |ALT | SPACE |ALT | FN |CTRL| < | v | > | + *--------------------------------------------------------------------------------- + */ + [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_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_LSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + *--------------------------------------------------------------------------------- + *| ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 |F10 |F11 |F12 |DEL | | + *--------------------------------------------------------------------------------- + *| | | | | | | | | | | |PSCR|SLCK| PAUSE | | + *--------------------------------------------------------------------------------- + *| | | | | | | | | | | | | | | + *--------------------------------------------------------------------------------- + *| | | | | | | | | | | | | | | + *--------------------------------------------------------------------------------- + *|RST | | | | | | | | | | + *--------------------------------------------------------------------------------- + */ + [1] = 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, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/clawsome/sedan/readme.md b/keyboards/clawsome/sedan/readme.md new file mode 100644 index 000000000000..461db121a89f --- /dev/null +++ b/keyboards/clawsome/sedan/readme.md @@ -0,0 +1,15 @@ +# Sedan + +![Sedan](https://images.squarespace-cdn.com/content/v1/5ec961924eb3960db955f752/1592952281584-LTU6E70P5WIFWPZR56SH/ke17ZwdGBToddI8pDm48kDHPSfPanjkWqhH6pl6g5ph7gQa3H78H3Y0txjaiv_0fDoOvxcdMmMKkDsyUqMSsMWxHk725yiiHCCLfrh8O1z4YTzHvnKhyp6Da-NYroOW3ZGjoBKy3azqku80C789l0mwONMR1ELp49Lyc52iWr5dNb1QJw9casjKdtTg1_-y4jz4ptJBmI9gQmbjSQnNGng/Sedan1.jpeg?format=640w) + +This is a 5x15 keyboard in a 68% layout. + +* Keyboard Maintainer: [AAClawson](http://github.com/AlisGraveNil) +* Hardware Supported: The Sedan, Pro Micro, Elite-C +* Hardware Availability: www.clawboards.xyz + +Make example for this keyboard (after setting up your build environment): + + make clawsome/sedan: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/clawsome/sedan/rules.mk b/keyboards/clawsome/sedan/rules.mk new file mode 100644 index 000000000000..c06c0806fd26 --- /dev/null +++ b/keyboards/clawsome/sedan/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +LAYOUTS = 65_ansi diff --git a/keyboards/clawsome/sedan/sedan.c b/keyboards/clawsome/sedan/sedan.c new file mode 100644 index 000000000000..4977bf697834 --- /dev/null +++ b/keyboards/clawsome/sedan/sedan.c @@ -0,0 +1,16 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "sedan.h" \ No newline at end of file diff --git a/keyboards/clawsome/sedan/sedan.h b/keyboards/clawsome/sedan/sedan.h new file mode 100644 index 000000000000..7af9476676e6 --- /dev/null +++ b/keyboards/clawsome/sedan/sedan.h @@ -0,0 +1,32 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 LAYOUT_65_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D, K4E }, \ +} From 62ceb46e9df0c495a6c24336425cfaaef9ceb26b Mon Sep 17 00:00:00 2001 From: Xyverz Date: Sun, 28 Jun 2020 19:52:23 -0700 Subject: [PATCH 109/154] Fixed MACLOCK key (#9555) --- layouts/community/ortho_4x12/xyverz/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/community/ortho_4x12/xyverz/keymap.c b/layouts/community/ortho_4x12/xyverz/keymap.c index 727ea00806a3..19e0e291e3e9 100644 --- a/layouts/community/ortho_4x12/xyverz/keymap.c +++ b/layouts/community/ortho_4x12/xyverz/keymap.c @@ -120,7 +120,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 , \ _______, RESET, RGB_M_P, RGB_M_B, RGB_M_R, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ RGB_TOG, RGB_MOD, RGB_SWR, RGB_M_K, RGB_M_G, RGB_HUI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, \ - _______, _______, _______, _______, MACLOCK, _______, _______, _______, _______, _______, _______, _______ \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MACLOCK \ ) }; // clang-format on From 7c17b872152ef0055a444eb99f770546b7bc6fec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20G=C3=A9rard?= <1322081+GreatWizard@users.noreply.github.com> Date: Mon, 29 Jun 2020 04:54:50 +0200 Subject: [PATCH 110/154] Fix WORKMAN layer typo in dudeofawesome planck/preonic (#9576) --- keyboards/planck/keymaps/dudeofawesome/keymap.c | 2 +- keyboards/preonic/keymaps/dudeofawesome/keymap.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/planck/keymaps/dudeofawesome/keymap.c b/keyboards/planck/keymaps/dudeofawesome/keymap.c index c28b8dfdd29d..eac7470d257e 100644 --- a/keyboards/planck/keymaps/dudeofawesome/keymap.c +++ b/keyboards/planck/keymaps/dudeofawesome/keymap.c @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Workman * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | R | W | B | J | F | U | P | ; | Bksp | + * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | * |------+------+------+------+------+------|------+------+------+------+------+------| diff --git a/keyboards/preonic/keymaps/dudeofawesome/keymap.c b/keyboards/preonic/keymaps/dudeofawesome/keymap.c index e8b9dc9d0f23..3d1cec74b8d1 100644 --- a/keyboards/preonic/keymaps/dudeofawesome/keymap.c +++ b/keyboards/preonic/keymaps/dudeofawesome/keymap.c @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | Q | W | R | W | B | J | F | U | P | ; | Bksp | + * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | * |------+------+------+------+------+------|------+------+------+------+------+------| From 4e4a3449a731bce9f6893d18d884af365d0df407 Mon Sep 17 00:00:00 2001 From: umi <57262844+umi-umi@users.noreply.github.com> Date: Mon, 29 Jun 2020 16:30:16 +0900 Subject: [PATCH 111/154] [Docs] Japanese translation of docs/compatible_microcontrollers.md (#9518) * add compatible_microcontrollers.md translation * update based on comment * update based on comment --- docs/ja/compatible_microcontrollers.md | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs/ja/compatible_microcontrollers.md diff --git a/docs/ja/compatible_microcontrollers.md b/docs/ja/compatible_microcontrollers.md new file mode 100644 index 000000000000..56f4c0297711 --- /dev/null +++ b/docs/ja/compatible_microcontrollers.md @@ -0,0 +1,42 @@ +# 互換性のあるマイクロコントローラ + + + +QMK は十分な容量のフラッシュメモリを備えた USB 対応 AVR または ARM マイクロコントローラで実行されます - 一般的に 32kB 以上ですが、ほとんどの機能を無効にすると*ほんの* 16kB に詰め込むことができます。 + +## Atmel AVR + +以下は、USB スタックとして [LUFA](https://www.fourwalledcubicle.com/LUFA.php) を使います: + +* [ATmega16U2](https://www.microchip.com/wwwproducts/en/ATmega16U2) / [ATmega32U2](https://www.microchip.com/wwwproducts/en/ATmega32U2) +* [ATmega16U4](https://www.microchip.com/wwwproducts/en/ATmega16U4) / [ATmega32U4](https://www.microchip.com/wwwproducts/en/ATmega32U4) +* [AT90USB64](https://www.microchip.com/wwwproducts/en/AT90USB646) / [AT90USB128](https://www.microchip.com/wwwproducts/en/AT90USB1286) + +組み込みの USB インターフェースを持たない、いくつかの MCU は代わりに [V-USB](https://www.obdev.at/products/vusb/index.html) を使います: + +* [ATmega32A](https://www.microchip.com/wwwproducts/en/ATmega32A) +* [ATmega328P](https://www.microchip.com/wwwproducts/en/ATmega328P) +* [ATmega328](https://www.microchip.com/wwwproducts/en/ATmega328) + +## ARM + +[ChibiOS](http://www.chibios.org) がサポートする USB 付きの ARM チップを使うこともできます。ほとんどのチップには十分な容量のフラッシュメモリがあります。動作するとわかっているのは: + +### STMicroelectronics (STM32) + +* [STM32F0x2](https://www.st.com/en/microcontrollers-microprocessors/stm32f0x2.html) +* [STM32F103](https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html) +* [STM32F303](https://www.st.com/en/microcontrollers-microprocessors/stm32f303.html) + +### NXP (Kinetis) + +* [MKL26Z64](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kl-series-cortex-m0-plus/kinetis-kl2x-72-96-mhz-usb-ultra-low-power-microcontrollers-mcus-based-on-arm-cortex-m0-plus-core:KL2x) +* [MK20DX128](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k2x-usb/kinetis-k20-50-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-based-on-arm-cortex-m4-core:K20_50) +* [MK20DX256](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k2x-usb/kinetis-k20-72-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-mcus-based-on-arm-cortex-m4-core:K20_72) + +## Atmel ATSAM + +Atmel の ATSAM マイクロコントローラの一つである、[Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop) で使用されている [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) には限定的なサポートがあります。 From e9e6054ee7eaca4cbd8d1c7566f394559ea8770a Mon Sep 17 00:00:00 2001 From: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Mon, 29 Jun 2020 15:19:09 +0700 Subject: [PATCH 112/154] [Keyboard] Refactor: add adelais rev.3 (#9496) * Refactor: add adelais rev.3 * update * Update keymap.c * update * update * update --- .../adelais/keymaps/default/keymap.c | 29 ++++++++++++++++++- .../mechlovin/adelais/keymaps/via/keymap.c | 29 ++++++++++++++++++- keyboards/mechlovin/adelais/readme.md | 2 +- keyboards/mechlovin/adelais/rules.mk | 2 +- .../mechlovin/adelais/standard_led/config.h | 1 - .../adelais/standard_led/rev2/config.h | 3 ++ .../adelais/standard_led/rev2/rules.mk | 0 .../adelais/standard_led/rev3/config.h | 8 +++++ .../adelais/standard_led/rev3/rules.mk | 1 + .../mechlovin/adelais/standard_led/rules.mk | 6 ++-- 10 files changed, 73 insertions(+), 8 deletions(-) create mode 100644 keyboards/mechlovin/adelais/standard_led/rev2/config.h create mode 100644 keyboards/mechlovin/adelais/standard_led/rev2/rules.mk create mode 100644 keyboards/mechlovin/adelais/standard_led/rev3/config.h create mode 100644 keyboards/mechlovin/adelais/standard_led/rev3/rules.mk diff --git a/keyboards/mechlovin/adelais/keymaps/default/keymap.c b/keyboards/mechlovin/adelais/keymaps/default/keymap.c index 7848a5709bcf..19c298d4a4c4 100644 --- a/keyboards/mechlovin/adelais/keymaps/default/keymap.c +++ b/keyboards/mechlovin/adelais/keymaps/default/keymap.c @@ -29,4 +29,31 @@ 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 ), -}; \ No newline at end of file +}; + +#ifdef ENCODER_ENABLE +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + else if (index == 1) { + if (clockwise) { + tap_code(KC_LEFT); + } else { + tap_code(KC_RGHT); + } + } + else if (index == 2) { + if (clockwise) { + tap_code(KC_UP); + } else { + tap_code(KC_DOWN); + } + } +} + + #endif \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/keymaps/via/keymap.c b/keyboards/mechlovin/adelais/keymaps/via/keymap.c index 03636d02b30b..d44a4e93829f 100644 --- a/keyboards/mechlovin/adelais/keymaps/via/keymap.c +++ b/keyboards/mechlovin/adelais/keymaps/via/keymap.c @@ -41,4 +41,31 @@ 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 ), -}; \ No newline at end of file +}; + +#ifdef ENCODER_ENABLE +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + else if (index == 1) { + if (clockwise) { + tap_code(KC_LEFT); + } else { + tap_code(KC_RGHT); + } + } + else if (index == 2) { + if (clockwise) { + tap_code(KC_UP); + } else { + tap_code(KC_DOWN); + } + } +} + + #endif \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/readme.md b/keyboards/mechlovin/adelais/readme.md index 947d5a31d982..f8b3b47ffb8a 100644 --- a/keyboards/mechlovin/adelais/readme.md +++ b/keyboards/mechlovin/adelais/readme.md @@ -3,7 +3,7 @@ ![adelais](https://i.imgur.com/6U1IfZe.png) Compatible with TGR Alice and all clone variants. -`standard_led` (Adelais) comes with backlight and RGB underglow LEDs pre-soldered. +`standard_led` (Adelais) comes with backlight and RGB underglow LEDs pre-soldered. Adelais rev.3 support 3 rotary encoder, USB TypeC both side and reset button. `rgb_led` (Adelais En Ciel) comes with per-key RGB LEDs pre-soldered. * Keyboard Maintainer: [Team Mechlovin'](https://github.com/mechlovin) diff --git a/keyboards/mechlovin/adelais/rules.mk b/keyboards/mechlovin/adelais/rules.mk index 91f87e5f39cd..75b9b6d282d0 100644 --- a/keyboards/mechlovin/adelais/rules.mk +++ b/keyboards/mechlovin/adelais/rules.mk @@ -20,4 +20,4 @@ AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs -DEFAULT_FOLDER = mechlovin/adelais/standard_led \ No newline at end of file +DEFAULT_FOLDER = mechlovin/adelais/standard_led/rev2 \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/standard_led/config.h b/keyboards/mechlovin/adelais/standard_led/config.h index 0de6cc6b408b..6a008e2f3c38 100644 --- a/keyboards/mechlovin/adelais/standard_led/config.h +++ b/keyboards/mechlovin/adelais/standard_led/config.h @@ -1,6 +1,5 @@ #pragma once -#define PRODUCT_ID 0xAD01 #define PRODUCT Adelais #define DESCRIPTION Team.Mechlovin Adelais diff --git a/keyboards/mechlovin/adelais/standard_led/rev2/config.h b/keyboards/mechlovin/adelais/standard_led/rev2/config.h new file mode 100644 index 000000000000..7c2c63ea21c6 --- /dev/null +++ b/keyboards/mechlovin/adelais/standard_led/rev2/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define PRODUCT_ID 0xAD01 \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/standard_led/rev2/rules.mk b/keyboards/mechlovin/adelais/standard_led/rev2/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/mechlovin/adelais/standard_led/rev3/config.h b/keyboards/mechlovin/adelais/standard_led/rev3/config.h new file mode 100644 index 000000000000..60e288296af4 --- /dev/null +++ b/keyboards/mechlovin/adelais/standard_led/rev3/config.h @@ -0,0 +1,8 @@ +#pragma once + +#define PRODUCT_ID 0xAD02 + +#define ENCODERS_PAD_A { A6, A4, B7 } +#define ENCODERS_PAD_B { A5, A3, B6 } +#define ENCODER_RESOLUTION 4 + diff --git a/keyboards/mechlovin/adelais/standard_led/rev3/rules.mk b/keyboards/mechlovin/adelais/standard_led/rev3/rules.mk new file mode 100644 index 000000000000..5af1ba85367f --- /dev/null +++ b/keyboards/mechlovin/adelais/standard_led/rev3/rules.mk @@ -0,0 +1 @@ +ENCODER_ENABLE = yes diff --git a/keyboards/mechlovin/adelais/standard_led/rules.mk b/keyboards/mechlovin/adelais/standard_led/rules.mk index 4ddc3524048c..34de30aa9710 100644 --- a/keyboards/mechlovin/adelais/standard_led/rules.mk +++ b/keyboards/mechlovin/adelais/standard_led/rules.mk @@ -1,3 +1,3 @@ -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -BACKLIGHT_DRIVER = pwm -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow \ No newline at end of file + + +DEFAULT_FOLDER = mechlovin/adelais/standard_led/rev2 \ No newline at end of file From 1baa99c6473473ba3204c9861951e70c10d037cb Mon Sep 17 00:00:00 2001 From: Reed Date: Mon, 29 Jun 2020 13:23:13 -0400 Subject: [PATCH 113/154] [Keymap] Adding my keymaps for ergodox_ez and kyria (#9365) * Trying to fix problems in my kyria steez * repeating last commit..... * repeating last commit on EDIT layer but swapping direction exit * moving the reversed desktop moves to the symbol layers on the same hand, for easier activation * adding mac desktop movement keys to Kyria layout * Adding readmes to my keymaps * Removing a png... * Update keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c removing EPRM case * Apply suggestions from code review Great updates to various old-school or outdated ways I was doing things, removing some commented out code, etc. * Apply suggestions from code review Additional improvements * Moving tapdances.cpp to userspace as tapdances.c * reindenting the Kyria keymap to follow four-spaces convention, turning off oled on my kyria, improving the led handling on the Ergodox. * updating led stuff on the other two versions of the keymap, removing EPRM key from main keymap * Apply suggestions from code review I'm adding these various removals to the config file because it seems that at this time those settings are in harmony with the ergodox_ez defaults. * Moving encoder functions into their own userspace file * Apply suggestions from code review Removing settings that are now defaults, clearing out placeholder custom keycodes (smh) * updating encoder functions. * Moving to LAYOUT_stack for all layers, adding end of file newlines, switching to some shorter keycode aliases * Okay, refactor is well underway. * refactored! Also improved led handling for ergodox and rgb handling for kyria * removing mac/windows swappable version because I don't feel like dealing with it when reflashing is so easy. * moving LAYOUT_stack into kyria.h * moving the alternate default layer down next to QWERTY --- keyboards/ergodox_ez/keymaps/rmw/config.h | 59 +++ 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/kyria/keymaps/rmw/config.h | 36 ++ keyboards/kyria/keymaps/rmw/keymap.c | 199 +++++++++ keyboards/kyria/keymaps/rmw/readme.md | 9 + keyboards/kyria/keymaps/rmw/rules.mk | 4 + keyboards/kyria/kyria.h | 22 + 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 +++ 18 files changed, 1297 insertions(+) create mode 100644 keyboards/ergodox_ez/keymaps/rmw/config.h create mode 100644 keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c create mode 100644 keyboards/ergodox_ez/keymaps/rmw/keymap-win.c create mode 100644 keyboards/ergodox_ez/keymaps/rmw/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/rmw/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/rmw/rules.mk create mode 100644 keyboards/kyria/keymaps/rmw/config.h create mode 100644 keyboards/kyria/keymaps/rmw/keymap.c create mode 100644 keyboards/kyria/keymaps/rmw/readme.md create mode 100644 keyboards/kyria/keymaps/rmw/rules.mk create mode 100644 users/rmw/encoder_functions.c create mode 100644 users/rmw/encoder_functions.h create mode 100644 users/rmw/rmw.c create mode 100644 users/rmw/rmw.h create mode 100644 users/rmw/rules.mk create mode 100644 users/rmw/tapdances.c create mode 100644 users/rmw/tapdances.h diff --git a/keyboards/ergodox_ez/keymaps/rmw/config.h b/keyboards/ergodox_ez/keymaps/rmw/config.h new file mode 100644 index 000000000000..7b90c2327a82 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/rmw/config.h @@ -0,0 +1,59 @@ +/* +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 + +/* USB Device descriptor parameter */ +#ifndef DESCRIPTION +#define DESCRIPTION QMK keyboard firmware for Ergodox EZ +#endif + +#define USB_MAX_POWER_CONSUMPTION 500 + +#define QMK_KEYS_PER_SCAN 4 +/* 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 new file mode 100644 index 000000000000..7a78ce98e790 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c @@ -0,0 +1,188 @@ +#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_BSPACE, 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_BSPACE, 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_PGDOWN, _______, TO(QWERTY), + _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, + _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_Y), _______, + _______, _______, _______, _______, _______, + _______, _______, KC_PSCREEN, _______, _______, 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_PGDOWN, KC_PSCREEN, _______, + 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_LBRACKET, KC_RBRACKET, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, 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 new file mode 100644 index 000000000000..9f7435c0d7ed --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/rmw/keymap-win.c @@ -0,0 +1,159 @@ +#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_BSPACE, 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_PGDOWN, _______, TO(0), + _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, + _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_Y), _______, + _______, _______, _______, _______, _______, + _______, _______, KC_PSCREEN, _______, _______, 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_PGDOWN, KC_PSCREEN, _______, + 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_LBRACKET, KC_RBRACKET, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, 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 new file mode 100644 index 000000000000..b0b9bf13cdd8 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/rmw/keymap.c @@ -0,0 +1,13 @@ +#include "ergodox_ez.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 new file mode 100644 index 000000000000..36e0d1de00d6 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/rmw/readme.md @@ -0,0 +1,11 @@ +# 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 new file mode 100644 index 000000000000..31e0fcf29339 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/rmw/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE=yes diff --git a/keyboards/kyria/keymaps/rmw/config.h b/keyboards/kyria/keymaps/rmw/config.h new file mode 100644 index 000000000000..02e5087b3e90 --- /dev/null +++ b/keyboards/kyria/keymaps/rmw/config.h @@ -0,0 +1,36 @@ +/* Copyright 2019 Thomas Baart + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + +#ifdef OLED_DRIVER_ENABLE + #define OLED_DISPLAY_128X64 +#endif + +#ifdef RGBLIGHT_ENABLE + #define RGBLIGHT_ANIMATIONS + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 +#endif + +// If you are using an Elite C rev3 on the follower side, uncomment the lines below: +// #define SPLIT_USB_DETECT +// #define NO_USB_STARTUP_CHECK + + diff --git a/keyboards/kyria/keymaps/rmw/keymap.c b/keyboards/kyria/keymaps/rmw/keymap.c new file mode 100644 index 000000000000..bf04272382fa --- /dev/null +++ b/keyboards/kyria/keymaps/rmw/keymap.c @@ -0,0 +1,199 @@ +/* Copyright 2019 Thomas Baart + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 "rmw.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [QWERTY] = LAYOUT_stack( + KC_TAB , KC_Q, KC_W, KC_E, KC_R, KC_T, + OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G, + TD(FRBK2) , KC_Z, KC_X, KC_C, KC_V, KC_B, TO(EDIT), KC_ESCAPE, + TO(ADJUST), TD(SGCA), TD(AGC), KC_BSPACE, TD(SHNTC), + + 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_QUOT, + KC_DEL, TO(NUMPAD), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MS_BTN1, + SFTENT, KC_SPC, TD(GCA), TD(CTLALL), KC_CAPS + ), + + [MINIMAK4] = LAYOUT_stack( + KC_TAB , KC_Q, KC_W, KC_D, KC_R, KC_K, + 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, KC_B, TO(EDIT), KC_ESCAPE, + _______, TO(ADJUST), TD(SGCA), KC_BSPACE, TD(SHNTC), + + KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE, + KC_H, LT(JSYM,KC_J), KC_E, KC_L, LT(EDIT,KC_SCLN), KC_QUOT, + KC_DEL, TO(NUMPAD), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MINS, + SFTENT, KC_SPC, TD(GCA), TD(CTLALL), _______ + ), + + [NUMPAD] = LAYOUT_stack( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, TO(QWERTY), _______, + _______, _______, _______, _______ , _______, + + _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______, + _______, KC_4, KC_5, KC_6, KC_KP_PLUS , _______, + _______, TO(EDIT), _______, KC_1, KC_2, KC_3, KC_KP_SLASH, LCTL(KC_RIGHT), + _______, _______, KC_0, KC_DOT, _______ + ), + + [EDIT] = LAYOUT_stack( + _______, TASK_MAN, _______, SELW_LEFT, SELW_RIGHT, _______, + _______, _______ , LGUI(KC_GRV), MVW_LEFT, MVW_RIGHT , _______, + LCTL(KC_LEFT), R_UNDO, R_CUT , R_COPY , R_PASTE, R_REDO , TO(NUMPAD), FORM_GET, + _______, _______, _______, DEL_WRD, _______, + + NEW_TAB , KC_PGUP, KC_UP, KC_PGDOWN, KC_PSCREEN, _______, + R_HOME , KC_LEFT, KC_DOWN, KC_RIGHT, R_END, _______, + FORM_PUT, TO(QWERTY), SEL_HOME, S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), SEL_END, _______, + _______, _______, _______, _______, _______ + ), + + [ADJUST] = LAYOUT_stack( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + TO(QWERTY), TO(EDIT), TO(NUMPAD), TO(JSYM), TO(FSYM), TO(MEDIA), + DF(MINIMAK4), DF(QWERTY), RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD,_______, _______, + _______, _______, _______, _______, _______, + + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ), + + [FSYM] = LAYOUT_stack( + _______, _______, _______, _______, _______, _______, + _______, _______, KC_TILD, KC_EXLM, _______, _______, + LCTL(KC_RIGHT), _______, TO(QWERTY), _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______, + KC_EQUAL, KC_MINUS, KC_UNDS, KC_PIPE, KC_COLON, KC_DQT, + _______, _______, _______, KC_PLUS, KC_BSLS, KC_SLSH, _______, _______, + _______, _______, _______, _______, _______ + ), + + [JSYM] = LAYOUT_stack( + _______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, + _______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT, + _______, KC_PERC, KC_CIRC, KC_LBRACKET, KC_RBRACKET, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, + _______, _______, KC_QUES, KC_SLSH, KC_COLON, _______, + _______, _______, _______, _______, _______, TO(QWERTY), _______, LCTL(KC_LEFT), + _______, _______, _______, _______, _______ + ), + + [MEDIA] = LAYOUT_stack( + _______, KC_WH_U, KC_WH_L, KC_MS_UP, KC_WH_R, _______, + _______, KC_WH_D, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, + _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, + KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE, KC_MRWD, KC_MFFD, _______ + ) +}; + +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + 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_code16(KC_MS_BTN1); + tap_code16(G(KC_A)); + tap_code16(G(KC_V)); + } + return false; + } + return true; +} + +#ifdef ENCODER_ENABLE +void encoder_update_keymap(uint8_t index, bool clockwise) { + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case EDIT: + enc_move_words(clockwise); + break; + case QWERTY: + enc_move_desktop(clockwise); + default: + enc_history_scrubbing(clockwise); + break; + } + } else if (index == 1) { + switch (get_highest_layer(layer_state)) { + case QWERTY: + enc_scrolling(clockwise); + break; + case FSYM: + enc_zoom(clockwise); + break; + default: + enc_volume_knob(clockwise); + break; + } + } +} +#endif + +#ifdef RGBLIGHT_ENABLE // include mods, as well as layers +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case QWERTY: + rgblight_setrgb (0x00, 0x00, 0x00); + break; + case MINIMAK4: + rgblight_setrgb (0x20, 0x20, 0x20); + break; + case NUMPAD: + rgblight_setrgb (0xFF, 0x00, 0x00); + break; + case EDIT: + rgblight_setrgb (0x00, 0xFF, 0x00); + break; + case FSYM: + rgblight_setrgb (0x7A, 0x7A, 0x00); + break; + case JSYM: + rgblight_setrgb (0x7A, 0x00, 0x7A); + break; + case MEDIA: + rgblight_setrgb (0x00, 0x7A, 0x7A); + break; + case ADJUST: + rgblight_setrgb (0x7A, 0x7A, 0x7A); + break; + default: + rgblight_setrgb (0x00, 0x00, 0x00); + } + return state; +} +#endif diff --git a/keyboards/kyria/keymaps/rmw/readme.md b/keyboards/kyria/keymaps/rmw/readme.md new file mode 100644 index 000000000000..c05ca494b799 --- /dev/null +++ b/keyboards/kyria/keymaps/rmw/readme.md @@ -0,0 +1,9 @@ +# RMW Kyria Layout + +This is a Kyria edition of the keymap I use on the Ergodox_EZ I use for work. I write reports and code in a variety of languages on that board and the various layers provide plenty of flexibility for navigating, editing text, and writing code and prose. This keymap is mostly Mac-focused in its shortcuts and tapdances. + +## 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 NUMPAD 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/kyria/keymaps/rmw/rules.mk b/keyboards/kyria/keymaps/rmw/rules.mk new file mode 100644 index 000000000000..d41ffaef6dfe --- /dev/null +++ b/keyboards/kyria/keymaps/rmw/rules.mk @@ -0,0 +1,4 @@ +OLED_DRIVER_ENABLE = no # Enables the use of OLED displays +ENCODER_ENABLE = yes # Enables the use of one or more encoders +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +TAP_DANCE_ENABLE=yes # Enables Tap Dance diff --git a/keyboards/kyria/kyria.h b/keyboards/kyria/kyria.h index a2a675e0db5a..13375ae882b1 100644 --- a/keyboards/kyria/kyria.h +++ b/keyboards/kyria/kyria.h @@ -41,3 +41,25 @@ { R32, R33, R34, R35, R36, R37, R38, R39 }, \ { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \ } + +#define LAYOUT_stack( \ + L00, L01, L02, L03, L04, L05, \ + L12, L13, L14, L15, L16, L17, \ + L24, L25, L26, L27, L28, L29, L30, L31, \ + L40, L41, L42, L43, L44, \ + \ + R06, R07, R08, R09, R10, R11, \ + R18, R19, R20, R21, R22, R23, \ + R32, R33, R34, R35, R36, R37, R38, R39, \ + R45, R46, R47, R48, R49 \ +) \ +{ \ + { KC_NO, KC_NO, L05, L04, L03, L02, L01, L00 }, \ + { KC_NO, KC_NO, L17, L16, L15, L14, L13, L12 }, \ + { L31, L30, L29, L28, L27, L26, L25, L24 }, \ + { L44, L43, L42, L41, L40, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, R06, R07, R08, R09, R10, R11 }, \ + { KC_NO, KC_NO, R18, R19, R20, R21, R22, R23 }, \ + { R32, R33, R34, R35, R36, R37, R38, R39 }, \ + { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \ +} diff --git a/users/rmw/encoder_functions.c b/users/rmw/encoder_functions.c new file mode 100644 index 000000000000..39032d0eba88 --- /dev/null +++ b/users/rmw/encoder_functions.c @@ -0,0 +1,53 @@ +// Encoder functions to mix and match! + +#include "encoder_functions.h" + +void enc_move_words(bool cw){ // Move whole words. Hold shift to select while moving. + if (cw) { + tap_code16(A(KC_RGHT)); + } else { + tap_code16(A(KC_LEFT)); + } +} +void enc_history_scrubbing(bool cw){ // Undo/Redo. + if (cw) { + tap_code16(G(S(KC_Z))); + } else { + tap_code16(G(KC_Z)); + } +} +void enc_scrolling(bool cw){ // Scrolling. + if (cw) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_MS_WH_UP); + } +} +void enc_scrolling_h(bool cw){ // Scrolling. + if (cw) { + tap_code(KC_MS_WH_RIGHT); + } else { + tap_code(KC_MS_WH_LEFT); + } +} +void enc_volume_knob(bool cw){ // Volume control. + if (cw) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } +} +void enc_move_desktop(bool cw){ // Switch Desktops (Mac). + if (cw) { + tap_code16(C(KC_RIGHT)); + } else { + tap_code16(C(KC_LEFT)); + } +} +void enc_zoom(bool cw){ // Zoom in/zoom out. + if (cw) { + tap_code16(G(KC_PLUS)); + } else { + tap_code16(G(KC_MINUS)); + } +} diff --git a/users/rmw/encoder_functions.h b/users/rmw/encoder_functions.h new file mode 100644 index 000000000000..d80a78668a4a --- /dev/null +++ b/users/rmw/encoder_functions.h @@ -0,0 +1,11 @@ +#pragma once +#include QMK_KEYBOARD_H +#include "rmw.h" + +void enc_move_words(bool cw); +void enc_history_scrubbing(bool cw); +void enc_scrolling(bool cw); +void enc_scrolling_h(bool cw); +void enc_volume_knob(bool cw); +void enc_move_desktop(bool cw); +void enc_zoom(bool cw); diff --git a/users/rmw/rmw.c b/users/rmw/rmw.c new file mode 100644 index 000000000000..bb1c1984f5bd --- /dev/null +++ b/users/rmw/rmw.c @@ -0,0 +1 @@ +#include "rmw.h" diff --git a/users/rmw/rmw.h b/users/rmw/rmw.h new file mode 100644 index 000000000000..272a400c753a --- /dev/null +++ b/users/rmw/rmw.h @@ -0,0 +1,87 @@ +#pragma once +#include QMK_KEYBOARD_H + +#include "quantum.h" +#include "action.h" +#include "version.h" + +#ifdef TAP_DANCE_ENABLE +#include "tapdances.h" +#endif + +#ifdef ENCODER_ENABLE +#include "encoder_functions.h" +#endif + +enum user_layers { + QWERTY = 0 + ,MINIMAK4 + ,NUMPAD + ,EDIT + ,FSYM + ,JSYM + ,MEDIA + ,ADJUST +}; + + +// Custom keycodes +#define SFTENT SFT_T(KC_ENT) + +enum user_custom_keycodes_universal { + VRSN = SAFE_RANGE + ,OS_CSFT = OSM(MOD_LSFT | MOD_LCTL) + ,OS_GSFT = OSM(MOD_LSFT | MOD_LGUI) + ,OS_CALT = OSM(MOD_LCTL | MOD_LALT) + ,OS_ALT = OSM(MOD_LALT) + ,OS_CTL = OSM(MOD_LCTL) + ,NEW_SAFE_RANGE +}; + +#ifdef MACOSX + enum user_custom_keycodes { + FORM_GET = NEW_SAFE_RANGE + ,FORM_PUT + ,OS_CMD = OSM(MOD_LGUI) + ,R_UNDO = LGUI(KC_Z) + ,R_REDO = LGUI(KC_Y) + ,R_CUT = LGUI(KC_X) + ,R_COPY = LGUI(KC_C) + ,R_PASTE = LGUI(KC_V) + ,DEL_WRD = LALT(KC_BSPACE) + ,MVW_LEFT = LALT(KC_LEFT) + ,MVW_RIGHT = LALT(KC_RIGHT) + ,SELW_LEFT = LALT(S(KC_LEFT)) + ,SELW_RIGHT = LALT(S(KC_RIGHT)) + ,NEW_TAB = LGUI(KC_T) + ,TASK_MAN = LGUI(LALT(KC_ESCAPE)) + ,SEL_HOME = S(LGUI(KC_LEFT)) + ,SEL_END = S(LGUI(KC_RIGHT)) + ,R_HOME = LGUI(KC_LEFT) + ,R_END = LGUI(KC_RIGHT) + }; +#endif + +#ifdef WINDOWS + enum user_custom_keycodes { + FORM_GET = NEW_SAFE_RANGE + ,FORM_PUT + ,OS_WIN = OSM(MOD_LGUI) + ,R_UNDO = LCTL(KC_Z) + ,R_REDO = LCTL(KC_Y) + ,R_CUT = LCTL(KC_X) + ,R_COPY = LCTL(KC_C) + ,R_PASTE = LCTL(KC_V) + ,DEL_WRD = LALT(KC_BSPACE) + ,MVW_LEFT = LCTL(KC_LEFT) + ,MVW_RIGHT = LCTL(KC_RIGHT) + ,SELW_LEFT = LCTL(S(KC_LEFT)) + ,SELW_RIGHT = LCTL(S(KC_RIGHT)) + ,NEW_TAB = LCTL(KC_T) + ,TASK_MAN = LCTL(LALT(KC_ESCAPE)) + ,SEL_HOME = S(KC_HOME) + ,SEL_END = S(KC_END) + ,R_HOME = KC_HOME + ,R_END = KC_END +}; +#endif diff --git a/users/rmw/rules.mk b/users/rmw/rules.mk new file mode 100644 index 000000000000..468745dbc2a8 --- /dev/null +++ b/users/rmw/rules.mk @@ -0,0 +1,9 @@ +SRC += rmw.c + +ifdef TAP_DANCE_ENABLE +SRC += tapdances.c +endif + +ifdef ENCODER_ENABLE +SRC += encoder_functions.c +endif diff --git a/users/rmw/tapdances.c b/users/rmw/tapdances.c new file mode 100644 index 000000000000..1b44a8725374 --- /dev/null +++ b/users/rmw/tapdances.c @@ -0,0 +1,389 @@ +// Useful tapdance functions! + +#include "tapdances.h" + +qk_tap_dance_action_t tap_dance_actions[] = { + [SHCAP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, shift_reset) + ,[TDGUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shiftgui, gui_reset) + ,[TDGUI2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, guictl, ubermod_reset) + ,[SHENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shiftenter, shift_reset) + ,[SHNTC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shiftentercaps, shift_reset) + ,[GCA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ubermod_mac, ubermod_reset) // GUI->CTL->ALT + ,[AGC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ubermod2_mac, ubermod_reset) // ALT->GUI->CTL + ,[SGCA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shift_and_mac, CASG_reset) // SG->SC->SA + ,[GUCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, guictl, ubermod_reset) + ,[CAG] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ubermod, ubermod_reset) // CTL->ALT->GUI + ,[ACG] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ubermod2, ubermod_reset) // ALT->GUI->CTL + ,[SCAG] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shift_and, CASG_reset) // SG->SC->SA + ,[DLTR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, deleter, ubermod_reset) // backspace, backspace, alt backspace, gui backspace + ,[FRBK2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, forward_back_mac, ubermod_reset) + ,[CTLALL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctrl_all_mac, ubermod_reset) // C->CG->CA->CAG + ,[CTLAND] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctrl_all, ubermod_reset) // C->CA->CG->CAG + ,[FRBK] = ACTION_TAP_DANCE_DOUBLE(KC_WWW_BACK,KC_WWW_FORWARD) +}; + +void caps(qk_tap_dance_state_t *state, void *user_data) // Shift, Caps +{ if (state->count >= 2) {register_code(KC_CAPS); unregister_code(KC_CAPS);} + else if (state->pressed) {register_mods(MOD_LSFT);} else {set_oneshot_mods(MOD_LSFT);} + reset_tap_dance(state); +} + +void forward_back_mac(qk_tap_dance_state_t *state, void *user_data) // G<-, then G-> +{ + if (state->count > 1) { + tap_code16(G(KC_RGHT)); + } + else { + tap_code16(G(KC_LEFT)); + } + reset_tap_dance(state); +} + +void shiftgui(qk_tap_dance_state_t *state, void *user_data) // G->SG +{ + if (state->count > 1) { + if (state->pressed) { + register_mods(MOD_LSFT | MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LSFT | MOD_LGUI); + } + } + else if (state->pressed) { + register_mods(MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LGUI); + } + reset_tap_dance(state); +} + +void guictl(qk_tap_dance_state_t *state, void *user_data) // G->GC +{ + if (state->count > 1) { + if (state->pressed) { + register_mods(MOD_LCTL | MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LCTL | MOD_LGUI); + } + } + else if (state->pressed) { + register_mods(MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LGUI); + } + reset_tap_dance(state); +} + +void deleter(qk_tap_dance_state_t *state, void *user_data) // bkspc -> delwrd -> delline +{ + if (state->count > 3) { + tap_code16(G(KC_BSPC)); + } + else if (state->count > 2) { + tap_code16(A(KC_BSPC)); + } + else { + tap_code(KC_BSPC); + } + reset_tap_dance(state); +} + +void ubermod(qk_tap_dance_state_t *state, void *user_data) // CTL->ALT->GUI +{ + if (state->count > 2) { + if (state->pressed) { + register_mods(MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LGUI); + } + } + else if (state->count > 1) { + if (state->pressed) { + register_mods(MOD_LALT); + } + else { + set_oneshot_mods(MOD_LALT); + } + } + else if (state->pressed) { + register_mods(MOD_LCTL); + } + else { + set_oneshot_mods(MOD_LCTL); + } + reset_tap_dance(state); +} + +void ubermod_mac(qk_tap_dance_state_t *state, void *user_data) // GUI->CTL->ALT +{ + if (state->count > 2) { + if (state->pressed) { + register_mods(MOD_LALT); + } + else { + set_oneshot_mods(MOD_LALT); + } + } + else if (state->count > 1) { + if (state->pressed) { + register_mods(MOD_LCTL); + } + else { + set_oneshot_mods(MOD_LCTL); + } + } + else if (state->pressed) { + register_mods(MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LGUI); + } + reset_tap_dance(state); +} + +void ubermod2(qk_tap_dance_state_t *state, void *user_data) // ALT->CTL->GUI +{ + if (state->count > 2) { + if (state->pressed) { + register_mods(MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LGUI); + } + } + else if (state->count > 1) { + if (state->pressed) { + register_mods(MOD_LCTL); + } + else { + set_oneshot_mods(MOD_LCTL); + } + } + else if (state->pressed) { + register_mods(MOD_LALT); + } + else { + set_oneshot_mods(MOD_LALT); + } + reset_tap_dance(state); +} + +void ubermod2_mac(qk_tap_dance_state_t *state, void *user_data) // ALT->GUI->CTL +{ + if (state->count > 2) { + if (state->pressed) { + register_mods(MOD_LCTL); + } + else { + set_oneshot_mods(MOD_LCTL); + } + } + else if (state->count > 1) { + if (state->pressed) { + register_mods(MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LGUI); + } + } + else if (state->pressed) { + register_mods(MOD_LALT); + } + else { + set_oneshot_mods(MOD_LALT); + } + reset_tap_dance(state); +} + +void shift_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_mods(MOD_LSFT); + // clear_oneshot_mods(); +} +void gui_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_mods(MOD_LSFT | MOD_LGUI); +} +void CAS_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_mods(MOD_LCTL | MOD_LSFT | MOD_LALT); +} +void CASG_reset(qk_tap_dance_state_t *state, void *user_data) +{ + unregister_mods(MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI); + // clear_oneshot_mods(); +} +void ubermod_reset(qk_tap_dance_state_t *state, void *user_data) // AKA CAG_reset +{ + unregister_mods(MOD_LCTL | MOD_LALT | MOD_LGUI); +} + +void shiftenter(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 1) { + tap_code(KC_ENT); + } + else if (state->pressed) { + register_mods(MOD_LSFT); + } + else { + set_oneshot_mods(MOD_LSFT); + } + reset_tap_dance(state); +} + +void shiftentercaps(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count > 2) { + tap_code(KC_CAPS); + } + else if (state->count > 1) { + tap_code(KC_ENT); + } + else if (state->pressed) { + register_mods(MOD_LSFT); + } + else { + set_oneshot_mods(MOD_LSFT); + } + reset_tap_dance(state); +} + +void ctrl_all_mac(qk_tap_dance_state_t *state, void *user_data) // C->CG->CAG +{ + if (state->count > 2) { + if (state->pressed) { + register_mods(MOD_LCTL | MOD_LALT | MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LCTL | MOD_LGUI | MOD_LALT); + } + } + else if (state->count > 1) { + if (state->pressed) { + register_mods(MOD_LCTL | MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LCTL | MOD_LGUI); + } + } + else if (state->pressed) { + register_mods(MOD_LCTL); + } + else { + set_oneshot_mods(MOD_LCTL); + } + reset_tap_dance(state); +} + +void ctrl_all(qk_tap_dance_state_t *state, void *user_data) // C->CA->SC +{ + if (state->count > 2) { + if (state->pressed) { + register_mods(MOD_LCTL | MOD_LSFT); + } + else { + set_oneshot_mods(MOD_LCTL | MOD_LSFT); + } + } + else if (state->count > 1) { + if (state->pressed) { + register_mods(MOD_LCTL | MOD_LALT); + } + else { + set_oneshot_mods(MOD_LCTL | MOD_LALT); + } + } + else if (state->pressed) { + register_mods(MOD_LCTL); + } + else { + set_oneshot_mods(MOD_LCTL); + } + reset_tap_dance(state); +} + +void alt_all(qk_tap_dance_state_t *state, void *user_data) // A->SA->AC +{ + if (state->count > 2) { + if (state->pressed) { + register_mods(MOD_LCTL | MOD_LALT); + } + else { + set_oneshot_mods(MOD_LALT | MOD_LCTL); + } + } + else if (state->count > 1) { + if (state->pressed) { + register_mods(MOD_LSFT | MOD_LALT); + } + else { + set_oneshot_mods(MOD_LALT | MOD_LSFT); + } + } + else if (state->pressed) { + register_mods(MOD_LALT); + } + else { + set_oneshot_mods(MOD_LALT); + } + reset_tap_dance(state); +} + +void shift_and(qk_tap_dance_state_t *state, void *user_data) // SC->SA->SG +{ + if (state->count > 2) { + if (state->pressed) { + register_mods(MOD_LSFT | MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LGUI | MOD_LSFT); + } + } + else if (state->count > 1) { + if (state->pressed) { + register_mods(MOD_LSFT | MOD_LALT); + } + else { + set_oneshot_mods(MOD_LALT | MOD_LSFT); + } + } + else if (state->pressed) { + register_mods(MOD_LCTL | MOD_LSFT); + } + else { + set_oneshot_mods(MOD_LSFT | MOD_LCTL); + } + reset_tap_dance(state); +} + +void shift_and_mac(qk_tap_dance_state_t *state, void *user_data) // SG->SC->SA +{ + if (state->count > 1) { + if (state->pressed) { + register_mods(MOD_LSFT | MOD_LALT); + } + else { + set_oneshot_mods(MOD_LALT | MOD_LSFT); + } + } + else if (state->count > 2) { + if (state->pressed) { + register_mods(MOD_LCTL | MOD_LSFT); + } + else { + set_oneshot_mods(MOD_LSFT | MOD_LCTL); + } + } + else if (state->pressed) { + register_mods(MOD_LSFT | MOD_LGUI); + } + else { + set_oneshot_mods(MOD_LGUI | MOD_LSFT); + } + reset_tap_dance(state); +} diff --git a/users/rmw/tapdances.h b/users/rmw/tapdances.h new file mode 100644 index 000000000000..11425011c53d --- /dev/null +++ b/users/rmw/tapdances.h @@ -0,0 +1,46 @@ +#pragma once +#include "rmw.h" +#include "process_tap_dance.h" +#include "action.h" + +void caps(qk_tap_dance_state_t *state, void *user_data); // Shift, Caps +void forward_back_mac(qk_tap_dance_state_t *state, void *user_data); // G<-, then G-> +void shiftgui(qk_tap_dance_state_t *state, void *user_data); // G->SG +void guictl(qk_tap_dance_state_t *state, void *user_data); // G->GC +void deleter(qk_tap_dance_state_t *state, void *user_data); // bkspc -> delwrd -> delline +void ubermod(qk_tap_dance_state_t *state, void *user_data); // CTL->ALT->GUI +void ubermod_mac(qk_tap_dance_state_t *state, void *user_data); // GUI->CTL->ALT +void ubermod2(qk_tap_dance_state_t *state, void *user_data); // ALT->CTL->GUI +void ubermod2_mac(qk_tap_dance_state_t *state, void *user_data); // ALT->GUI->CTL +void shift_reset(qk_tap_dance_state_t *state, void *user_data); +void gui_reset(qk_tap_dance_state_t *state, void *user_data); +void CAS_reset(qk_tap_dance_state_t *state, void *user_data); +void CASG_reset(qk_tap_dance_state_t *state, void *user_data); +void ubermod_reset(qk_tap_dance_state_t *state, void *user_data); // AKA CAG_reset +void shiftenter(qk_tap_dance_state_t *state, void *user_data); +void shiftentercaps(qk_tap_dance_state_t *state, void *user_data); +void ctrl_all_mac(qk_tap_dance_state_t *state, void *user_data); // C->CG->CAG +void ctrl_all(qk_tap_dance_state_t *state, void *user_data); // C->CA->SC +void alt_all(qk_tap_dance_state_t *state, void *user_data); // A->SA->AC +void shift_and(qk_tap_dance_state_t *state, void *user_data); // SC->SA->SG +void shift_and_mac(qk_tap_dance_state_t *state, void *user_data); // SG->SC->SA + +enum { + SHCAP = 0 + ,TDGUI + ,TDGUI2 + ,SHENT + ,SHNTC + ,GUCTL + ,FRBK + ,FRBK2 + ,GCA + ,AGC + ,SGCA + ,SCAG + ,CAG + ,ACG + ,CTLALL + ,CTLAND + ,DLTR +}; From 207b17bc4dd014ac5543546132c55be7d3d90217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavs=20G=C5=ABtmanis?= Date: Mon, 29 Jun 2020 21:27:29 +0300 Subject: [PATCH 114/154] [keymap] adding a new keymap to planck and crkbd (#9374) Co-authored-by: Ryan --- keyboards/planck/keymaps/copface/config.h | 17 ++ keyboards/planck/keymaps/copface/keymap.c | 191 +++++++++++++++++++++ keyboards/planck/keymaps/copface/readme.md | 11 ++ keyboards/planck/keymaps/copface/rules.mk | 11 ++ 4 files changed, 230 insertions(+) create mode 100644 keyboards/planck/keymaps/copface/config.h create mode 100644 keyboards/planck/keymaps/copface/keymap.c create mode 100644 keyboards/planck/keymaps/copface/readme.md create mode 100644 keyboards/planck/keymaps/copface/rules.mk diff --git a/keyboards/planck/keymaps/copface/config.h b/keyboards/planck/keymaps/copface/config.h new file mode 100644 index 000000000000..da5d3858c834 --- /dev/null +++ b/keyboards/planck/keymaps/copface/config.h @@ -0,0 +1,17 @@ +#pragma once + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define MIDI_BASIC +#define ENCODER_RESOLUTION 4 + +#define LEADER_TIMEOUT 300 +#define TAPPING_TERM 180 diff --git a/keyboards/planck/keymaps/copface/keymap.c b/keyboards/planck/keymaps/copface/keymap.c new file mode 100644 index 000000000000..0754a0c742d3 --- /dev/null +++ b/keyboards/planck/keymaps/copface/keymap.c @@ -0,0 +1,191 @@ +#include QMK_KEYBOARD_H +#include "muse.h" + +// Custom Keycode Definitions +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define META MO(_META) + +#define KC_PRS LGUI(LALT(LCTL(KC_4))) +#define KC_EUR LALT(KC_4) +#define KC_MGRV LALT(KC_GRV) + +#define KC_FORMAT LGUI(LALT(KC_L)) +#define KC_FBSP LALT(KC_BSPC) +#define KC_FDEL LALT(KC_DEL) +#define KC_PS3 LSFT(LCTL(LGUI(KC_3))) +#define KC_PS4 LSFT(LCTL(LGUI(KC_4))) + +#define HK_TM LALT(KC_2) +#define HK_AF9 LALT(KC_F9) + +#define KC_SRC LGUI(KC_F12) +#define KC_RNME LSFT(KC_F6) + +#define M_LGSPC LGUI_T(KC_SPC) +#define M_LCENT LCTL_T(KC_ENT) +#define M_LGENT LGUI_T(KC_ENT) + +enum planck_layers { + _DEFAULT = 0, + _LOWER, + _RAISE, + _META, + _ADJUST +}; + +enum planck_keycodes { + KC_ARR = SAFE_RANGE, // -> + KC_FARR, // => + HK_CLOS, // /> + XD1, // :D + XD3, // :DDD + XD5, // :DDDDD + XD15, // :DDDDDDDDDDDDDDD +}; + +enum tapdancers { + T_BR = 0, // [, ] + T_PA, // (, ) + T_CU, // {, } + T_DL, // $, € + T_SL, // slash, backslash +}; + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [T_BR] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), + [T_PA] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN), + [T_CU] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR), + [T_DL] = ACTION_TAP_DANCE_DOUBLE(KC_DLR, KC_EUR), + [T_SL] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS), +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_DEFAULT] = 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, XXXXXXX, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, XXXXXXX, KC_LEAD, + KC_LGUI, KC_LCTL, KC_LALT, KC_LALT, LOWER, KC_SPC, META, RAISE, KC_RALT, KC_MPRV, KC_MPLY, KC_MNXT +), + +[_LOWER] = LAYOUT_planck_grid( + KC_F1, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, + _______, HK_TM, XD1, XD3, XD5, XD15, XXXXXXX, XXXXXXX, KC_ARR, KC_FARR, HK_CLOS, XXXXXXX, + _______, _______, _______, _______, _______, KC_DEL, KC_FBSP, RAISE, KC_RALT, KC_VOLD, KC_MUTE, KC_VOLU +), + +[_RAISE] = LAYOUT_planck_grid( + KC_MGRV, KC_MINUS, KC_EQL, KC_EXLM, KC_QUES, KC_PLUS, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_FBSP, + KC_TILD, TD(T_BR), TD(T_CU), TD(T_PA), TD(T_DL), KC_SLSH, KC_RNME, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_FORMAT, + _______, KC_UNDS, KC_DQUO, KC_QUOT, KC_PIPE, KC_BSLS, XXXXXXX, KC_SCLN, KC_COLN, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, KC_DEL, KC_FDEL, _______, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU +), + +[_META] = LAYOUT_planck_grid( + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SRC, XXXXXXX, + XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_F10, KC_F11, KC_F12, HK_AF9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +), + +[_ADJUST] = LAYOUT_planck_grid( + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, CG_TOGG, XXXXXXX, + XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, 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, RESET +) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_ARR: + if (record->event.pressed) { + SEND_STRING("->"); + } + + return false; + + case KC_FARR: + if (record->event.pressed) { + SEND_STRING("=>"); + } + + return false; + + case XD1: + if (record->event.pressed) { + SEND_STRING(":D"); + } + + return false; + + case XD3: + if (record->event.pressed) { + SEND_STRING(":DDD"); + } + + return false; + + case XD5: + if (record->event.pressed) { + SEND_STRING(":DDDDD"); + } + + return false; + + case XD15: + if (record->event.pressed) { + SEND_STRING(":DDDDDDDDDDDDDDD"); + } + + return false; + + case HK_CLOS: + if (record->event.pressed) { + SEND_STRING("/>"); + } + + return false; + } + + return true; +} + +LEADER_EXTERNS(); +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + // Screenshot + SEQ_ONE_KEY(KC_S) { + tap_code16(G(C(S(KC_4)))); + } + // 1Pass browser + SEQ_ONE_KEY(KC_A) { + tap_code16(G(A(KC_BSLS))); + } + // 1Pass mini + SEQ_TWO_KEYS(KC_A, KC_A) { + tap_code16(G(KC_BSLS)); + } + // Comment out + SEQ_ONE_KEY(KC_F) { + tap_code16(G(KC_SLSH)); + } + // Spotlight + SEQ_ONE_KEY(KC_SPC) { + tap_code16(G(KC_SPC)); + } + // Auto format + SEQ_ONE_KEY(KC_ENT) { + tap_code16(S(G(A(KC_F)))); + } + } +} diff --git a/keyboards/planck/keymaps/copface/readme.md b/keyboards/planck/keymaps/copface/readme.md new file mode 100644 index 000000000000..56a048c4a9ef --- /dev/null +++ b/keyboards/planck/keymaps/copface/readme.md @@ -0,0 +1,11 @@ +# Copface's planck keyboard layout + +This layout utilizes tapdancing and leader keys as well as 3 extra layers for maximizing the efficiancy when programming. + +Please see the keymap.c for how the keymap looks and works. +The home row is filled with everything one could need when working on web development, +It's all a layer away. + +To build and flash this keymap, use this command: + + qmk compile -kb planck/rev6 -km copface diff --git a/keyboards/planck/keymaps/copface/rules.mk b/keyboards/planck/keymaps/copface/rules.mk new file mode 100644 index 000000000000..aacc6c65a89c --- /dev/null +++ b/keyboards/planck/keymaps/copface/rules.mk @@ -0,0 +1,11 @@ +SRC += muse.c + +BOOTMAGIC_ENABLE = no +MOUSEKEY_ENABLE = no +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +MIDI_ENABLE = no +AUDIO_ENABLE = yes +RGBLIGHT_ENABLE = no +TAP_DANCE_ENABLE = yes +LEADER_ENABLE = yes From cf17a8eb9550ca5d56344fd479e25112b5ad8bfe Mon Sep 17 00:00:00 2001 From: Frothy Date: Mon, 29 Jun 2020 15:58:15 -0300 Subject: [PATCH 115/154] Add Via support for Hasu FC660C controller (#9563) Co-authored-by: Ryan --- keyboards/fc660c/config.h | 8 ++--- keyboards/fc660c/fc660c.h | 8 +---- keyboards/fc660c/keymaps/via/README.md | 5 +++ keyboards/fc660c/keymaps/via/keymap.c | 46 ++++++++++++++++++++++++++ keyboards/fc660c/keymaps/via/rules.mk | 2 ++ 5 files changed, 58 insertions(+), 11 deletions(-) create mode 100644 keyboards/fc660c/keymaps/via/README.md create mode 100644 keyboards/fc660c/keymaps/via/keymap.c create mode 100644 keyboards/fc660c/keymaps/via/rules.mk diff --git a/keyboards/fc660c/config.h b/keyboards/fc660c/config.h index e55896e6c913..bba402ca48b7 100644 --- a/keyboards/fc660c/config.h +++ b/keyboards/fc660c/config.h @@ -21,15 +21,15 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED +#define VENDOR_ID 0x4853 /* HS */ #define PRODUCT_ID 0x660C #define DEVICE_VER 0x0100 -#define MANUFACTURER QMK -#define PRODUCT Leopold FC660C with QMK +#define MANUFACTURER Hasu +#define PRODUCT FC660C #define DESCRIPTION Leopold FC660C with Hasu alternative controller using QMK /* key matrix size */ -#define MATRIX_ROWS 8 +#define MATRIX_ROWS 5 #define MATRIX_COLS 16 //#define DIODE_DIRECTION diff --git a/keyboards/fc660c/fc660c.h b/keyboards/fc660c/fc660c.h index 63c4029c0ddd..e3621570dd1a 100644 --- a/keyboards/fc660c/fc660c.h +++ b/keyboards/fc660c/fc660c.h @@ -36,13 +36,7 @@ along with this program. If not, see . { KC_NO, K31, K32, K33, K34, K35, K36, K37, \ K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO }, \ { K40, K41, K42, K43, K44, K45, K46, K47, \ - K48, K49, K4A, K4B, KC_NO, KC_NO, K4E, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ + K48, K49, K4A, K4B, KC_NO, KC_NO, K4E, KC_NO } \ } /* KEYMAP( diff --git a/keyboards/fc660c/keymaps/via/README.md b/keyboards/fc660c/keymaps/via/README.md new file mode 100644 index 000000000000..c1ce51b7f3ae --- /dev/null +++ b/keyboards/fc660c/keymaps/via/README.md @@ -0,0 +1,5 @@ +# The default keymap for the FC660C with Via enabled + +Emulates original keymap. + +![](https://i.imgur.com/fg89nez.jpg) \ No newline at end of file diff --git a/keyboards/fc660c/keymaps/via/keymap.c b/keyboards/fc660c/keymaps/via/keymap.c new file mode 100644 index 000000000000..6de89329e305 --- /dev/null +++ b/keyboards/fc660c/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public 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, KC_RALT,KC_RCTL,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_PSCR,KC_SLCK,KC_PAUS,_______,_______,_______, _______, + _______,_______,_______,_______,_______,_______,_______,_______,KC_HOME,KC_PGUP,_______,_______, _______, + _______,_______,_______,_______,_______,_______,_______,_______,KC_END, KC_PGDN,_______,_______, _______, + _______,_______,_______, _______, _______,_______,_______, _______,_______,_______ + ), + [2] = LAYOUT( + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______, _______, _______,_______,_______, _______,_______,_______ + ), + [3] = LAYOUT( + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______, _______, _______,_______,_______, _______,_______,_______ + ) +}; diff --git a/keyboards/fc660c/keymaps/via/rules.mk b/keyboards/fc660c/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/fc660c/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file From 4f9e5d4cdef8ee0ab5a361407ccd8c55dcc186b7 Mon Sep 17 00:00:00 2001 From: morbetter <60626808+morbetter@users.noreply.github.com> Date: Mon, 29 Jun 2020 12:16:14 -0700 Subject: [PATCH 116/154] Adding VIA support for CannonKeys/Practice60 (#8169) * Adding VIA support for 40percentclub/luddite * Update config.h * Update rules.mk * Delete config.h config.h was created to override the "default" of RGBLED_NUM 8 deleting the file to keep with defaults * Removing block and comment as suggested * Update PRODUCT_ID Changing from: #define PRODUCT_ID 0x0A0C To: #define PRODUCT_ID 0x4C55 // "LU" * Changing Vendor ID Changing Vendor ID from: #define VENDOR_ID 0xFEED To: #define VENDOR_ID 0x3430 // "40" * Adding VIA support to cannonkeys/practice60 Adding VIA support to cannonkeys/practice60 * updated VENDOR_ID to match other CannonKeys boards * changed PRODUCT_ID to be unique * added additional notes to readme.md * keymap.c and config.h for VIA support * Update readme.md * Update keyboards/cannonkeys/practice60/readme.md * Update keyboards/cannonkeys/practice60/readme.md * Update keyboards/cannonkeys/practice60/config.h * Update rules.mk * Update keyboards/cannonkeys/practice60/config.h * Update config.h * Rebased from Master Rebased from Master --- keyboards/cannonkeys/practice60/config.h | 6 ++-- .../practice60/keymaps/via/keymap.c | 35 +++++++++++++++++++ .../practice60/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/practice60/readme.md | 7 ++++ 4 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 keyboards/cannonkeys/practice60/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/practice60/keymaps/via/rules.mk diff --git a/keyboards/cannonkeys/practice60/config.h b/keyboards/cannonkeys/practice60/config.h index d17b7f04dd05..1e8e5ec7c8c8 100644 --- a/keyboards/cannonkeys/practice60/config.h +++ b/keyboards/cannonkeys/practice60/config.h @@ -18,10 +18,10 @@ along with this program. If not, see . #pragma once /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 -#define MANUFACTURER QMK +#define MANUFACTURER CannonKeys #define PRODUCT Practice 60 #define DESCRIPTION Practice 60 diff --git a/keyboards/cannonkeys/practice60/keymaps/via/keymap.c b/keyboards/cannonkeys/practice60/keymaps/via/keymap.c new file mode 100644 index 000000000000..1bafdbb88f83 --- /dev/null +++ b/keyboards/cannonkeys/practice60/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +#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, + LT(1,KC_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, MT(MOD_RSFT,KC_UP), + KC_LCTL, KC_LGUI, KC_LALT , KC_SPC, KC_RALT, LT(1,KC_LEFT), LT(2,KC_DOWN), MT(MOD_RCTL,KC_RGHT) + ), + + [1] = 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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_HOME, KC_END, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_INS, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MENU, 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, BL_TOGG, BL_DEC, BL_INC, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, + KC_TRNS, RGB_RMOD, 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, KC_TRNS + ), + + [3] = 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, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/cannonkeys/practice60/keymaps/via/rules.mk b/keyboards/cannonkeys/practice60/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/practice60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/practice60/readme.md b/keyboards/cannonkeys/practice60/readme.md index 044aadf6e98d..60ce0066f987 100644 --- a/keyboards/cannonkeys/practice60/readme.md +++ b/keyboards/cannonkeys/practice60/readme.md @@ -9,4 +9,11 @@ Make example for this keyboard (after setting up your build environment): make cannonkeys/practice60:default +Flashing example for this keyboard: + + make cannonkeys/practice60: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). + +Build guide available at: https://docs.cannonkeys.com/bluepill-build/ +Blue Pill flashing guide at: https://docs.cannonkeys.com/flashing/ From 09a53d1aa302a166cadbe7c75bc6f64a30e30fe3 Mon Sep 17 00:00:00 2001 From: toraifu Date: Mon, 29 Jun 2020 16:52:17 -0400 Subject: [PATCH 117/154] [Keyboard] Fallacy (#9499) * Add Fallacy * Accept suggestions * fixed build error, renamed readme, added keymap specific config to force enable NKRO * remove FORCE_NKRO on VIA keymap, fix header * fix info.json to accurately reflect keymap * remove additional empty layers from default_split_bs keymap * Accept keymap formatting suggestions * remove empty config files at keymap level --- keyboards/fallacy/config.h | 69 ++++++++ keyboards/fallacy/fallacy.c | 40 +++++ keyboards/fallacy/fallacy.h | 54 +++++++ keyboards/fallacy/indicators.c | 61 ++++++++ keyboards/fallacy/indicators.h | 23 +++ keyboards/fallacy/info.json | 147 ++++++++++++++++++ keyboards/fallacy/keymaps/default/keymap.c | 34 ++++ .../fallacy/keymaps/default_split_bs/keymap.c | 33 ++++ keyboards/fallacy/keymaps/via/keymap.c | 47 ++++++ keyboards/fallacy/keymaps/via/rules.mk | 1 + keyboards/fallacy/readme.md | 21 +++ keyboards/fallacy/rules.mk | 29 ++++ 12 files changed, 559 insertions(+) create mode 100755 keyboards/fallacy/config.h create mode 100755 keyboards/fallacy/fallacy.c create mode 100755 keyboards/fallacy/fallacy.h create mode 100755 keyboards/fallacy/indicators.c create mode 100755 keyboards/fallacy/indicators.h create mode 100644 keyboards/fallacy/info.json create mode 100755 keyboards/fallacy/keymaps/default/keymap.c create mode 100755 keyboards/fallacy/keymaps/default_split_bs/keymap.c create mode 100755 keyboards/fallacy/keymaps/via/keymap.c create mode 100644 keyboards/fallacy/keymaps/via/rules.mk create mode 100644 keyboards/fallacy/readme.md create mode 100755 keyboards/fallacy/rules.mk diff --git a/keyboards/fallacy/config.h b/keyboards/fallacy/config.h new file mode 100755 index 000000000000..6904b419eae2 --- /dev/null +++ b/keyboards/fallacy/config.h @@ -0,0 +1,69 @@ +/* Copyright 2020 B. Fletcher (toraifu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "config_common.h" + +/* USB Device descriptor parameter + */ +#define VENDOR_ID 0xBF00 +#define PRODUCT_ID 0xBFFA +#define DEVICE_VER 0x0001 +#define MANUFACTURER SheuBox +#define PRODUCT Fallacy +#define DESCRIPTION Aluminum Alice Clone + +/* key matrix size + */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins + */ +#define MATRIX_ROW_PINS { B1, B2, B3, C6, C7 } +#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D6, D4, D5, D3 } +#define UNUSED_PINS { B0, B7 } + +/* COL2ROW or ROW2COL + */ +#define DIODE_DIRECTION COL2ROW + +/* 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_COUNT 1 +#define LED_DRIVER_LED_COUNT 3 + +/* Set 0 if debouncing isn't needed + */ +#define DEBOUNCE 5 + +/* 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 + +/* prevent stuck modifiers + */ +#define PREVENT_STUCK_MODIFIERS + +#define RGB_DI_PIN D2 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 14 diff --git a/keyboards/fallacy/fallacy.c b/keyboards/fallacy/fallacy.c new file mode 100755 index 000000000000..103860f0f819 --- /dev/null +++ b/keyboards/fallacy/fallacy.c @@ -0,0 +1,40 @@ +/* Copyright 2020 B. Fletcher (toraifu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "fallacy.h" +#include "indicators.h" + +void matrix_init_kb(void) { + init_fallacy_leds(); + matrix_init_user(); +} + +void matrix_scan_kb(void) { + update_fallacy_leds(); + matrix_scan_user(); +} + +/* update LED driver with usb led_state + */ +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + set_fallacy_led(2, led_state.caps_lock); /* caps */ + set_fallacy_led(1, led_state.num_lock); /* num lock */ + set_fallacy_led(0, led_state.scroll_lock); /* scroll lock */ + } + return res; +} diff --git a/keyboards/fallacy/fallacy.h b/keyboards/fallacy/fallacy.h new file mode 100755 index 000000000000..46480e668820 --- /dev/null +++ b/keyboards/fallacy/fallacy.h @@ -0,0 +1,54 @@ +/* Copyright 2020 B. Fletcher (toraifu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +/* All keys in matrix active: + * - Split Backspace + * - Split Right Shift + */ +#define LAYOUT_all( \ + K100, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K200, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K300, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K401, K403, K405, K406, K408, K410, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { KC_NO, K401, KC_NO, K403, KC_NO, K405, K406, KC_NO, K408, KC_NO, K410, KC_NO, KC_NO, KC_NO, K414 } \ +} + +/* Disable position 013 and 314 for: + * - Full size Backspace + * - Full size Right Shift + */ +#define LAYOUT_default( \ + K100, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ + K200, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K300, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K401, K403, K405, K406, K408, K410, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { KC_NO, K401, KC_NO, K403, KC_NO, K405, K406, KC_NO, K408, KC_NO, K410, KC_NO, KC_NO, KC_NO, K414 } \ +} diff --git a/keyboards/fallacy/indicators.c b/keyboards/fallacy/indicators.c new file mode 100755 index 000000000000..deda752faab0 --- /dev/null +++ b/keyboards/fallacy/indicators.c @@ -0,0 +1,61 @@ +/* Copyright 2020 B. Fletcher (toraifu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "indicators.h" +#include "drivers/issi/is31fl3731-simple.h" +#include "i2c_master.h" + +/* Set up IS31FL3731 for use in powering indicator LEDs. Absolutely overkill for this job but it was already in the design. + * init IS31FL3731 and i2c + */ +void init_fallacy_leds(void) { + i2c_init(); + IS31FL3731_init(LED_DRIVER_ADDR_1); + + for (int i = 0; i < LED_DRIVER_LED_COUNT; i++) { + IS31FL3731_set_led_control_register(i, true); + } + + IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); +} + + +/* update the buffer + */ +void update_fallacy_leds(void) { + IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); +} + + +/* wrapper to actually set the LED PWM + */ +void set_fallacy_led(int index, bool state) { + if (state) { + IS31FL3731_set_value(index, 128); + } + else { + IS31FL3731_set_value(index, 0); + } +} + + +/* define LED matrix + */ +const is31_led g_is31_leds[LED_DRIVER_LED_COUNT] = { + {0, C1_1}, + {0, C2_1}, + {0, C3_1}, +}; diff --git a/keyboards/fallacy/indicators.h b/keyboards/fallacy/indicators.h new file mode 100755 index 000000000000..6de374cda8ed --- /dev/null +++ b/keyboards/fallacy/indicators.h @@ -0,0 +1,23 @@ +/* Copyright 2020 B. Fletcher (toraifu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + + +void init_fallacy_leds(void); +void update_fallacy_leds(void); +void set_fallacy_led(int index, bool state); diff --git a/keyboards/fallacy/info.json b/keyboards/fallacy/info.json new file mode 100644 index 000000000000..fe30e1bfe269 --- /dev/null +++ b/keyboards/fallacy/info.json @@ -0,0 +1,147 @@ +{ + "keyboard_name": "Fallacy", + "maintainer": "Toraifu", + "width": 18.75, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"~", "x":1.75, "y":0}, + {"label":"!", "x":2.75, "y":0}, + {"label":"@", "x":3.75, "y":0}, + {"label":"#", "x":4.75, "y":0}, + {"label":"$", "x":5.75, "y":0}, + {"label":"%", "x":6.75, "y":0}, + {"label":"^", "x":7.75, "y":0}, + {"label":"&", "x":10, "y":0}, + {"label":"*", "x":11, "y":0}, + {"label":"(", "x":12, "y":0}, + {"label":")", "x":13, "y":0}, + {"label":"_", "x":14, "y":0}, + {"label":"+", "x":15, "y":0}, + {"label":"|", "x":16, "y":0}, + {"label":"~", "x":17, "y":0}, + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.5, "y":1, "w":1.5}, + {"label":"Q", "x":3, "y":1}, + {"label":"W", "x":4, "y":1}, + {"label":"E", "x":5, "y":1}, + {"label":"R", "x":6, "y":1}, + {"label":"T", "x":7, "y":1}, + {"label":"Y", "x":9.75, "y":1}, + {"label":"U", "x":10.75, "y":1}, + {"label":"I", "x":11.75, "y":1}, + {"label":"O", "x":12.75, "y":1}, + {"label":"P", "x":13.75, "y":1}, + {"label":"{", "x":14.75, "y":1}, + {"label":"}", "x":15.75, "y":1}, + {"label":"Backspace", "x":16.75, "y":1, "w":1.5}, + {"label":"PgDn", "x":0, "y":2}, + {"label":"Control", "x":1.25, "y":2, "w":1.75}, + {"label":"A", "x":3, "y":2}, + {"label":"S", "x":4, "y":2}, + {"label":"D", "x":5, "y":2}, + {"label":"F", "x":6, "y":2}, + {"label":"G", "x":7, "y":2}, + {"label":"H", "x":10.25, "y":2}, + {"label":"J", "x":11.25, "y":2}, + {"label":"K", "x":12.25, "y":2}, + {"label":"L", "x":13.25, "y":2}, + {"label":":", "x":14.25, "y":2}, + {"label":"\"", "x":15.25, "y":2}, + {"label":"Enter", "x":16.25, "y":2, "w":2.25}, + {"label":"Shift", "x":1, "y":3, "w":2.25}, + {"label":"Z", "x":3.25, "y":3}, + {"label":"X", "x":4.25, "y":3}, + {"label":"C", "x":5.25, "y":3}, + {"label":"V", "x":6.25, "y":3}, + {"label":"B", "x":7.25, "y":3}, + {"label":"B", "x":10, "y":3}, + {"label":"N", "x":11, "y":3}, + {"label":"M", "x":12, "y":3}, + {"label":"<", "x":13, "y":3}, + {"label":">", "x":14, "y":3}, + {"label":"?", "x":15, "y":3}, + {"label":"Shift", "x":16, "y":3, "w":1.75}, + {"label":"Fn1", "x":17.75, "y":3}, + {"label":"Ctrl", "x":1, "y":4, "w":1.5}, + {"label":"Alt", "x":4, "y":4, "w":1.5}, + {"label":"LSpace", "x":5.5, "y":4, "w":2.25}, + {"label":"Fn2", "x":7.75, "y":4}, + {"label":"RSpace", "x":10, "y":4, "w":2.75}, + {"label":"RAlt", "x":12.75, "y":4, "w":1.5}, + {"label":"RCtl", "x":17, "y":4, "w":1.5} + ] + }, + "LAYOUT_default": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"~", "x":1.75, "y":0}, + {"label":"!", "x":2.75, "y":0}, + {"label":"@", "x":3.75, "y":0}, + {"label":"#", "x":4.75, "y":0}, + {"label":"$", "x":5.75, "y":0}, + {"label":"%", "x":6.75, "y":0}, + {"label":"^", "x":7.75, "y":0}, + {"label":"&", "x":10, "y":0}, + {"label":"*", "x":11, "y":0}, + {"label":"(", "x":12, "y":0}, + {"label":")", "x":13, "y":0}, + {"label":"_", "x":14, "y":0}, + {"label":"+", "x":15, "y":0}, + {"label":"Backspace", "x":16, "y":0, "w":2}, + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.5, "y":1, "w":1.5}, + {"label":"Q", "x":3, "y":1}, + {"label":"W", "x":4, "y":1}, + {"label":"E", "x":5, "y":1}, + {"label":"R", "x":6, "y":1}, + {"label":"T", "x":7, "y":1}, + {"label":"Y", "x":9.75, "y":1}, + {"label":"U", "x":10.75, "y":1}, + {"label":"I", "x":11.75, "y":1}, + {"label":"O", "x":12.75, "y":1}, + {"label":"P", "x":13.75, "y":1}, + {"label":"{", "x":14.75, "y":1}, + {"label":"}", "x":15.75, "y":1}, + {"label":"Backspace", "x":16.75, "y":1, "w":1.5}, + {"label":"PgDn", "x":0, "y":2}, + {"label":"Control", "x":1.25, "y":2, "w":1.75}, + {"label":"A", "x":3, "y":2}, + {"label":"S", "x":4, "y":2}, + {"label":"D", "x":5, "y":2}, + {"label":"F", "x":6, "y":2}, + {"label":"G", "x":7, "y":2}, + {"label":"H", "x":10.25, "y":2}, + {"label":"J", "x":11.25, "y":2}, + {"label":"K", "x":12.25, "y":2}, + {"label":"L", "x":13.25, "y":2}, + {"label":":", "x":14.25, "y":2}, + {"label":"\"", "x":15.25, "y":2}, + {"label":"Enter", "x":16.25, "y":2, "w":2.25}, + {"label":"Shift", "x":1, "y":3, "w":2.25}, + {"label":"Z", "x":3.25, "y":3}, + {"label":"X", "x":4.25, "y":3}, + {"label":"C", "x":5.25, "y":3}, + {"label":"V", "x":6.25, "y":3}, + {"label":"B", "x":7.25, "y":3}, + {"label":"B", "x":10, "y":3}, + {"label":"N", "x":11, "y":3}, + {"label":"M", "x":12, "y":3}, + {"label":"<", "x":13, "y":3}, + {"label":">", "x":14, "y":3}, + {"label":"?", "x":15, "y":3}, + {"label":"Shift", "x":16, "y":3, "w":1.75}, + {"label":"Fn1", "x":17.75, "y":3}, + {"label":"Ctrl", "x":1, "y":4, "w":1.5}, + {"label":"Alt", "x":4, "y":4, "w":1.5}, + {"label":"LSpace", "x":5.5, "y":4, "w":2.25}, + {"label":"Fn2", "x":7.75, "y":4}, + {"label":"RSpace", "x":10, "y":4, "w":2.75}, + {"label":"RAlt", "x":12.75, "y":4, "w":1.5}, + {"label":"RCtl", "x":17, "y":4, "w":1.5} + ] + } + } +} diff --git a/keyboards/fallacy/keymaps/default/keymap.c b/keyboards/fallacy/keymaps/default/keymap.c new file mode 100755 index 000000000000..d0e32c42c9cb --- /dev/null +++ b/keyboards/fallacy/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 B. Fletcher (toraifu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_default( + 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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_RGUI, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL), + + [1] = LAYOUT_default( + KC_TRNS, RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, 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), + +}; diff --git a/keyboards/fallacy/keymaps/default_split_bs/keymap.c b/keyboards/fallacy/keymaps/default_split_bs/keymap.c new file mode 100755 index 000000000000..957e876c4bb6 --- /dev/null +++ b/keyboards/fallacy/keymaps/default_split_bs/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 B. Fletcher (toraifu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_RGUI, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL), + + [1] = LAYOUT_all( + KC_TRNS, RESET, KC_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), +}; diff --git a/keyboards/fallacy/keymaps/via/keymap.c b/keyboards/fallacy/keymaps/via/keymap.c new file mode 100755 index 000000000000..d6a7b0744d96 --- /dev/null +++ b/keyboards/fallacy/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2020 B. Fletcher (toraifu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_RGUI, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL), + + [1] = LAYOUT_all( + KC_TRNS, RESET, KC_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), + + [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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/fallacy/keymaps/via/rules.mk b/keyboards/fallacy/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/fallacy/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/fallacy/readme.md b/keyboards/fallacy/readme.md new file mode 100644 index 000000000000..e4a74de5279a --- /dev/null +++ b/keyboards/fallacy/readme.md @@ -0,0 +1,21 @@ +# Fallacy +![fallacy](https://raw.githubusercontent.com/toraifu/fallacy/master/014A1296-2.jpg) + + A PCB designed for the Fallacy custom keyboard, but fully compatible with the Alice and its clones. + +* Keyboard Maintainer: [toraifu](https://github.com/toraifu) +* Hardware: [geekhack](https://geekhack.org/index.php?topic=103728.0) +* Other general info: [fallacy](https://github.com/toraifu/fallacy) + +### Features: +* VIA support +* As minimal as possible design (no in-switch LEDs) +* Support for the use of fourteen WS2812B RGB-LEDs for keyboards for which underglow is desired. +* Misc features such as ESD protection, indicator LEDs, etc. + + +Make example for this keyboard (after setting up your build environment): + + make fallacy: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/fallacy/rules.mk b/keyboards/fallacy/rules.mk new file mode 100755 index 000000000000..1ab94f774eb2 --- /dev/null +++ b/keyboards/fallacy/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# 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 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 +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +# project specific files +SRC += indicators.c \ + drivers/issi/is31fl3731-simple.c +QUANTUM_LIB_SRC += i2c_master.c From 67beec5e94eefade8d22be10a5308373ddb54118 Mon Sep 17 00:00:00 2001 From: kwlodarczy <64139515+kwlodarczy@users.noreply.github.com> Date: Mon, 29 Jun 2020 23:00:36 +0100 Subject: [PATCH 118/154] [Keyboard] Rotr (#9546) * Add files via upload * Add files via upload Edited code to fix the formatting so that it follows the conventions. * Create README.md * Update config.h * Update keyboards/rotr/config.h * Update keyboards/rotr/config.h * Update keyboards/rotr/config.h * Update keyboards/rotr/kb.h * Update keyboards/rotr/keymaps/default/keymap.c * Update keyboards/rotr/keymaps/default/keymap.c * Update keyboards/rotr/rules.mk * Update keyboards/rotr/keymaps/default/keymap.c * Update keyboards/rotr/kb.c * Delete Makefile * Rename kb.c to rotr.c * Rename kb.h to rotr.h * Update rules.mk * Rename README.md to readme.md * Create info.json * Update keyboards/rotr/keymaps/default/keymap.c * Update keyboards/rotr/readme.md * Update keyboards/rotr/readme.md * Update keyboards/rotr/readme.md * Update keymap.c * Update rotr.c * Update info.json * Update keyboards/rotr/readme.md --- keyboards/rotr/config.h | 46 +++++++++++++++++++++++++ keyboards/rotr/info.json | 12 +++++++ keyboards/rotr/keymaps/default/keymap.c | 7 ++++ keyboards/rotr/readme.md | 20 +++++++++++ keyboards/rotr/rotr.c | 9 +++++ keyboards/rotr/rotr.h | 9 +++++ keyboards/rotr/rules.mk | 32 +++++++++++++++++ 7 files changed, 135 insertions(+) create mode 100644 keyboards/rotr/config.h create mode 100644 keyboards/rotr/info.json create mode 100644 keyboards/rotr/keymaps/default/keymap.c create mode 100644 keyboards/rotr/readme.md create mode 100644 keyboards/rotr/rotr.c create mode 100644 keyboards/rotr/rotr.h create mode 100644 keyboards/rotr/rules.mk diff --git a/keyboards/rotr/config.h b/keyboards/rotr/config.h new file mode 100644 index 000000000000..e488a4406cec --- /dev/null +++ b/keyboards/rotr/config.h @@ -0,0 +1,46 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x726F +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ROTR +#define PRODUCT ROTR +#define DESCRIPTION Macro Pad and Big Knob + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 3 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { E6 } +#define MATRIX_COL_PINS { D1, D0, D4 } + +/*Rotary Encoder Pins*/ +#define ENCODERS_PAD_A { C6 } +#define ENCODERS_PAD_B { D7 } + +/*Sets the number of pulses per increment*/ +#define ENCODER_RESOLUTION 2 + +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ + +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* 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/rotr/info.json b/keyboards/rotr/info.json new file mode 100644 index 000000000000..b95e8cedeece --- /dev/null +++ b/keyboards/rotr/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "rotr", + "url": "https://geekhack.org/index.php?topic=107104.0", + "maintainer": "qmk", + "width": 3, + "height": 1, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}] + } + } +} diff --git a/keyboards/rotr/keymaps/default/keymap.c b/keyboards/rotr/keymaps/default/keymap.c new file mode 100644 index 000000000000..cceb126461c6 --- /dev/null +++ b/keyboards/rotr/keymaps/default/keymap.c @@ -0,0 +1,7 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT( + KC_MPRV, KC_MPLY, KC_MNXT + ) +}; diff --git a/keyboards/rotr/readme.md b/keyboards/rotr/readme.md new file mode 100644 index 000000000000..a3e943fd3d6c --- /dev/null +++ b/keyboards/rotr/readme.md @@ -0,0 +1,20 @@ +# ROTR + +![ROTR](https://i.imgur.com/051liRCl.jpg) + +A macro pad with a multipurpose knob. + +* Keyboard Maintainer: [kwlodarczyk](https://github.com/kwlodarczy) +* Hardware: [Geekhack](https://geekhack.org/index.php?topic=107104.0) + +## Features: +* Minimal design with plug and play functionality. +* Frictionless, solid brass knob. +* Hot swappable switches. +* USB C connection. + +Make example for this keyboard (after setting up your build environment): + + make rotr: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/rotr/rotr.c b/keyboards/rotr/rotr.c new file mode 100644 index 000000000000..2097bd9c14cc --- /dev/null +++ b/keyboards/rotr/rotr.c @@ -0,0 +1,9 @@ +#include "rotr.h" + +void encoder_update_kb(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } +} diff --git a/keyboards/rotr/rotr.h b/keyboards/rotr/rotr.h new file mode 100644 index 000000000000..bf2ff12929e1 --- /dev/null +++ b/keyboards/rotr/rotr.h @@ -0,0 +1,9 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02 \ +) { \ + { K00, K01, K02 } \ +} diff --git a/keyboards/rotr/rules.mk b/keyboards/rotr/rules.mk new file mode 100644 index 000000000000..18d378ed7c68 --- /dev/null +++ b/keyboards/rotr/rules.mk @@ -0,0 +1,32 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +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 +# 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 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 = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +ENCODER_ENABLE = yes # Enables Rotary Encoder support From 6d6340a82b3ed61f5dd2a40dac78712d7bd736fd Mon Sep 17 00:00:00 2001 From: Herpiko Dwi Aguno Date: Tue, 30 Jun 2020 06:32:59 +0700 Subject: [PATCH 119/154] [Keyboard] Add UNK keyboard. (#9571) * Add UNK keyboard. * Update keyboards/handwired/unk/info.json * Use KC_NO to block out nonexistent matrix positions. * Update keyboards/handwired/unk/readme.md * Update keyboards/handwired/unk/keymaps/default/keymap.c --- keyboards/handwired/unk/info.json | 92 +++++++++++++++++++ .../handwired/unk/keymaps/default/config.h | 25 +++++ .../handwired/unk/keymaps/default/keymap.c | 83 +++++++++++++++++ keyboards/handwired/unk/readme.md | 15 +++ keyboards/handwired/unk/rev1/config.h | 91 ++++++++++++++++++ keyboards/handwired/unk/rev1/rev1.c | 1 + keyboards/handwired/unk/rev1/rev1.h | 30 ++++++ keyboards/handwired/unk/rev1/rules.mk | 0 keyboards/handwired/unk/rules.mk | 35 +++++++ keyboards/handwired/unk/unk.c | 1 + keyboards/handwired/unk/unk.h | 4 + 11 files changed, 377 insertions(+) create mode 100644 keyboards/handwired/unk/info.json create mode 100644 keyboards/handwired/unk/keymaps/default/config.h create mode 100644 keyboards/handwired/unk/keymaps/default/keymap.c create mode 100644 keyboards/handwired/unk/readme.md create mode 100644 keyboards/handwired/unk/rev1/config.h create mode 100644 keyboards/handwired/unk/rev1/rev1.c create mode 100644 keyboards/handwired/unk/rev1/rev1.h create mode 100644 keyboards/handwired/unk/rev1/rules.mk create mode 100644 keyboards/handwired/unk/rules.mk create mode 100644 keyboards/handwired/unk/unk.c create mode 100644 keyboards/handwired/unk/unk.h diff --git a/keyboards/handwired/unk/info.json b/keyboards/handwired/unk/info.json new file mode 100644 index 000000000000..4e2f7e13ff63 --- /dev/null +++ b/keyboards/handwired/unk/info.json @@ -0,0 +1,92 @@ +{ + "keyboard_name": "UNK", + "url": "https://github.com/herpiko/unk", + "maintainer": "herpiko", + "width": 17, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + {"x": 15, "y": 0, "w": 2}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1, "w": 1.5}, + {"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": 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}, + {"x": 14.5, "y": 1}, + {"x": 15.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2, "w": 1.75}, + {"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": 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": 2}, + {"x": 14.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3, "w": 2.25}, + {"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": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3}, + {"x": 13.25, "y": 3}, + {"x": 14.25, "y": 3, "w": 1.75}, + + {"x": 16, "y": 3}, + {"x": 0, "y": 4}, + {"x": 1, "y": 4, "w": 1.25}, + {"x": 2.25, "y": 4, "w": 1.25}, + {"x": 3.5, "y": 4, "w": 1.25}, + {"x": 4.75, "y": 4}, + {"x": 5.75, "y": 4, "w": 2.25}, + + {"x": 9, "y": 4, "w": 2.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25}, + {"x": 15, "y": 4}, + {"x": 16, "y": 4} + ] + } + } +} diff --git a/keyboards/handwired/unk/keymaps/default/config.h b/keyboards/handwired/unk/keymaps/default/config.h new file mode 100644 index 000000000000..3d2b4c7be75d --- /dev/null +++ b/keyboards/handwired/unk/keymaps/default/config.h @@ -0,0 +1,25 @@ +/* +Copyright 2020 Herpiko Dwi Aguno + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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_SERIAL + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS diff --git a/keyboards/handwired/unk/keymaps/default/keymap.c b/keyboards/handwired/unk/keymaps/default/keymap.c new file mode 100644 index 000000000000..a38b1f92d8d3 --- /dev/null +++ b/keyboards/handwired/unk/keymaps/default/keymap.c @@ -0,0 +1,83 @@ +#include QMK_KEYBOARD_H + +enum layer_names { + _QWERTY = 0, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST, +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +// 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. + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = 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_BSPACE, + 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_BSLASH, + 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_PSCREEN, 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_PGUP, + LOWER, KC_LCTL, KC_LALT, KC_LGUI, RAISE, KC_SPACE, KC_SPACE, RAISE, KC_RALT, KC_RCTL, KC_DELETE, KC_PGDOWN + ), + [_COLEMAK] = 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_BSPACE, + KC_HOME, 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_BSLASH, + KC_END, KC_BSPACE, 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_PSCREEN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_PGUP, + LOWER, KC_LCTL, KC_LALT, KC_LGUI, RAISE, KC_SPACE, KC_SPACE, RAISE, KC_RALT, KC_RCTL, KC_DELETE, KC_PGDOWN + ), + + [_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + COLEMAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_RAISE] = LAYOUT( + _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_ADJUST] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +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; + } + return true; +} diff --git a/keyboards/handwired/unk/readme.md b/keyboards/handwired/unk/readme.md new file mode 100644 index 000000000000..c4fbf6f22e26 --- /dev/null +++ b/keyboards/handwired/unk/readme.md @@ -0,0 +1,15 @@ +# UNK + +A split 65% handwired keyboard made by herpiko. + +* Keyboard Maintainer: [herpiko](https://github.com/herpiko) +* Hardware Supported: Pro Micro +* Hardware Availability: https://github.com/herpiko/unk + +Make example for this keyboard (after setting up your build environment): + + make handwired/unk/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). + +Build logs and files are available here: [UNK](https://github.com/herpiko/unk) diff --git a/keyboards/handwired/unk/rev1/config.h b/keyboards/handwired/unk/rev1/config.h new file mode 100644 index 000000000000..55b03d9525fa --- /dev/null +++ b/keyboards/handwired/unk/rev1/config.h @@ -0,0 +1,91 @@ +/* +Copyright 2020 Herpiko Dwi Aguno + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER herpiko +#define PRODUCT UNK +#define DESCRIPTION 70% split keyboard + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + + + +#define MASTER_LEFT // Comment this line for the right half firmware + +// wiring of each half +#define MATRIX_ROW_PINS { F5, B1, F6, B3, F7 } +#define MATRIX_COL_PINS { B2, B6, D4, C6, D7, E6, B4, B5 } +#define MATRIX_ROW_PINS_RIGHT { C6, D7, B4, E6, D4 } +#define MATRIX_COL_PINS_RIGHT { B1, B3, B2, B6, F7, B5, F6, F5 } + + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ + +#define USE_SERIAL +#define SOFT_SERIAL_PIN D0 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* 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 + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 + +#define RGBLED_NUM 12 // Number of LEDs + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/handwired/unk/rev1/rev1.c b/keyboards/handwired/unk/rev1/rev1.c new file mode 100644 index 000000000000..520a869e57ba --- /dev/null +++ b/keyboards/handwired/unk/rev1/rev1.c @@ -0,0 +1 @@ +#include "rev1.h" diff --git a/keyboards/handwired/unk/rev1/rev1.h b/keyboards/handwired/unk/rev1/rev1.h new file mode 100644 index 000000000000..3d20e3e9fcf1 --- /dev/null +++ b/keyboards/handwired/unk/rev1/rev1.h @@ -0,0 +1,30 @@ +#pragma once + +#include "unk.h" + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K71, K72, K73, K74, K75, K76, K77, \ + K10, K11, K12, K13, K14, K15, K16, K80, K81, K82, K83, K84, K85, K86, K87, \ + K20, K21, K22, K23, K24, K25, K26, K91, K92, K93, K94, K95, K96, K97, \ + K30, K31, K32, K33, K34, K35, K36, K101, K102, K103, K104, K105, K106, K107, \ + K40, K41, K42, K43, K44, K45, K112, K113, K114, K115, K116, K117 \ + ) \ + { \ + { K00, K01, K02, K03, K04, K05, K06, K07}, \ + { K10, K11, K12, K13, K14, K15, K16, KC_NO}, \ + { K20, K21, K22, K23, K24, K25, K26, KC_NO}, \ + { K30, K31, K32, K33, K34, K35, K36, KC_NO}, \ + { K40, K41, K42, K43, K44, K45, KC_NO, KC_NO}, \ +\ + { KC_NO, K71, K72, K73, K74, K75, K76, K77}, \ + { K80, K81, K82, K83, K84, K85, K86, K87}, \ + { KC_NO, K91, K92, K93, K94, K95, K96, K97}, \ + { KC_NO, K101, K102, K103, K104, K105, K106, K107}, \ + { KC_NO, KC_NO, K112, K113, K114, K115, K116, K117} \ + } + +/* +*/ + diff --git a/keyboards/handwired/unk/rev1/rules.mk b/keyboards/handwired/unk/rev1/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/handwired/unk/rules.mk b/keyboards/handwired/unk/rules.mk new file mode 100644 index 000000000000..667308705f2c --- /dev/null +++ b/keyboards/handwired/unk/rules.mk @@ -0,0 +1,35 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +SPLIT_KEYBOARD = yes + +DEFAULT_FOLDER = handwired/unk/rev1 diff --git a/keyboards/handwired/unk/unk.c b/keyboards/handwired/unk/unk.c new file mode 100644 index 000000000000..5764d560b6f0 --- /dev/null +++ b/keyboards/handwired/unk/unk.c @@ -0,0 +1 @@ +#include "unk.h" diff --git a/keyboards/handwired/unk/unk.h b/keyboards/handwired/unk/unk.h new file mode 100644 index 000000000000..baad77573c86 --- /dev/null +++ b/keyboards/handwired/unk/unk.h @@ -0,0 +1,4 @@ +#pragma once + +#include "quantum.h" +#include "rev1.h" From 12b43f55d64695e3cf1e9284af97a7c2fb9b77a8 Mon Sep 17 00:00:00 2001 From: Alabahuy Date: Tue, 30 Jun 2020 08:39:07 +0700 Subject: [PATCH 120/154] [Keyboard] rart67 (#9543) * Create config.h * Create info.json * Create rart67.c * Create rart67.h * Create readme.md * Create rules.mk * Create keymap.c * Update readme.md * Update info.json * Update info.json * Update config.h --- keyboards/rart/rart67/config.h | 62 +++++++++++++ keyboards/rart/rart67/info.json | 86 +++++++++++++++++++ .../rart/rart67/keymaps/default/keymap.c | 36 ++++++++ keyboards/rart/rart67/rart67.c | 17 ++++ keyboards/rart/rart67/rart67.h | 28 ++++++ keyboards/rart/rart67/readme.md | 14 +++ keyboards/rart/rart67/rules.mk | 32 +++++++ 7 files changed, 275 insertions(+) create mode 100644 keyboards/rart/rart67/config.h create mode 100644 keyboards/rart/rart67/info.json create mode 100644 keyboards/rart/rart67/keymaps/default/keymap.c create mode 100644 keyboards/rart/rart67/rart67.c create mode 100644 keyboards/rart/rart67/rart67.h create mode 100644 keyboards/rart/rart67/readme.md create mode 100644 keyboards/rart/rart67/rules.mk diff --git a/keyboards/rart/rart67/config.h b/keyboards/rart/rart67/config.h new file mode 100644 index 000000000000..63227a72af08 --- /dev/null +++ b/keyboards/rart/rart67/config.h @@ -0,0 +1,62 @@ +/* +Copyright 2020 Alabahuy + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x414C // "AL" +#define PRODUCT_ID 0x0067 // "67" +#define DEVICE_VER 0x0001 +#define MANUFACTURER Alabahuy +#define PRODUCT RART67 +#define DESCRIPTION 65% Mechanical Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +#define MATRIX_ROW_PINS { D0, D1, D2, D3, B0 } +#define MATRIX_COL_PINS { B3, B2, B1, D5, D4, D6, D7, B4, B5, F0, F7, F6, F5, F4, F1, E6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 0 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* 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_DI_PIN B7 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 11 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 240 +#define RGBLIGHT_SLEEP +#endif diff --git a/keyboards/rart/rart67/info.json b/keyboards/rart/rart67/info.json new file mode 100644 index 000000000000..8cd9046511ba --- /dev/null +++ b/keyboards/rart/rart67/info.json @@ -0,0 +1,86 @@ +{ + "keyboard_name": "RART67", + "url": "", + "maintainer": "Alabahuy", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + + {"label" : "Esc", "x":0, "y":0}, + {"label" : "1", "x":1, "y":0}, + {"label" : "2", "x":2, "y":0}, + {"label" : "3", "x":3, "y":0}, + {"label" : "4", "x":4, "y":0}, + {"label" : "5", "x":5, "y":0}, + {"label" : "6", "x":6, "y":0}, + {"label" : "7", "x":7, "y":0}, + {"label" : "8", "x":8, "y":0}, + {"label" : "9", "x":9, "y":0}, + {"label" : "0", "x":10, "y":0}, + {"label" : "-", "x":11, "y":0}, + {"label" : "=", "x":12, "y":0}, + {"label" : "|", "x":13, "y":0}, + {"label" : "Backspace", "x":14, "y":0}, + {"label" : "Page up", "x":15, "y":0}, + + {"label" : "Tab", "x":0, "y":1, "w":1.5}, + {"label" : "Q", "x":1.5, "y":1}, + {"label" : "W", "x":2.5, "y":1}, + {"label" : "E", "x":3.5, "y":1}, + {"label" : "R", "x":4.5, "y":1}, + {"label" : "T", "x":5.5, "y":1}, + {"label" : "Y", "x":6.5, "y":1}, + {"label" : "U", "x":7.5, "y":1}, + {"label" : "I", "x":8.5, "y":1}, + {"label" : "O", "x":9.5, "y":1}, + {"label" : "P", "x":10.5, "y":1}, + {"label" : "[", "x":11.5, "y":1}, + {"label" : "]", "x":12.5, "y":1}, + {"label" : "|", "x":13.5, "y":1, "w":1.5}, + {"label" : "Page down", "x":15, "y":1}, + + {"label" : "Caps lock", "x":0, "y":2, "w":1.75}, + {"label" : "A", "x":1.75, "y":2}, + {"label" : "S", "x":2.75, "y":2}, + {"label" : "D", "x":3.75, "y":2}, + {"label" : "F", "x":4.75, "y":2}, + {"label" : "G", "x":5.75, "y":2}, + {"label" : "H", "x":6.75, "y":2}, + {"label" : "J", "x":7.75, "y":2}, + {"label" : "K", "x":8.75, "y":2}, + {"label" : "L", "x":9.75, "y":2}, + {"label" : ";", "x":10.75, "y":2}, + {"label" : "'", "x":11.75, "y":2}, + {"label" : "Enter", "x":12.75, "y":2, "w":2.25}, + {"label" : "Home", "x":15, "y":2}, + + {"label" : "Shift", "x":0, "y":3, "w":2.25}, + {"label" : "Z", "x":2.25, "y":3}, + {"label" : "X", "x":3.25, "y":3}, + {"label" : "C", "x":4.25, "y":3}, + {"label" : "V", "x":5.25, "y":3}, + {"label" : "B", "x":6.25, "y":3}, + {"label" : "N", "x":7.25, "y":3}, + {"label" : "M", "x":8.25, "y":3}, + {"label" : ",", "x":9.25, "y":3}, + {"label" : ".", "x":10.25, "y":3}, + {"label" : "/", "x":11.25, "y":3}, + {"label" : "Shift", "x":12.25, "y":3, "w":1.75}, + {"label" : "Up", "x":14, "y":3}, + {"label" : "End", "x":15, "y":3}, + + {"label" : "Ctrl", "x":0, "y":4, "w":1.25}, + {"label" : "Windows", "x":1.25, "y":4, "w":1.25}, + {"label" : "Alt", "x":2.5, "y":4, "w":1.25}, + {"label" : "Space", "x":3.75, "y":4, "w":6.25}, + {"label" : "Alt", "x":10, "y":4, "w":1.5}, + {"label" : "Ctrl", "x":11.5, "y":4, "w":1.5}, + {"label" : "Left", "x":13, "y":4 }, + {"label" : "Down", "x":14, "y":4 }, + {"label" : "Right", "x":15, "y":4 } + ] + } + } +} diff --git a/keyboards/rart/rart67/keymaps/default/keymap.c b/keyboards/rart/rart67/keymaps/default/keymap.c new file mode 100644 index 000000000000..e1a21f89dc06 --- /dev/null +++ b/keyboards/rart/rart67/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* +Copyright 2020 Alabahuy + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public 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_DEL, 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_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, _______, + RESET, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_P7, KC_P8, KC_P9, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, KC_P1, KC_P2, KC_P3, KC_VOLU, _______, + _______, _______, _______, _______, _______, KC_P0, KC_MPRV, KC_VOLD, KC_MNXT + ), +}; diff --git a/keyboards/rart/rart67/rart67.c b/keyboards/rart/rart67/rart67.c new file mode 100644 index 000000000000..0ca3e00f22b1 --- /dev/null +++ b/keyboards/rart/rart67/rart67.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "rart67.h" + + diff --git a/keyboards/rart/rart67/rart67.h b/keyboards/rart/rart67/rart67.h new file mode 100644 index 000000000000..a31b6f409038 --- /dev/null +++ b/keyboards/rart/rart67/rart67.h @@ -0,0 +1,28 @@ + +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3E, K3F, \ + K40, K41, K42, K45, K49, K4A, K4B, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, KC_NO, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, KC_NO, KC_NO, K4E, K4F }, \ +} + diff --git a/keyboards/rart/rart67/readme.md b/keyboards/rart/rart67/readme.md new file mode 100644 index 000000000000..ebf423ca5731 --- /dev/null +++ b/keyboards/rart/rart67/readme.md @@ -0,0 +1,14 @@ +# [RART 67](https://github.com/alabahuy/RART/tree/master/RART67) + +65% pcb mechanical keyboard based on [IMKG](https://www.facebook.com/groups/indomechanicalkeyboard/) (Indonesia Mechanical Keyboard Group) + +* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy) +* Hardware Supported: RART67 PCB, Mini USB, ATMega32U4, RGB underglow +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make rart/rart67: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/rart/rart67/rules.mk b/keyboards/rart/rart67/rules.mk new file mode 100644 index 000000000000..abf2696c3d38 --- /dev/null +++ b/keyboards/rart/rart67/rules.mk @@ -0,0 +1,32 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 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 +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From 48db3ad6ef1e7c98bce592791972c7beaa2315ef Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Tue, 30 Jun 2020 10:30:04 +0800 Subject: [PATCH 121/154] Fix Herringbone keymap typo (#9578) * Change TILD to GRV --- keyboards/ramonimbao/herringbone/keymaps/default/keymap.c | 2 +- keyboards/ramonimbao/herringbone/keymaps/iso/keymap.c | 2 +- keyboards/ramonimbao/herringbone/keymaps/via/keymap.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/ramonimbao/herringbone/keymaps/default/keymap.c b/keyboards/ramonimbao/herringbone/keymaps/default/keymap.c index 18047fbea763..b9cf45351f29 100644 --- a/keyboards/ramonimbao/herringbone/keymaps/default/keymap.c +++ b/keyboards/ramonimbao/herringbone/keymaps/default/keymap.c @@ -18,7 +18,7 @@ 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, KC_PSCR, KC_DEL, - KC_TILD, KC_1, KC_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_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, diff --git a/keyboards/ramonimbao/herringbone/keymaps/iso/keymap.c b/keyboards/ramonimbao/herringbone/keymaps/iso/keymap.c index 43255343e72b..d6d2b15f1971 100644 --- a/keyboards/ramonimbao/herringbone/keymaps/iso/keymap.c +++ b/keyboards/ramonimbao/herringbone/keymaps/iso/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [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_PSCR, KC_DEL, - KC_TILD, KC_1, KC_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_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_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_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, diff --git a/keyboards/ramonimbao/herringbone/keymaps/via/keymap.c b/keyboards/ramonimbao/herringbone/keymaps/via/keymap.c index d39f7c9ab82f..04734d044476 100644 --- a/keyboards/ramonimbao/herringbone/keymaps/via/keymap.c +++ b/keyboards/ramonimbao/herringbone/keymaps/via/keymap.c @@ -18,7 +18,7 @@ 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_DEL, - KC_TILD, KC_1, KC_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_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_NO, 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_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, KC_END, From 398a7e5b3f92f6f657093f0dcce7ac67b43a3c67 Mon Sep 17 00:00:00 2001 From: unicorn855 Date: Tue, 30 Jun 2020 13:23:31 +0200 Subject: [PATCH 122/154] re-added mouse and media keys plus slight changes (#9515) Co-authored-by: Ryan --- keyboards/hotdox/config.h | 10 +-- keyboards/hotdox/keymaps/via/keymap.c | 103 +++++++++++--------------- keyboards/hotdox/keymaps/via/rules.mk | 11 +-- 3 files changed, 49 insertions(+), 75 deletions(-) diff --git a/keyboards/hotdox/config.h b/keyboards/hotdox/config.h index db162a0f7aa4..c95096a7d382 100644 --- a/keyboards/hotdox/config.h +++ b/keyboards/hotdox/config.h @@ -3,13 +3,14 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0x414B // 'AK' Alpaca Keyboards + +#define VENDOR_ID 0x414B // 'AK' for Alpaca Keyboards #define PRODUCT_ID 0x0001 // sequentially numbered #define DEVICE_VER 0x0001 -#define MANUFACTURER Z.P.Z.O. -#define PRODUCT Alpaca Keyboards HotDox -#define DESCRIPTION QMK keyboard firmware for HotDox +#define MANUFACTURER Alpaca Keyboards +#define PRODUCT ErgoDox 76 "HotDox" +#define DESCRIPTION QMK FW for the "HotDox" /* key matrix size */ #define MATRIX_ROWS 6 @@ -75,4 +76,3 @@ //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION //#define DEBUG_MATRIX_SCAN_RATE - diff --git a/keyboards/hotdox/keymaps/via/keymap.c b/keyboards/hotdox/keymaps/via/keymap.c index c90e4cbef305..0a3d41cf788e 100644 --- a/keyboards/hotdox/keymaps/via/keymap.c +++ b/keyboards/hotdox/keymaps/via/keymap.c @@ -1,9 +1,9 @@ #include QMK_KEYBOARD_H #include "version.h" -//#define BASE 0 // default layer -//#define SYMB 1 // symbols -//#define MDIA 2 // media keys +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys enum custom_keycodes { VRSN = SAFE_RANGE, @@ -34,20 +34,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[0] = LAYOUT_ergodox( // layer 0 : default + +[BASE] = LAYOUT_ergodox( // layer 0 : default // left hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, - KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), - LT(1,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPC,KC_BSPC,KC_END, // right hand KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, LT(2, KC_SCLN),GUI_T(KC_QUOT), + 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, KC_FN1, KC_LALT, CTL_T(KC_ESC), @@ -57,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 1: Symbol Layer * * ,---------------------------------------------------. ,--------------------------------------------------. - * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -65,33 +66,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | EEP_RST | | | | | | | . | 0 | = | | + * | | | | | | | . | 0 | = | | * `-----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * |Animat| | |Toggle|Solid | + * | | | | | | * ,------|------|------| |------+------+------. - * |Bright|Bright| | | |Hue- |Hue+ | + * |Bright|Bright| | | | | | * |ness- |ness+ |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' */ // SYMBOLS -[1] = LAYOUT_ergodox( + +[SYMB] = 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, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,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, + RGB_VAD,RGB_VAI,KC_TRNS, // 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_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS @@ -118,45 +120,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------' `--------------------' */ // MEDIA AND MOUSE -[2] = 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, - 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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, - 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +[MDIA] = LAYOUT_ergodox( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + 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, 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_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_WBAK ), }; diff --git a/keyboards/hotdox/keymaps/via/rules.mk b/keyboards/hotdox/keymaps/via/rules.mk index 02752039c054..a7f52bafc7d6 100644 --- a/keyboards/hotdox/keymaps/via/rules.mk +++ b/keyboards/hotdox/keymaps/via/rules.mk @@ -1,12 +1,5 @@ VIA_ENABLE = yes LTO_ENABLE = yes -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control - -LEADER_ENABLE = no -FAUXCLICKY_ENABLE = no -MIDI_ENABLE = no -BLUETOOTH_ENABLE = no -KEY_LOCK_ENABLE = no -TERMINAL_ENABLE = no \ No newline at end of file +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control From 24f59c2d7268c5e853d496733e844f60adf421b2 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 1 Jul 2020 02:53:24 +1000 Subject: [PATCH 123/154] Add more missing info.json layouts (#9595) --- keyboards/boardwalk/info.json | 798 +++++----- keyboards/dz60/info.json | 1704 +++++++++++++++++++++- keyboards/gh60/revc/info.json | 570 +++++++- keyboards/gray_studio/space65/info.json | 241 ++- keyboards/handwired/k_numpad17/info.json | 34 + keyboards/handwired/lovelive9/info.json | 28 +- keyboards/hineybush/h10/info.json | 219 ++- keyboards/hineybush/h60/info.json | 356 +++++ keyboards/maartenwut/plain60/info.json | 910 ++++++------ keyboards/smk60/info.json | 443 +++++- 10 files changed, 4464 insertions(+), 839 deletions(-) create mode 100644 keyboards/handwired/k_numpad17/info.json create mode 100644 keyboards/hineybush/h60/info.json diff --git a/keyboards/boardwalk/info.json b/keyboards/boardwalk/info.json index a287f31a44e4..dffcba6c2741 100644 --- a/keyboards/boardwalk/info.json +++ b/keyboards/boardwalk/info.json @@ -5,355 +5,451 @@ "width": 15, "height": 5, "layouts": { - "LAYOUT_ortho_5x14": { - "layout": [ - {"label":"k00", "x":0, "y":0, "w":1.5}, - {"label":"k01", "x":1.5, "y":0}, - {"label":"k02", "x":2.5, "y":0}, - {"label":"k03", "x":3.5, "y":0}, - {"label":"k04", "x":4.5, "y":0}, - {"label":"k05", "x":5.5, "y":0}, - {"label":"k06", "x":6.5, "y":0}, - {"label":"k07", "x":7.5, "y":0}, - {"label":"k08", "x":8.5, "y":0}, - {"label":"k09", "x":9.5, "y":0}, - {"label":"k010", "x":10.5, "y":0}, - {"label":"k011", "x":11.5, "y":0}, - {"label":"k012", "x":12.5, "y":0}, - {"label":"k013", "x":13.5, "y":0, "w":1.5}, - {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k110", "x":10.5, "y":1}, - {"label":"k111", "x":11.5, "y":1}, - {"label":"k112", "x":12.5, "y":1}, - {"label":"k113", "x":13.5, "y":1, "w":1.5}, - {"label":"k20", "x":0, "y":2, "w":1.5}, - {"label":"k21", "x":1.5, "y":2}, - {"label":"k22", "x":2.5, "y":2}, - {"label":"k23", "x":3.5, "y":2}, - {"label":"k24", "x":4.5, "y":2}, - {"label":"k25", "x":5.5, "y":2}, - {"label":"k26", "x":6.5, "y":2}, - {"label":"k27", "x":7.5, "y":2}, - {"label":"k28", "x":8.5, "y":2}, - {"label":"k29", "x":9.5, "y":2}, - {"label":"k210", "x":10.5, "y":2}, - {"label":"k211", "x":11.5, "y":2}, - {"label":"k212", "x":12.5, "y":2}, - {"label":"k213", "x":13.5, "y":2, "w":1.5}, - {"label":"k30", "x":0, "y":3, "w":1.5}, - {"label":"k31", "x":1.5, "y":3}, - {"label":"k32", "x":2.5, "y":3}, - {"label":"k33", "x":3.5, "y":3}, - {"label":"k34", "x":4.5, "y":3}, - {"label":"k35", "x":5.5, "y":3}, - {"label":"k36", "x":6.5, "y":3}, - {"label":"k37", "x":7.5, "y":3}, - {"label":"k38", "x":8.5, "y":3}, - {"label":"k39", "x":9.5, "y":3}, - {"label":"k310", "x":10.5, "y":3}, - {"label":"k311", "x":11.5, "y":3}, - {"label":"k312", "x":12.5, "y":3}, - {"label":"k313", "x":13.5, "y":3, "w":1.5}, - {"label":"k40", "x":0, "y":4, "w":1.5}, - {"label":"k41", "x":1.5, "y":4}, - {"label":"k42", "x":2.5, "y":4}, - {"label":"k43", "x":3.5, "y":4}, - {"label":"k44", "x":4.5, "y":4}, - {"label":"k45", "x":5.5, "y":4}, - {"label":"k46", "x":6.5, "y":4}, - {"label":"k47", "x":7.5, "y":4}, - {"label":"k48", "x":8.5, "y":4}, - {"label":"k49", "x":9.5, "y":4}, - {"label":"k410", "x":10.5, "y":4}, - {"label":"k411", "x":11.5, "y":4}, - {"label":"k412", "x":12.5, "y":4}, - {"label":"k413", "x":13.5, "y":4, "w":1.5} - ] - }, - "LAYOUT_ortho_hhkb": { - "layout": [ - {"label":"k00", "x":0, "y":0, "w":1.5}, - {"label":"k01", "x":1.5, "y":0}, - {"label":"k02", "x":2.5, "y":0}, - {"label":"k03", "x":3.5, "y":0}, - {"label":"k04", "x":4.5, "y":0}, - {"label":"k05", "x":5.5, "y":0}, - {"label":"k06", "x":6.5, "y":0}, - {"label":"k07", "x":7.5, "y":0}, - {"label":"k08", "x":8.5, "y":0}, - {"label":"k09", "x":9.5, "y":0}, - {"label":"k010", "x":10.5, "y":0}, - {"label":"k011", "x":11.5, "y":0}, - {"label":"k012", "x":12.5, "y":0}, - {"label":"k013", "x":13.5, "y":0, "w":1.5}, - {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k110", "x":10.5, "y":1}, - {"label":"k111", "x":11.5, "y":1}, - {"label":"k112", "x":12.5, "y":1}, - {"label":"k113", "x":13.5, "y":1, "w":1.5}, - {"label":"k20", "x":0, "y":2, "w":1.5}, - {"label":"k21", "x":1.5, "y":2}, - {"label":"k22", "x":2.5, "y":2}, - {"label":"k23", "x":3.5, "y":2}, - {"label":"k24", "x":4.5, "y":2}, - {"label":"k25", "x":5.5, "y":2}, - {"label":"k26", "x":6.5, "y":2}, - {"label":"k27", "x":7.5, "y":2}, - {"label":"k28", "x":8.5, "y":2}, - {"label":"k29", "x":9.5, "y":2}, - {"label":"k210", "x":10.5, "y":2}, - {"label":"k211", "x":11.5, "y":2}, - {"label":"k212", "x":12.5, "y":2}, - {"label":"k213", "x":13.5, "y":2, "w":1.5}, - {"label":"k30", "x":0, "y":3, "w":1.5}, - {"label":"k31", "x":1.5, "y":3}, - {"label":"k32", "x":2.5, "y":3}, - {"label":"k33", "x":3.5, "y":3}, - {"label":"k34", "x":4.5, "y":3}, - {"label":"k35", "x":5.5, "y":3}, - {"label":"k36", "x":6.5, "y":3}, - {"label":"k37", "x":7.5, "y":3}, - {"label":"k38", "x":8.5, "y":3}, - {"label":"k39", "x":9.5, "y":3}, - {"label":"k310", "x":10.5, "y":3}, - {"label":"k311", "x":11.5, "y":3}, - {"label":"k312", "x":12.5, "y":3}, - {"label":"k313", "x":13.5, "y":3, "w":1.5}, - {"label":"k41", "x":1.5, "y":4}, - {"label":"k42", "x":2.5, "y":4}, - {"label":"k43", "x":3.5, "y":4}, - {"label":"k44", "x":4.5, "y":4}, - {"label":"k45", "x":5.5, "y":4, "w":2}, - {"label":"k47", "x":7.5, "y":4, "w":2}, - {"label":"k49", "x":9.5, "y":4}, - {"label":"k410", "x":10.5, "y":4}, - {"label":"k411", "x":11.5, "y":4}, - {"label":"k412", "x":12.5, "y":4} - ] - }, - "LAYOUT_ortho_7u": { - "layout": [ - {"label":"k00", "x":0, "y":0, "w":1.5}, - {"label":"k01", "x":1.5, "y":0}, - {"label":"k02", "x":2.5, "y":0}, - {"label":"k03", "x":3.5, "y":0}, - {"label":"k04", "x":4.5, "y":0}, - {"label":"k05", "x":5.5, "y":0}, - {"label":"k06", "x":6.5, "y":0}, - {"label":"k07", "x":7.5, "y":0}, - {"label":"k08", "x":8.5, "y":0}, - {"label":"k09", "x":9.5, "y":0}, - {"label":"k010", "x":10.5, "y":0}, - {"label":"k011", "x":11.5, "y":0}, - {"label":"k012", "x":12.5, "y":0}, - {"label":"k013", "x":13.5, "y":0, "w":1.5}, - {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k110", "x":10.5, "y":1}, - {"label":"k111", "x":11.5, "y":1}, - {"label":"k112", "x":12.5, "y":1}, - {"label":"k113", "x":13.5, "y":1, "w":1.5}, - {"label":"k20", "x":0, "y":2, "w":1.5}, - {"label":"k21", "x":1.5, "y":2}, - {"label":"k22", "x":2.5, "y":2}, - {"label":"k23", "x":3.5, "y":2}, - {"label":"k24", "x":4.5, "y":2}, - {"label":"k25", "x":5.5, "y":2}, - {"label":"k26", "x":6.5, "y":2}, - {"label":"k27", "x":7.5, "y":2}, - {"label":"k28", "x":8.5, "y":2}, - {"label":"k29", "x":9.5, "y":2}, - {"label":"k210", "x":10.5, "y":2}, - {"label":"k211", "x":11.5, "y":2}, - {"label":"k212", "x":12.5, "y":2}, - {"label":"k213", "x":13.5, "y":2, "w":1.5}, - {"label":"k30", "x":0, "y":3, "w":1.5}, - {"label":"k31", "x":1.5, "y":3}, - {"label":"k32", "x":2.5, "y":3}, - {"label":"k33", "x":3.5, "y":3}, - {"label":"k34", "x":4.5, "y":3}, - {"label":"k35", "x":5.5, "y":3}, - {"label":"k36", "x":6.5, "y":3}, - {"label":"k37", "x":7.5, "y":3}, - {"label":"k38", "x":8.5, "y":3}, - {"label":"k39", "x":9.5, "y":3}, - {"label":"k310", "x":10.5, "y":3}, - {"label":"k311", "x":11.5, "y":3}, - {"label":"k312", "x":12.5, "y":3}, - {"label":"k313", "x":13.5, "y":3, "w":1.5}, - {"label":"k41", "x":1.5, "y":4}, - {"label":"k42", "x":2.5, "y":4, "w":1.5}, - {"label":"k46", "x":4, "y":4, "w":7}, - {"label":"k411", "x":11, "y":4, "w":1.5}, - {"label":"k412", "x":12.5, "y":4} - ] - }, - "LAYOUT_2u_arrow": { - "layout": [ - {"label":"k00", "x":0, "y":0, "w":1.5}, - {"label":"k01", "x":1.5, "y":0}, - {"label":"k02", "x":2.5, "y":0}, - {"label":"k03", "x":3.5, "y":0}, - {"label":"k04", "x":4.5, "y":0}, - {"label":"k05", "x":5.5, "y":0}, - {"label":"k06", "x":6.5, "y":0}, - {"label":"k07", "x":7.5, "y":0}, - {"label":"k08", "x":8.5, "y":0}, - {"label":"k09", "x":9.5, "y":0}, - {"label":"k010", "x":10.5, "y":0}, - {"label":"k011", "x":11.5, "y":0}, - {"label":"k012", "x":12.5, "y":0}, - {"label":"k013", "x":13.5, "y":0, "w":1.5}, - {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k110", "x":10.5, "y":1}, - {"label":"k111", "x":11.5, "y":1}, - {"label":"k112", "x":12.5, "y":1}, - {"label":"k113", "x":13.5, "y":1, "w":1.5}, - {"label":"k20", "x":0, "y":2, "w":1.5}, - {"label":"k21", "x":1.5, "y":2}, - {"label":"k22", "x":2.5, "y":2}, - {"label":"k23", "x":3.5, "y":2}, - {"label":"k24", "x":4.5, "y":2}, - {"label":"k25", "x":5.5, "y":2}, - {"label":"k26", "x":6.5, "y":2}, - {"label":"k27", "x":7.5, "y":2}, - {"label":"k28", "x":8.5, "y":2}, - {"label":"k29", "x":9.5, "y":2}, - {"label":"k210", "x":10.5, "y":2}, - {"label":"k211", "x":11.5, "y":2}, - {"label":"k212", "x":12.5, "y":2, "w":1.5}, - {"label":"k213", "x":14, "y":2}, - {"label":"k30", "x":0, "y":3, "w":1.5}, - {"label":"k31", "x":1.5, "y":3}, - {"label":"k32", "x":2.5, "y":3}, - {"label":"k33", "x":3.5, "y":3}, - {"label":"k34", "x":4.5, "y":3}, - {"label":"k35", "x":5.5, "y":3}, - {"label":"k36", "x":6.5, "y":3}, - {"label":"k37", "x":7.5, "y":3}, - {"label":"k38", "x":8.5, "y":3}, - {"label":"k39", "x":9.5, "y":3}, - {"label":"k310", "x":10.5, "y":3}, - {"label":"k311", "x":11.5, "y":3, "w":1.5}, - {"label":"k312", "x":13, "y":3}, - {"label":"k313", "x":14, "y":3}, - {"label":"k40", "x":0, "y":4, "w":1.25}, - {"label":"k41", "x":1.25, "y":4, "w":1.25}, - {"label":"k42", "x":2.5, "y":4}, - {"label":"k43", "x":3.5, "y":4}, - {"label":"k44", "x":4.5, "y":4, "w":2}, - {"label":"k46", "x":6.5, "y":4, "w":2}, - {"label":"k48", "x":8.5, "y":4}, - {"label":"k49", "x":9.5, "y":4, "w":1.25}, - {"label":"k410", "x":10.75, "y":4, "w":1.25}, - {"label":"k411", "x":12, "y":4}, - {"label":"k412", "x":13, "y":4}, - {"label":"k413", "x":14, "y":4} - ] - }, - "LAYOUT_625u_arrow": { - "layout": [ - {"label":"k00", "x":0, "y":0, "w":1.5}, - {"label":"k01", "x":1.5, "y":0}, - {"label":"k02", "x":2.5, "y":0}, - {"label":"k03", "x":3.5, "y":0}, - {"label":"k04", "x":4.5, "y":0}, - {"label":"k05", "x":5.5, "y":0}, - {"label":"k06", "x":6.5, "y":0}, - {"label":"k07", "x":7.5, "y":0}, - {"label":"k08", "x":8.5, "y":0}, - {"label":"k09", "x":9.5, "y":0}, - {"label":"k010", "x":10.5, "y":0}, - {"label":"k011", "x":11.5, "y":0}, - {"label":"k012", "x":12.5, "y":0}, - {"label":"k013", "x":13.5, "y":0, "w":1.5}, - {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k110", "x":10.5, "y":1}, - {"label":"k111", "x":11.5, "y":1}, - {"label":"k112", "x":12.5, "y":1}, - {"label":"k113", "x":13.5, "y":1, "w":1.5}, - {"label":"k20", "x":0, "y":2, "w":1.5}, - {"label":"k21", "x":1.5, "y":2}, - {"label":"k22", "x":2.5, "y":2}, - {"label":"k23", "x":3.5, "y":2}, - {"label":"k24", "x":4.5, "y":2}, - {"label":"k25", "x":5.5, "y":2}, - {"label":"k26", "x":6.5, "y":2}, - {"label":"k27", "x":7.5, "y":2}, - {"label":"k28", "x":8.5, "y":2}, - {"label":"k29", "x":9.5, "y":2}, - {"label":"k210", "x":10.5, "y":2}, - {"label":"k211", "x":11.5, "y":2}, - {"label":"k212", "x":12.5, "y":2, "w":1.5}, - {"label":"k213", "x":14, "y":2}, - {"label":"k30", "x":0, "y":3, "w":1.5}, - {"label":"k31", "x":1.5, "y":3}, - {"label":"k32", "x":2.5, "y":3}, - {"label":"k33", "x":3.5, "y":3}, - {"label":"k34", "x":4.5, "y":3}, - {"label":"k35", "x":5.5, "y":3}, - {"label":"k36", "x":6.5, "y":3}, - {"label":"k37", "x":7.5, "y":3}, - {"label":"k38", "x":8.5, "y":3}, - {"label":"k39", "x":9.5, "y":3}, - {"label":"k310", "x":10.5, "y":3}, - {"label":"k311", "x":11.5, "y":3, "w":1.5}, - {"label":"k312", "x":13, "y":3}, - {"label":"k313", "x":14, "y":3}, - {"label":"k40", "x":0, "y":4, "w":1.25}, - {"label":"k41", "x":1.25, "y":4, "w":1.25}, - {"label":"k42", "x":2.5, "y":4}, - {"label":"k45", "x":3.5, "y":4, "w":6.25}, - {"label":"k49", "x":9.75, "y":4}, - {"label":"k410", "x":10.75, "y":4, "w":1.25}, - {"label":"k411", "x":12, "y":4}, - {"label":"k412", "x":13, "y":4}, - {"label":"k413", "x":14, "y":4} - ] - } + "LAYOUT_ortho_5x14": { + "layout": [ + {"x": 0, "y": 0, "w": 1.5}, + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0, "w": 1.5}, + + {"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.5}, + {"x": 1.5, "y": 2}, + {"x": 2.5, "y": 2}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2}, + {"x": 7.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2}, + {"x": 13.5, "y": 2, "w": 1.5}, + + {"x": 0, "y": 3, "w": 1.5}, + {"x": 1.5, "y": 3}, + {"x": 2.5, "y": 3}, + {"x": 3.5, "y": 3}, + {"x": 4.5, "y": 3}, + {"x": 5.5, "y": 3}, + {"x": 6.5, "y": 3}, + {"x": 7.5, "y": 3}, + {"x": 8.5, "y": 3}, + {"x": 9.5, "y": 3}, + {"x": 10.5, "y": 3}, + {"x": 11.5, "y": 3}, + {"x": 12.5, "y": 3}, + {"x": 13.5, "y": 3, "w": 1.5}, + + {"x": 0, "y": 4, "w": 1.5}, + {"x": 1.5, "y": 4}, + {"x": 2.5, "y": 4}, + {"x": 3.5, "y": 4}, + {"x": 4.5, "y": 4}, + {"x": 5.5, "y": 4}, + {"x": 6.5, "y": 4}, + {"x": 7.5, "y": 4}, + {"x": 8.5, "y": 4}, + {"x": 9.5, "y": 4}, + {"x": 10.5, "y": 4}, + {"x": 11.5, "y": 4}, + {"x": 12.5, "y": 4}, + {"x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_ortho_hhkb": { + "layout": [ + {"x": 0, "y": 0, "w": 1.5}, + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0, "w": 1.5}, + + {"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.5}, + {"x": 1.5, "y": 2}, + {"x": 2.5, "y": 2}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2}, + {"x": 7.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2}, + {"x": 13.5, "y": 2, "w": 1.5}, + + {"x": 0, "y": 3, "w": 1.5}, + {"x": 1.5, "y": 3}, + {"x": 2.5, "y": 3}, + {"x": 3.5, "y": 3}, + {"x": 4.5, "y": 3}, + {"x": 5.5, "y": 3}, + {"x": 6.5, "y": 3}, + {"x": 7.5, "y": 3}, + {"x": 8.5, "y": 3}, + {"x": 9.5, "y": 3}, + {"x": 10.5, "y": 3}, + {"x": 11.5, "y": 3}, + {"x": 12.5, "y": 3}, + {"x": 13.5, "y": 3, "w": 1.5}, + + {"x": 1.5, "y": 4}, + {"x": 2.5, "y": 4}, + {"x": 3.5, "y": 4}, + {"x": 4.5, "y": 4}, + {"x": 5.5, "y": 4, "w": 2}, + {"x": 7.5, "y": 4, "w": 2}, + {"x": 9.5, "y": 4}, + {"x": 10.5, "y": 4}, + {"x": 11.5, "y": 4}, + {"x": 12.5, "y": 4} + ] + }, + "LAYOUT_ortho_7u": { + "layout": [ + {"x": 0, "y": 0, "w": 1.5}, + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0, "w": 1.5}, + + {"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.5}, + {"x": 1.5, "y": 2}, + {"x": 2.5, "y": 2}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2}, + {"x": 7.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2}, + {"x": 13.5, "y": 2, "w": 1.5}, + + {"x": 0, "y": 3, "w": 1.5}, + {"x": 1.5, "y": 3}, + {"x": 2.5, "y": 3}, + {"x": 3.5, "y": 3}, + {"x": 4.5, "y": 3}, + {"x": 5.5, "y": 3}, + {"x": 6.5, "y": 3}, + {"x": 7.5, "y": 3}, + {"x": 8.5, "y": 3}, + {"x": 9.5, "y": 3}, + {"x": 10.5, "y": 3}, + {"x": 11.5, "y": 3}, + {"x": 12.5, "y": 3}, + {"x": 13.5, "y": 3, "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} + ] + }, + "LAYOUT_2u_arrow": { + "layout": [ + {"x": 0, "y": 0, "w": 1.5}, + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0, "w": 1.5}, + + {"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.5}, + {"x": 1.5, "y": 2}, + {"x": 2.5, "y": 2}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2}, + {"x": 7.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2, "w": 1.5}, + {"x": 14, "y": 2}, + + {"x": 0, "y": 3, "w": 1.5}, + {"x": 1.5, "y": 3}, + {"x": 2.5, "y": 3}, + {"x": 3.5, "y": 3}, + {"x": 4.5, "y": 3}, + {"x": 5.5, "y": 3}, + {"x": 6.5, "y": 3}, + {"x": 7.5, "y": 3}, + {"x": 8.5, "y": 3}, + {"x": 9.5, "y": 3}, + {"x": 10.5, "y": 3}, + {"x": 11.5, "y": 3, "w": 1.5}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4}, + {"x": 3.5, "y": 4}, + {"x": 4.5, "y": 4, "w": 2}, + {"x": 6.5, "y": 4, "w": 2}, + {"x": 8.5, "y": 4}, + {"x": 9.5, "y": 4, "w": 1.25}, + {"x": 10.75, "y": 4, "w": 1.25}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] + }, + "LAYOUT_625u_arrow": { + "layout": [ + {"x": 0, "y": 0, "w": 1.5}, + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0, "w": 1.5}, + + {"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.5}, + {"x": 1.5, "y": 2}, + {"x": 2.5, "y": 2}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2}, + {"x": 7.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2, "w": 1.5}, + {"x": 14, "y": 2}, + + {"x": 0, "y": 3, "w": 1.5}, + {"x": 1.5, "y": 3}, + {"x": 2.5, "y": 3}, + {"x": 3.5, "y": 3}, + {"x": 4.5, "y": 3}, + {"x": 5.5, "y": 3}, + {"x": 6.5, "y": 3}, + {"x": 7.5, "y": 3}, + {"x": 8.5, "y": 3}, + {"x": 9.5, "y": 3}, + {"x": 10.5, "y": 3}, + {"x": 11.5, "y": 3, "w": 1.5}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4}, + {"x": 3.5, "y": 4, "w": 6.25}, + {"x": 9.75, "y": 4}, + {"x": 10.75, "y": 4, "w": 1.25}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] + }, + "LAYOUT_ortho_2x2u": { + "layout": [ + {"x": 0, "y": 0, "w": 1.5}, + {"x": 1.5, "y": 0}, + {"x": 2.5, "y": 0}, + {"x": 3.5, "y": 0}, + {"x": 4.5, "y": 0}, + {"x": 5.5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 10.5, "y": 0}, + {"x": 11.5, "y": 0}, + {"x": 12.5, "y": 0}, + {"x": 13.5, "y": 0, "w": 1.5}, + + {"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.5}, + {"x": 1.5, "y": 2}, + {"x": 2.5, "y": 2}, + {"x": 3.5, "y": 2}, + {"x": 4.5, "y": 2}, + {"x": 5.5, "y": 2}, + {"x": 6.5, "y": 2}, + {"x": 7.5, "y": 2}, + {"x": 8.5, "y": 2}, + {"x": 9.5, "y": 2}, + {"x": 10.5, "y": 2}, + {"x": 11.5, "y": 2}, + {"x": 12.5, "y": 2}, + {"x": 13.5, "y": 2, "w": 1.5}, + + {"x": 0, "y": 3, "w": 1.5}, + {"x": 1.5, "y": 3}, + {"x": 2.5, "y": 3}, + {"x": 3.5, "y": 3}, + {"x": 4.5, "y": 3}, + {"x": 5.5, "y": 3}, + {"x": 6.5, "y": 3}, + {"x": 7.5, "y": 3}, + {"x": 8.5, "y": 3}, + {"x": 9.5, "y": 3}, + {"x": 10.5, "y": 3}, + {"x": 11.5, "y": 3}, + {"x": 12.5, "y": 3}, + {"x": 13.5, "y": 3, "w": 1.5}, + + {"x": 0, "y": 4, "w": 1.5}, + {"x": 1.5, "y": 4}, + {"x": 2.5, "y": 4}, + {"x": 3.5, "y": 4}, + {"x": 4.5, "y": 4}, + {"x": 5.5, "y": 4, "w": 2}, + {"x": 7.5, "y": 4, "w": 2}, + {"x": 9.5, "y": 4}, + {"x": 10.5, "y": 4}, + {"x": 11.5, "y": 4}, + {"x": 12.5, "y": 4}, + {"x": 13.5, "y": 4, "w": 1.5} + ] + } } - } \ No newline at end of file +} diff --git a/keyboards/dz60/info.json b/keyboards/dz60/info.json index 6415954c297a..8bd164150ece 100644 --- a/keyboards/dz60/info.json +++ b/keyboards/dz60/info.json @@ -6,73 +6,1731 @@ "height": 5, "layouts": { "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + "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": 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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] }, "LAYOUT_true_hhkb": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":6}, {"x":10, "y":4, "w":1.5}, {"label":"Alt", "x":11.5, "y":4}] + "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": 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": 1.5, "y": 4}, + {"x": 2.5, "y": 4, "w": 1.5}, + {"x": 4, "y": 4, "w": 6}, + {"x": 10, "y": 4, "w": 1.5}, + {"x": 11.5, "y": 4} + ] }, "LAYOUT_directional": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + "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}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 12, "y": 3}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] }, "LAYOUT_all": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + "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}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 12, "y": 3}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] }, "LAYOUT_60_ansi": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] }, "LAYOUT_60_ansi_split": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6.00, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] }, "LAYOUT_60_ansi_split_space_rshift": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"FN", "x":14, "y": 3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + "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": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] }, "LAYOUT_60_iso": { - "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] }, "LAYOUT_60_hhkb": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"\\", "x":13, "y":0}, {"label":"`", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"[", "x":11.5, "y":1}, {"label":"]", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":";", "x":10.75, "y":2}, {"label":"'", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":",", "x":9.25, "y":3}, {"label":".", "x":10.25, "y":3}, {"label":"/", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Os", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Os", "x":12.5, "y":4}] + "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": 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} + ] }, "LAYOUT_60_iso_5x1u": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"|", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"~", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"/", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Fn", "x":10, "y":4}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"↑", "x":13, "y":4}, {"label":"→", "x":14, "y":4}] + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] }, "LAYOUT_60_iso_5x1u_split_rshift": { - "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4}, {"label":"\u2190", "x":11, "y":4}, {"label":"\u2193", "x":12, "y":4}, {"label":"\u2191", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}] + "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.75, "y": 1, "w": 1.25, "h": 2}, + + {"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": 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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] }, "LAYOUT_60_iso_split": { - "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6.00, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] }, "LAYOUT_60_b_ansi": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"x":13, "y":0}, {"label":"Back Space", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"[", "x":11.5, "y":1}, {"label":"]", "x":12.5, "y":1}, {"label":"\\", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":";", "x":10.75, "y":2}, {"label":"'", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":",", "x":9.25, "y":3}, {"label":".", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"Up", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.25}, {"label":"Space", "x":6, "y":4, "w":1.25}, {"label":"Space", "x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4}] + "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, "w": 1.75}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] }, "LAYOUT_60_b_iso": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"x":13, "y":0}, {"label":"Back Space", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"[", "x":11.5, "y":1}, {"label":"]", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":";", "x":10.75, "y":2}, {"label":"'", "x":11.75, "y":2}, {"label":"#", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"\\", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":",", "x":9.25, "y":3}, {"label":".", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"Up", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.25}, {"label":"Space", "x":6, "y":4, "w":1.25}, {"label":"Space", "x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4}] + "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, "w": 1.75}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] }, "LAYOUT_60_tsangan": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + "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": 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} + ] }, "LAYOUT_60_tsangan_hhkb": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Win", "x":11, "y":4, "w":1.5}, {"label":"Menu", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + "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": 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} + ] }, "LAYOUT_60_calbatr0ss": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Shift", "x":3.75, "y":4, "w":2.25}, {"label":"Fn", "x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] }, "LAYOUT_60_iso_split_space_bs_rshift": { - "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Del", "x":13, "y":0, "w":1}, {"label":"Backspace", "x":14, "y":0, "w":1}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Print screen", "x":14, "y":3, "w":1}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"label":"FN", "x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6.00, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] }, "LAYOUT_60_2_function": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Control", "x":11.5, "y":4, "w":1.5}, {"label":"GUI", "x":13, "y":4}, {"label":"Fn2", "x":14, "y":4}] + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.5}, + {"x": 11.5, "y": 4, "w": 1.5}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] }, "LAYOUT_60_iso_5x1u_split_bs_rshift_spc": { - "layout": [{"label":"Esc/¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Del", "x":13, "y":0, "w":1}, {"label":"Backspace", "x":14, "y":0, "w":1}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"VolUp", "x":14, "y":3, "w":1}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Left", "x":10, "y":4, "w":1}, {"label":"Down", "x":11, "y":4, "w":1}, {"label":"Up", "x":12, "y":4, "w":1}, {"label":"Right", "x":13, "y":4, "w":1}, {"label":"VolDown", "x":14, "y":4, "w":1}] + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6.00, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] }, "LAYOUT_olivierko": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Fn", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"↑", "x":12, "y":3}, {"label":"Shift", "x":13, "y":3, "w":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"→", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] + "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}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 12, "y": 3}, + {"x": 13, "y": 3, "w": 2}, + + {"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}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] }, "LAYOUT_60_abnt2": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"\u00a8", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"`", "x":11.5, "y":1}, {"label":"{", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":"\u00c7", "x":10.75, "y":2}, {"label":"^", "x":11.75, "y":2}, {"label":"}", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":":", "x":11.25, "y":3}, {"label":"?", "x":12.25, "y":3}, {"label":"Shift", "x":13.25, "y":3, "w":1.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + "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}, + {"x": 13.25, "y": 3, "w": 1.75}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] }, "LAYOUT_60_iso_4th_row_all_1u": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"|", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Fn", "x":10, "y":4}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"↑", "x":13, "y":4}, {"label":"→", "x":14, "y":4}] + "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}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 12, "y": 3}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] } } } diff --git a/keyboards/gh60/revc/info.json b/keyboards/gh60/revc/info.json index 7a8a19c1eced..9d25629dae96 100644 --- a/keyboards/gh60/revc/info.json +++ b/keyboards/gh60/revc/info.json @@ -6,38 +6,574 @@ "height": 5, "layouts": { "LAYOUT_all": { - "key_count":65, - "layout": [{"label":"~","x":0,"y":0},{"label":"!","x":1,"y":0},{"label":"@","x":2,"y":0},{"label":"#","x":3,"y":0},{"label":"$","x":4,"y":0},{"label":"%","x":5,"y":0},{"label":"^","x":6,"y":0},{"label":"&","x":7,"y":0},{"label":"*","x":8,"y":0},{"label":"(","x":9,"y":0},{"label":")","x":10,"y":0},{"label":"_","x":11,"y":0},{"label":"+","x":12,"y":0},{"label":"Backspace","x":13,"y":0},{"label":"Backspace Extra","x":14,"y":0},{"label":"Tab","x":0,"y":1,"w":1.5},{"label":"Q","x":1.5,"y":1},{"label":"W","x":2.5,"y":1},{"label":"E","x":3.5,"y":1},{"label":"R","x":4.5,"y":1},{"label":"T","x":5.5,"y":1},{"label":"Y","x":6.5,"y":1},{"label":"U","x":7.5,"y":1},{"label":"I","x":8.5,"y":1},{"label":"O","x":9.5,"y":1},{"label":"P","x":10.5,"y":1},{"label":"{","x":11.5,"y":1},{"label":"}","x":12.5,"y":1},{"label":"|","x":13.5,"y":1,"w":1.5},{"label":"Caps Lock","x":0,"y":2,"w":1.75},{"label":"A","x":1.75,"y":2},{"label":"S","x":2.75,"y":2},{"label":"D","x":3.75,"y":2},{"label":"F","x":4.75,"y":2},{"label":"G","x":5.75,"y":2},{"label":"H","x":6.75,"y":2},{"label":"J","x":7.75,"y":2},{"label":"K","x":8.75,"y":2},{"label":"L","x":9.75,"y":2},{"label":":","x":10.75,"y":2},{"label":"\"","x":11.75,"y":2},{"label":"ISO Hash","x":12.75,"y":2},{"label":"Enter","x":13.75,"y":2,"w":1.25},{"label":"Shift","x":0,"y":3,"w":1.25},{"label":"ISO Backslash","x":1.25,"y":3},{"label":"Z","x":2.25,"y":3},{"label":"X","x":3.25,"y":3},{"label":"C","x":4.25,"y":3},{"label":"V","x":5.25,"y":3},{"label":"B","x":6.25,"y":3},{"label":"N","x":7.25,"y":3},{"label":"M","x":8.25,"y":3},{"label":"<","x":9.25,"y":3},{"label":">","x":10.25,"y":3},{"label":"?","x":11.25,"y":3},{"label":"Shift","x":12.25,"y":3,"w":1.75},{"label":"HHKB Fn","x":14,"y":3},{"label":"Ctrl","x":0,"y":4,"w":1.25},{"label":"Win","x":1.25,"y":4,"w":1.25},{"label":"Alt","x":2.5,"y":4,"w":1.25},{"label":"Space","x":3.75,"y":4,"w":6.25},{"label":"Alt","x":10,"y":4,"w":1.25},{"label":"Win","x":11.25,"y":4,"w":1.25},{"label":"Menu","x":12.5,"y":4,"w":1.25},{"label":"Ctrl","x":13.75,"y":4,"w":1.25}] - }, + "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}, + {"x": 13.75, "y": 2, "w": 1.25}, + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, "LAYOUT": { - "key_count":65, - "layout": [{"label":"~","x":0,"y":0},{"label":"!","x":1,"y":0},{"label":"@","x":2,"y":0},{"label":"#","x":3,"y":0},{"label":"$","x":4,"y":0},{"label":"%","x":5,"y":0},{"label":"^","x":6,"y":0},{"label":"&","x":7,"y":0},{"label":"*","x":8,"y":0},{"label":"(","x":9,"y":0},{"label":")","x":10,"y":0},{"label":"_","x":11,"y":0},{"label":"+","x":12,"y":0},{"label":"Backspace","x":13,"y":0},{"label":"Tab","x":0,"y":1,"w":1.5},{"label":"Q","x":1.5,"y":1},{"label":"W","x":2.5,"y":1},{"label":"E","x":3.5,"y":1},{"label":"R","x":4.5,"y":1},{"label":"T","x":5.5,"y":1},{"label":"Y","x":6.5,"y":1},{"label":"U","x":7.5,"y":1},{"label":"I","x":8.5,"y":1},{"label":"O","x":9.5,"y":1},{"label":"P","x":10.5,"y":1},{"label":"{","x":11.5,"y":1},{"label":"}","x":12.5,"y":1},{"label":"|","x":13.5,"y":1,"w":1.5},{"label":"Caps Lock","x":0,"y":2,"w":1.75},{"label":"A","x":1.75,"y":2},{"label":"S","x":2.75,"y":2},{"label":"D","x":3.75,"y":2},{"label":"F","x":4.75,"y":2},{"label":"G","x":5.75,"y":2},{"label":"H","x":6.75,"y":2},{"label":"J","x":7.75,"y":2},{"label":"K","x":8.75,"y":2},{"label":"L","x":9.75,"y":2},{"label":":","x":10.75,"y":2},{"label":"\"","x":11.75,"y":2},{"label":"ISO Hash","x":12.75,"y":2},{"label":"Enter","x":13.75,"y":2,"w":1.25},{"label":"Shift","x":0,"y":3,"w":1.25},{"label":"ISO Backslash","x":1.25,"y":3},{"label":"Z","x":2.25,"y":3},{"label":"X","x":3.25,"y":3},{"label":"C","x":4.25,"y":3},{"label":"V","x":5.25,"y":3},{"label":"B","x":6.25,"y":3},{"label":"N","x":7.25,"y":3},{"label":"M","x":8.25,"y":3},{"label":"<","x":9.25,"y":3},{"label":">","x":10.25,"y":3},{"label":"?","x":11.25,"y":3},{"label":"Shift","x":12.25,"y":3,"w":1.75},{"label":"HHKB Fn","x":14,"y":3},{"label":"Ctrl","x":0,"y":4,"w":1.25},{"label":"Win","x":1.25,"y":4,"w":1.25},{"label":"Alt","x":2.5,"y":4,"w":1.25},{"label":"Space","x":3.75,"y":4,"w":6.25},{"label":"Backspace Extra","x":14,"y":0},{"label":"Alt","x":10,"y":4,"w":1.25},{"label":"Win","x":11.25,"y":4,"w":1.25},{"label":"Menu","x":12.5,"y":4,"w":1.25},{"label":"Ctrl","x":13.75,"y":4,"w":1.25}] + "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": 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}, + {"x": 13.75, "y": 2, "w": 1.25}, + {"x": 0, "y": 3, "w": 1.25}, + + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 14, "y": 0}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] }, "LAYOUT_60_ansi": { - "key_count":61, - "layout": [{"label":"~","x":0,"y":0},{"label":"!","x":1,"y":0},{"label":"@","x":2,"y":0},{"label":"#","x":3,"y":0},{"label":"$","x":4,"y":0},{"label":"%","x":5,"y":0},{"label":"^","x":6,"y":0},{"label":"&","x":7,"y":0},{"label":"*","x":8,"y":0},{"label":"(","x":9,"y":0},{"label":")","x":10,"y":0},{"label":"_","x":11,"y":0},{"label":"+","x":12,"y":0},{"label":"Backspace","x":13,"y":0,"w":2},{"label":"Tab","x":0,"y":1,"w":1.5},{"label":"Q","x":1.5,"y":1},{"label":"W","x":2.5,"y":1},{"label":"E","x":3.5,"y":1},{"label":"R","x":4.5,"y":1},{"label":"T","x":5.5,"y":1},{"label":"Y","x":6.5,"y":1},{"label":"U","x":7.5,"y":1},{"label":"I","x":8.5,"y":1},{"label":"O","x":9.5,"y":1},{"label":"P","x":10.5,"y":1},{"label":"{","x":11.5,"y":1},{"label":"}","x":12.5,"y":1},{"label":"|","x":13.5,"y":1,"w":1.5},{"label":"Caps Lock","x":0,"y":2,"w":1.75},{"label":"A","x":1.75,"y":2},{"label":"S","x":2.75,"y":2},{"label":"D","x":3.75,"y":2},{"label":"F","x":4.75,"y":2},{"label":"G","x":5.75,"y":2},{"label":"H","x":6.75,"y":2},{"label":"J","x":7.75,"y":2},{"label":"K","x":8.75,"y":2},{"label":"L","x":9.75,"y":2},{"label":":","x":10.75,"y":2},{"label":"\"","x":11.75,"y":2},{"label":"Enter","x":12.75,"y":2,"w":2.25},{"label":"Shift","x":0,"y":3,"w":2.25},{"label":"Z","x":2.25,"y":3},{"label":"X","x":3.25,"y":3},{"label":"C","x":4.25,"y":3},{"label":"V","x":5.25,"y":3},{"label":"B","x":6.25,"y":3},{"label":"N","x":7.25,"y":3},{"label":"M","x":8.25,"y":3},{"label":"<","x":9.25,"y":3},{"label":">","x":10.25,"y":3},{"label":"?","x":11.25,"y":3},{"label":"Shift","x":12.25,"y":3,"w":2.75},{"label":"Ctrl","x":0,"y":4,"w":1.25},{"label":"Win","x":1.25,"y":4,"w":1.25},{"label":"Alt","x":2.5,"y":4,"w":1.25},{"label":"Space","x":3.75,"y":4,"w":6.25},{"label":"Alt","x":10,"y":4,"w":1.25},{"label":"Win","x":11.25,"y":4,"w":1.25},{"label":"Menu","x":12.5,"y":4,"w":1.25},{"label":"Ctrl","x":13.75,"y":4,"w":1.25}] + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] }, "LAYOUT_60_iso": { - "key_count": 62, - "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] }, "LAYOUT_60_ansi_split_bs_rshift": { - "key_count":63, - "layout": [{"label":"~","x":0,"y":0},{"label":"!","x":1,"y":0},{"label":"@","x":2,"y":0},{"label":"#","x":3,"y":0},{"label":"$","x":4,"y":0},{"label":"%","x":5,"y":0},{"label":"^","x":6,"y":0},{"label":"&","x":7,"y":0},{"label":"*","x":8,"y":0},{"label":"(","x":9,"y":0},{"label":")","x":10,"y":0},{"label":"_","x":11,"y":0},{"label":"+","x":12,"y":0},{"label":"Backspace","x":13,"y":0},{"label":"Backspace Extra","x":14,"y":0},{"label":"Tab","x":0,"y":1,"w":1.5},{"label":"Q","x":1.5,"y":1},{"label":"W","x":2.5,"y":1},{"label":"E","x":3.5,"y":1},{"label":"R","x":4.5,"y":1},{"label":"T","x":5.5,"y":1},{"label":"Y","x":6.5,"y":1},{"label":"U","x":7.5,"y":1},{"label":"I","x":8.5,"y":1},{"label":"O","x":9.5,"y":1},{"label":"P","x":10.5,"y":1},{"label":"{","x":11.5,"y":1},{"label":"}","x":12.5,"y":1},{"label":"|","x":13.5,"y":1,"w":1.5},{"label":"Caps Lock","x":0,"y":2,"w":1.75},{"label":"A","x":1.75,"y":2},{"label":"S","x":2.75,"y":2},{"label":"D","x":3.75,"y":2},{"label":"F","x":4.75,"y":2},{"label":"G","x":5.75,"y":2},{"label":"H","x":6.75,"y":2},{"label":"J","x":7.75,"y":2},{"label":"K","x":8.75,"y":2},{"label":"L","x":9.75,"y":2},{"label":":","x":10.75,"y":2},{"label":"\"","x":11.75,"y":2},{"label":"Enter","x":12.75,"y":2,"w":2.25},{"label":"Shift","x":0,"y":3,"w":2.25},{"label":"Z","x":2.25,"y":3},{"label":"X","x":3.25,"y":3},{"label":"C","x":4.25,"y":3},{"label":"V","x":5.25,"y":3},{"label":"B","x":6.25,"y":3},{"label":"N","x":7.25,"y":3},{"label":"M","x":8.25,"y":3},{"label":"<","x":9.25,"y":3},{"label":">","x":10.25,"y":3},{"label":"?","x":11.25,"y":3},{"label":"Shift","x":12.25,"y":3,"w":1.75},{"label":"HHKB Fn","x":14,"y":3},{"label":"Ctrl","x":0,"y":4,"w":1.5},{"label":"Win","x":1.5,"y":4},{"label":"Alt","x":2.5,"y":4,"w":1.5},{"label":"Space","x":4,"y":4,"w":6},{"label":"Alt","x":10,"y":4,"w":1.5},{"label":"Win","x":11.5,"y":4},{"label":"Menu","x":12.5,"y":4},{"label":"Ctrl","x":13.5,"y":4,"w":1.5}] - }, + "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}, - "LAYOUT_60_ansi_split_rshift": { - "key_count": 62, - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"HHKB Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + {"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": 1.5, "y": 4}, + {"x": 2.5, "y": 4, "w": 1.5}, + {"x": 4, "y": 4, "w": 6}, + {"x": 10, "y": 4, "w": 1.5}, + {"x": 11.5, "y": 4}, + {"x": 12.5, "y": 4}, + {"x": 13.5, "y": 4, "w": 1.5} + ] }, + "LAYOUT_60_ansi_split_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, "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": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, "LAYOUT_60_abnt2": { - "key_count": 63, - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"\u00a8", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"`", "x":11.5, "y":1}, {"label":"{", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":"\u00c7", "x":10.75, "y":2}, {"label":"^", "x":11.75, "y":2}, {"label":"}", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":":", "x":11.25, "y":3}, {"label":"?", "x":12.25, "y":3}, {"label":"Shift", "x":13.25, "y":3, "w":1.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + "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}, + {"x": 13.25, "y": 3, "w": 1.75}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "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": 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/keyboards/gray_studio/space65/info.json b/keyboards/gray_studio/space65/info.json index 72674bdef69e..5bd848ddcc6a 100644 --- a/keyboards/gray_studio/space65/info.json +++ b/keyboards/gray_studio/space65/info.json @@ -1,16 +1,241 @@ { - "keyboard_name": "Gray Studio Space65", - "url": "", - "maintainer": "qmk", - "width": 16, - "height": 5, + "keyboard_name": "Gray Studio Space65", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 5, "layouts": { "LAYOUT": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":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":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] - }, + "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": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + {"x": 15, "y": 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": 15, "y": 3}, + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 2.25}, + {"x": 6, "y": 4, "w": 1.25}, + {"x": 7.25, "y": 4, "w": 2.75}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + }, "LAYOUT_65_ansi_blocker": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"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":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + {"x": 15, "y": 2}, + + {"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": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + {"x": 15, "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": 15, "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": 15, "y": 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": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] } } } diff --git a/keyboards/handwired/k_numpad17/info.json b/keyboards/handwired/k_numpad17/info.json new file mode 100644 index 000000000000..65bc57d7866c --- /dev/null +++ b/keyboards/handwired/k_numpad17/info.json @@ -0,0 +1,34 @@ +{ + "keyboard_name": "K-Numpad17", + "url": "", + "maintainer": "qmk", + "width": 4, + "height": 5, + "layouts": { + "LAYOUT_numpad_5x4": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 1, "h": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + + {"x": 0, "y": 4, "w": 2}, + {"x": 2, "y": 4}, + {"x": 3, "y": 3, "h": 2} + ] + } + } +} diff --git a/keyboards/handwired/lovelive9/info.json b/keyboards/handwired/lovelive9/info.json index 4f81d321d9e9..fffeb342d389 100644 --- a/keyboards/handwired/lovelive9/info.json +++ b/keyboards/handwired/lovelive9/info.json @@ -1,12 +1,22 @@ { - "keyboard_name": "lovelive9", - "url": "https://github.com/ginjake", - "maintainer": "ginjake", - "width": 9, - "height": 1, - "layouts": { - "LAYOUT": { - "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}] + "keyboard_name": "lovelive9", + "url": "https://github.com/ginjake", + "maintainer": "ginjake", + "width": 9, + "height": 4.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 0.5, "y": 1.25}, + {"x": 1.5, "y": 2.5}, + {"x": 2.75, "y": 3.25}, + {"x": 4, "y": 3.5}, + {"x": 5.25, "y": 3.25}, + {"x": 6.5, "y": 2.5}, + {"x": 7.5, "y": 1.25}, + {"x": 8, "y": 0} + ] + } } - } } diff --git a/keyboards/hineybush/h10/info.json b/keyboards/hineybush/h10/info.json index b08c407c3102..a8d160db53af 100644 --- a/keyboards/hineybush/h10/info.json +++ b/keyboards/hineybush/h10/info.json @@ -6,7 +6,224 @@ "height": 7.5, "layouts": { "LAYOUT_ortho_6x4": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"2,0", "x":0, "y":2.25}, {"label":"2,1", "x":1, "y":2.25}, {"label":"2,2", "x":2, "y":2.25}, {"label":"2,3", "x":3, "y":2.25}, {"label":"3,0", "x":0, "y":3.25}, {"label":"3,1", "x":1, "y":3.25}, {"label":"3,2", "x":2, "y":3.25}, {"label":"3,3", "x":3, "y":3.25}, {"label":"4,0", "x":0, "y":4.25}, {"label":"4,1", "x":1, "y":4.25}, {"label":"4,2", "x":2, "y":4.25}, {"label":"4,3", "x":3, "y":4.25}, {"label":"5,0", "x":0, "y":5.25}, {"label":"5,1", "x":1, "y":5.25}, {"label":"5,2", "x":2, "y":5.25}, {"label":"5,3", "x":3, "y":5.25}] + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + + {"x": 0, "y": 1.25}, + {"x": 1, "y": 1.25}, + {"x": 2, "y": 1.25}, + {"x": 3, "y": 1.25}, + + {"x": 0, "y": 2.25}, + {"x": 1, "y": 2.25}, + {"x": 2, "y": 2.25}, + {"x": 3, "y": 2.25}, + + {"x": 0, "y": 3.25}, + {"x": 1, "y": 3.25}, + {"x": 2, "y": 3.25}, + {"x": 3, "y": 3.25}, + + {"x": 0, "y": 4.25}, + {"x": 1, "y": 4.25}, + {"x": 2, "y": 4.25}, + {"x": 3, "y": 4.25}, + + {"x": 0, "y": 5.25}, + {"x": 1, "y": 5.25}, + {"x": 2, "y": 5.25}, + {"x": 3, "y": 5.25} + ] + }, + "LAYOUT_numpad_6x4": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + + {"x": 0, "y": 1.25}, + {"x": 1, "y": 1.25}, + {"x": 2, "y": 1.25}, + {"x": 3, "y": 1.25}, + + {"x": 0, "y": 2.25}, + {"x": 1, "y": 2.25}, + {"x": 2, "y": 2.25}, + + {"x": 0, "y": 3.25}, + {"x": 1, "y": 3.25}, + {"x": 2, "y": 3.25}, + {"x": 3, "y": 2.25, "h": 2}, + + {"x": 0, "y": 4.25}, + {"x": 1, "y": 4.25}, + {"x": 2, "y": 4.25}, + + {"x": 0, "y": 5.25, "w": 2}, + {"x": 2, "y": 5.25}, + {"x": 3, "y": 4.25, "h": 2} + ] + }, + "LAYOUT_split_plus": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + + {"x": 0, "y": 1.25}, + {"x": 1, "y": 1.25}, + {"x": 2, "y": 1.25}, + {"x": 3, "y": 1.25}, + + {"x": 0, "y": 2.25}, + {"x": 1, "y": 2.25}, + {"x": 2, "y": 2.25}, + {"x": 3, "y": 2.25}, + + {"x": 0, "y": 3.25}, + {"x": 1, "y": 3.25}, + {"x": 2, "y": 3.25}, + {"x": 3, "y": 3.25}, + + {"x": 0, "y": 4.25}, + {"x": 1, "y": 4.25}, + {"x": 2, "y": 4.25}, + + {"x": 0, "y": 5.25, "w": 2}, + {"x": 2, "y": 5.25}, + {"x": 3, "y": 4.25, "h": 2} + ] + }, + "LAYOUT_split_zero": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + + {"x": 0, "y": 1.25}, + {"x": 1, "y": 1.25}, + {"x": 2, "y": 1.25}, + {"x": 3, "y": 1.25}, + + {"x": 0, "y": 2.25}, + {"x": 1, "y": 2.25}, + {"x": 2, "y": 2.25}, + + {"x": 0, "y": 3.25}, + {"x": 1, "y": 3.25}, + {"x": 2, "y": 3.25}, + {"x": 3, "y": 2.25, "h": 2}, + + {"x": 0, "y": 4.25}, + {"x": 1, "y": 4.25}, + {"x": 2, "y": 4.25}, + + {"x": 0, "y": 5.25}, + {"x": 1, "y": 5.25}, + {"x": 2, "y": 5.25}, + {"x": 3, "y": 4.25, "h": 2} + ] + }, + "LAYOUT_split_enter": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + + {"x": 0, "y": 1.25}, + {"x": 1, "y": 1.25}, + {"x": 2, "y": 1.25}, + {"x": 3, "y": 1.25}, + + {"x": 0, "y": 2.25}, + {"x": 1, "y": 2.25}, + {"x": 2, "y": 2.25}, + + {"x": 0, "y": 3.25}, + {"x": 1, "y": 3.25}, + {"x": 2, "y": 3.25}, + {"x": 3, "y": 2.25, "h": 2}, + + {"x": 0, "y": 4.25}, + {"x": 1, "y": 4.25}, + {"x": 2, "y": 4.25}, + {"x": 3, "y": 4.25}, + + {"x": 0, "y": 5.25, "w": 2}, + {"x": 2, "y": 5.25}, + {"x": 3, "y": 5.25} + ] + }, + "LAYOUT_split_enter_plus": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + + {"x": 0, "y": 1.25}, + {"x": 1, "y": 1.25}, + {"x": 2, "y": 1.25}, + {"x": 3, "y": 1.25}, + + {"x": 0, "y": 2.25}, + {"x": 1, "y": 2.25}, + {"x": 2, "y": 2.25}, + {"x": 3, "y": 2.25}, + + {"x": 0, "y": 3.25}, + {"x": 1, "y": 3.25}, + {"x": 2, "y": 3.25}, + {"x": 3, "y": 3.25}, + + {"x": 0, "y": 4.25}, + {"x": 1, "y": 4.25}, + {"x": 2, "y": 4.25}, + {"x": 3, "y": 4.25}, + + {"x": 0, "y": 5.25, "w": 2}, + {"x": 2, "y": 5.25}, + {"x": 3, "y": 5.25} + ] + }, + "LAYOUT_split_zero_plus": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + + {"x": 0, "y": 1.25}, + {"x": 1, "y": 1.25}, + {"x": 2, "y": 1.25}, + {"x": 3, "y": 1.25}, + + {"x": 0, "y": 2.25}, + {"x": 1, "y": 2.25}, + {"x": 2, "y": 2.25}, + {"x": 3, "y": 2.25}, + + {"x": 0, "y": 3.25}, + {"x": 1, "y": 3.25}, + {"x": 2, "y": 3.25}, + {"x": 3, "y": 3.25}, + + {"x": 0, "y": 4.25}, + {"x": 1, "y": 4.25}, + {"x": 2, "y": 4.25}, + + {"x": 0, "y": 5.25}, + {"x": 1, "y": 5.25}, + {"x": 2, "y": 5.25}, + {"x": 3, "y": 4.25, "h": 2} + ] } } } diff --git a/keyboards/hineybush/h60/info.json b/keyboards/hineybush/h60/info.json new file mode 100644 index 000000000000..803541a3e9f8 --- /dev/null +++ b/keyboards/hineybush/h60/info.json @@ -0,0 +1,356 @@ +{ + "keyboard_name": "h60", + "url": "", + "maintainer": "hineybush", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_hhkb": { + "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": 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} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "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": 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} + ] + }, + "LAYOUT_60_tsangan_split_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, "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": 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/keyboards/maartenwut/plain60/info.json b/keyboards/maartenwut/plain60/info.json index 91eab457a876..140858986a53 100644 --- a/keyboards/maartenwut/plain60/info.json +++ b/keyboards/maartenwut/plain60/info.json @@ -1,414 +1,502 @@ { - "keyboard_name": "Plain60", - "url": "", - "maintainer": "maartenwut", - "width": 15, - "height": 5, - "layouts": { - "LAYOUT": { - "key_count": 65, - "layout": [ - {"label":"k00", "x":0, "y":0}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":2, "y":0}, - {"label":"k03", "x":3, "y":0}, - {"label":"k04", "x":4, "y":0}, - {"label":"k05", "x":5, "y":0}, - {"label":"k06", "x":6, "y":0}, - {"label":"k07", "x":7, "y":0}, - {"label":"k08", "x":8, "y":0}, - {"label":"k09", "x":9, "y":0}, - {"label":"k0a", "x":10, "y":0}, - {"label":"k0b", "x":11, "y":0}, - {"label":"k0c", "x":12, "y":0}, - {"label":"k0d", "x":13, "y":0}, - {"label":"k0e", "x":14, "y":0}, - {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k1a", "x":10.5, "y":1}, - {"label":"k1b", "x":11.5, "y":1}, - {"label":"k1c", "x":12.5, "y":1}, - {"label":"k1d", "x":13.5, "y":1, "w":1.5}, - {"label":"k20", "x":0, "y":2, "w":1.75}, - {"label":"k21", "x":1.75, "y":2}, - {"label":"k22", "x":2.75, "y":2}, - {"label":"k23", "x":3.75, "y":2}, - {"label":"k24", "x":4.75, "y":2}, - {"label":"k25", "x":5.75, "y":2}, - {"label":"k26", "x":6.75, "y":2}, - {"label":"k27", "x":7.75, "y":2}, - {"label":"k28", "x":8.75, "y":2}, - {"label":"k29", "x":9.75, "y":2}, - {"label":"k2a", "x":10.75, "y":2}, - {"label":"k2b", "x":11.75, "y":2}, - {"label":"k2c", "x":12.75, "y":2}, - {"label":"k2d", "x":13.75, "y":2, "w":1.25}, - {"label":"k30", "x":0, "y":3, "w":1.25}, - {"label":"k31", "x":1.25, "y":3}, - {"label":"k32", "x":2.25, "y":3}, - {"label":"k33", "x":3.25, "y":3}, - {"label":"k34", "x":4.25, "y":3}, - {"label":"k35", "x":5.25, "y":3}, - {"label":"k36", "x":6.25, "y":3}, - {"label":"k37", "x":7.25, "y":3}, - {"label":"k38", "x":8.25, "y":3}, - {"label":"k39", "x":9.25, "y":3}, - {"label":"k3a", "x":10.25, "y":3}, - {"label":"k3b", "x":11.25, "y":3}, - {"label":"k3c", "x":12.25, "y":3, "w":1.75}, - {"label":"k3d", "x":14, "y":3}, - {"label":"k40", "x":0, "y":4, "w":1.25}, - {"label":"k41", "x":1.25, "y":4, "w":1.25}, - {"label":"k42", "x":2.5, "y":4, "w":1.25}, - {"label":"k46", "x":3.75, "y":4, "w":6.25}, - {"label":"k4a", "x":10, "y":4, "w":1.25}, - {"label":"k4b", "x":11.25, "y":4, "w":1.25}, - {"label":"k4c", "x":12.5, "y":4, "w":1.25}, - {"label":"k4d", "x":13.75, "y":4, "w":1.25} - ] - }, - "LAYOUT_60_ansi": { - "key_count": 61, - "layout": [ - {"label":"k00", "x":0, "y":0}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":2, "y":0}, - {"label":"k03", "x":3, "y":0}, - {"label":"k04", "x":4, "y":0}, - {"label":"k05", "x":5, "y":0}, - {"label":"k06", "x":6, "y":0}, - {"label":"k07", "x":7, "y":0}, - {"label":"k08", "x":8, "y":0}, - {"label":"k09", "x":9, "y":0}, - {"label":"k0a", "x":10, "y":0}, - {"label":"k0b", "x":11, "y":0}, - {"label":"k0c", "x":12, "y":0}, - {"label":"k0e", "x":13, "y":0, "w":2}, - {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k1a", "x":10.5, "y":1}, - {"label":"k1b", "x":11.5, "y":1}, - {"label":"k1c", "x":12.5, "y":1}, - {"label":"k1d", "x":13.5, "y":1, "w":1.5}, - {"label":"k20", "x":0, "y":2, "w":1.75}, - {"label":"k21", "x":1.75, "y":2}, - {"label":"k22", "x":2.75, "y":2}, - {"label":"k23", "x":3.75, "y":2}, - {"label":"k24", "x":4.75, "y":2}, - {"label":"k25", "x":5.75, "y":2}, - {"label":"k26", "x":6.75, "y":2}, - {"label":"k27", "x":7.75, "y":2}, - {"label":"k28", "x":8.75, "y":2}, - {"label":"k29", "x":9.75, "y":2}, - {"label":"k2a", "x":10.75, "y":2}, - {"label":"k2b", "x":11.75, "y":2}, - {"label":"k2d", "x":12.75, "y":2, "w":2.25}, - {"label":"k30", "x":0, "y":3, "w":2.25}, - {"label":"k32", "x":2.25, "y":3}, - {"label":"k33", "x":3.25, "y":3}, - {"label":"k34", "x":4.25, "y":3}, - {"label":"k35", "x":5.25, "y":3}, - {"label":"k36", "x":6.25, "y":3}, - {"label":"k37", "x":7.25, "y":3}, - {"label":"k38", "x":8.25, "y":3}, - {"label":"k39", "x":9.25, "y":3}, - {"label":"k3a", "x":10.25, "y":3}, - {"label":"k3b", "x":11.25, "y":3}, - {"label":"k3c", "x":12.25, "y":3, "w":2.75}, - {"label":"k40", "x":0, "y":4, "w":1.25}, - {"label":"k41", "x":1.25, "y":4, "w":1.25}, - {"label":"k42", "x":2.5, "y":4, "w":1.25}, - {"label":"k46", "x":3.75, "y":4, "w":6.25}, - {"label":"k4a", "x":10, "y":4, "w":1.25}, - {"label":"k4b", "x":11.25, "y":4, "w":1.25}, - {"label":"k4c", "x":12.5, "y":4, "w":1.25}, - {"label":"k4d", "x":13.75, "y":4, "w":1.25} - ] - }, - "LAYOUT_60_ansi_split_bs_rshift": { - "key_count": 63, - "layout": [ - {"label":"k00", "x":0, "y":0}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":2, "y":0}, - {"label":"k03", "x":3, "y":0}, - {"label":"k04", "x":4, "y":0}, - {"label":"k05", "x":5, "y":0}, - {"label":"k06", "x":6, "y":0}, - {"label":"k07", "x":7, "y":0}, - {"label":"k08", "x":8, "y":0}, - {"label":"k09", "x":9, "y":0}, - {"label":"k0a", "x":10, "y":0}, - {"label":"k0b", "x":11, "y":0}, - {"label":"k0c", "x":12, "y":0}, - {"label":"k0d", "x":13, "y":0}, - {"label":"k0e", "x":14, "y":0}, - {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k1a", "x":10.5, "y":1}, - {"label":"k1b", "x":11.5, "y":1}, - {"label":"k1c", "x":12.5, "y":1}, - {"label":"k1d", "x":13.5, "y":1, "w":1.5}, - {"label":"k20", "x":0, "y":2, "w":1.75}, - {"label":"k21", "x":1.75, "y":2}, - {"label":"k22", "x":2.75, "y":2}, - {"label":"k23", "x":3.75, "y":2}, - {"label":"k24", "x":4.75, "y":2}, - {"label":"k25", "x":5.75, "y":2}, - {"label":"k26", "x":6.75, "y":2}, - {"label":"k27", "x":7.75, "y":2}, - {"label":"k28", "x":8.75, "y":2}, - {"label":"k29", "x":9.75, "y":2}, - {"label":"k2a", "x":10.75, "y":2}, - {"label":"k2b", "x":11.75, "y":2}, - {"label":"k2d", "x":12.75, "y":2, "w":2.25}, - {"label":"k30", "x":0, "y":3, "w":2.25}, - {"label":"k32", "x":2.25, "y":3}, - {"label":"k33", "x":3.25, "y":3}, - {"label":"k34", "x":4.25, "y":3}, - {"label":"k35", "x":5.25, "y":3}, - {"label":"k36", "x":6.25, "y":3}, - {"label":"k37", "x":7.25, "y":3}, - {"label":"k38", "x":8.25, "y":3}, - {"label":"k39", "x":9.25, "y":3}, - {"label":"k3a", "x":10.25, "y":3}, - {"label":"k3b", "x":11.25, "y":3}, - {"label":"k3c", "x":12.25, "y":3, "w":1.75}, - {"label":"k3d", "x":14, "y":3}, - {"label":"k40", "x":0, "y":4, "w":1.25}, - {"label":"k41", "x":1.25, "y":4, "w":1.25}, - {"label":"k42", "x":2.5, "y":4, "w":1.25}, - {"label":"k46", "x":3.75, "y":4, "w":6.25}, - {"label":"k4a", "x":10, "y":4, "w":1.25}, - {"label":"k4b", "x":11.25, "y":4, "w":1.25}, - {"label":"k4c", "x":12.5, "y":4, "w":1.25}, - {"label":"k4d", "x":13.75, "y":4, "w":1.25} - ] - }, - "LAYOUT_60_hhkb": { - "key_count": 60, - "layout": [ - {"label":"k00", "x":0, "y":0}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":2, "y":0}, - {"label":"k03", "x":3, "y":0}, - {"label":"k04", "x":4, "y":0}, - {"label":"k05", "x":5, "y":0}, - {"label":"k06", "x":6, "y":0}, - {"label":"k07", "x":7, "y":0}, - {"label":"k08", "x":8, "y":0}, - {"label":"k09", "x":9, "y":0}, - {"label":"k0a", "x":10, "y":0}, - {"label":"k0b", "x":11, "y":0}, - {"label":"k0c", "x":12, "y":0}, - {"label":"k0d", "x":13, "y":0}, - {"label":"k0e", "x":14, "y":0}, - {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k1a", "x":10.5, "y":1}, - {"label":"k1b", "x":11.5, "y":1}, - {"label":"k1c", "x":12.5, "y":1}, - {"label":"k1d", "x":13.5, "y":1, "w":1.5}, - {"label":"k20", "x":0, "y":2, "w":1.75}, - {"label":"k21", "x":1.75, "y":2}, - {"label":"k22", "x":2.75, "y":2}, - {"label":"k23", "x":3.75, "y":2}, - {"label":"k24", "x":4.75, "y":2}, - {"label":"k25", "x":5.75, "y":2}, - {"label":"k26", "x":6.75, "y":2}, - {"label":"k27", "x":7.75, "y":2}, - {"label":"k28", "x":8.75, "y":2}, - {"label":"k29", "x":9.75, "y":2}, - {"label":"k2a", "x":10.75, "y":2}, - {"label":"k2b", "x":11.75, "y":2}, - {"label":"k2d", "x":12.75, "y":2, "w":2.25}, - {"label":"k30", "x":0, "y":3, "w":2.25}, - {"label":"k32", "x":2.25, "y":3}, - {"label":"k33", "x":3.25, "y":3}, - {"label":"k34", "x":4.25, "y":3}, - {"label":"k35", "x":5.25, "y":3}, - {"label":"k36", "x":6.25, "y":3}, - {"label":"k37", "x":7.25, "y":3}, - {"label":"k38", "x":8.25, "y":3}, - {"label":"k39", "x":9.25, "y":3}, - {"label":"k3a", "x":10.25, "y":3}, - {"label":"k3b", "x":11.25, "y":3}, - {"label":"k3c", "x":12.25, "y":3, "w":1.75}, - {"label":"k3d", "x":14, "y":3}, - {"label":"k41", "x":1.5, "y":4}, - {"label":"k42", "x":2.5, "y":4, "w":1.5}, - {"label":"k46", "x":4, "y":4, "w":7}, - {"label":"k4b", "x":11, "y":4, "w":1.5}, - {"label":"k4c", "x":12.5, "y":4} - ] - }, - "LAYOUT_60_iso": { - "key_count": 62, - "layout": [ - {"label":"k00", "x":0, "y":0}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":2, "y":0}, - {"label":"k03", "x":3, "y":0}, - {"label":"k04", "x":4, "y":0}, - {"label":"k05", "x":5, "y":0}, - {"label":"k06", "x":6, "y":0}, - {"label":"k07", "x":7, "y":0}, - {"label":"k08", "x":8, "y":0}, - {"label":"k09", "x":9, "y":0}, - {"label":"k0a", "x":10, "y":0}, - {"label":"k0b", "x":11, "y":0}, - {"label":"k0c", "x":12, "y":0}, - {"label":"k0e", "x":13, "y":0, "w":2}, - {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k1a", "x":10.5, "y":1}, - {"label":"k1b", "x":11.5, "y":1}, - {"label":"k1c", "x":12.5, "y":1}, - {"label":"k20", "x":0, "y":2, "w":1.75}, - {"label":"k21", "x":1.75, "y":2}, - {"label":"k22", "x":2.75, "y":2}, - {"label":"k23", "x":3.75, "y":2}, - {"label":"k24", "x":4.75, "y":2}, - {"label":"k25", "x":5.75, "y":2}, - {"label":"k26", "x":6.75, "y":2}, - {"label":"k27", "x":7.75, "y":2}, - {"label":"k28", "x":8.75, "y":2}, - {"label":"k29", "x":9.75, "y":2}, - {"label":"k2a", "x":10.75, "y":2}, - {"label":"k2b", "x":11.75, "y":2}, - {"label":"k2c", "x":12.75, "y":2}, - {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, - {"label":"k30", "x":0, "y":3, "w":1.25}, - {"label":"k31", "x":1.25, "y":3}, - {"label":"k32", "x":2.25, "y":3}, - {"label":"k33", "x":3.25, "y":3}, - {"label":"k34", "x":4.25, "y":3}, - {"label":"k35", "x":5.25, "y":3}, - {"label":"k36", "x":6.25, "y":3}, - {"label":"k37", "x":7.25, "y":3}, - {"label":"k38", "x":8.25, "y":3}, - {"label":"k39", "x":9.25, "y":3}, - {"label":"k3a", "x":10.25, "y":3}, - {"label":"k3b", "x":11.25, "y":3}, - {"label":"k3c", "x":12.25, "y":3, "w":2.75}, - {"label":"k40", "x":0, "y":4, "w":1.25}, - {"label":"k41", "x":1.25, "y":4, "w":1.25}, - {"label":"k42", "x":2.5, "y":4, "w":1.25}, - {"label":"k46", "x":3.75, "y":4, "w":6.25}, - {"label":"k4a", "x":10, "y":4, "w":1.25}, - {"label":"k4b", "x":11.25, "y":4, "w":1.25}, - {"label":"k4c", "x":12.5, "y":4, "w":1.25}, - {"label":"k4d", "x":13.75, "y":4, "w":1.25} - ] - }, - "LAYOUT_60_iso_split_bs_rshift": { - "key_count": 64, - "layout": [ - {"label":"k00", "x":0, "y":0}, - {"label":"k01", "x":1, "y":0}, - {"label":"k02", "x":2, "y":0}, - {"label":"k03", "x":3, "y":0}, - {"label":"k04", "x":4, "y":0}, - {"label":"k05", "x":5, "y":0}, - {"label":"k06", "x":6, "y":0}, - {"label":"k07", "x":7, "y":0}, - {"label":"k08", "x":8, "y":0}, - {"label":"k09", "x":9, "y":0}, - {"label":"k0a", "x":10, "y":0}, - {"label":"k0b", "x":11, "y":0}, - {"label":"k0c", "x":12, "y":0}, - {"label":"k0d", "x":13, "y":0}, - {"label":"k0e", "x":14, "y":0}, - {"label":"k10", "x":0, "y":1, "w":1.5}, - {"label":"k11", "x":1.5, "y":1}, - {"label":"k12", "x":2.5, "y":1}, - {"label":"k13", "x":3.5, "y":1}, - {"label":"k14", "x":4.5, "y":1}, - {"label":"k15", "x":5.5, "y":1}, - {"label":"k16", "x":6.5, "y":1}, - {"label":"k17", "x":7.5, "y":1}, - {"label":"k18", "x":8.5, "y":1}, - {"label":"k19", "x":9.5, "y":1}, - {"label":"k1a", "x":10.5, "y":1}, - {"label":"k1b", "x":11.5, "y":1}, - {"label":"k1c", "x":12.5, "y":1}, - {"label":"k20", "x":0, "y":2, "w":1.75}, - {"label":"k21", "x":1.75, "y":2}, - {"label":"k22", "x":2.75, "y":2}, - {"label":"k23", "x":3.75, "y":2}, - {"label":"k24", "x":4.75, "y":2}, - {"label":"k25", "x":5.75, "y":2}, - {"label":"k26", "x":6.75, "y":2}, - {"label":"k27", "x":7.75, "y":2}, - {"label":"k28", "x":8.75, "y":2}, - {"label":"k29", "x":9.75, "y":2}, - {"label":"k2a", "x":10.75, "y":2}, - {"label":"k2b", "x":11.75, "y":2}, - {"label":"k2c", "x":12.75, "y":2}, - {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, - {"label":"k30", "x":0, "y":3, "w":1.25}, - {"label":"k31", "x":1.25, "y":3}, - {"label":"k32", "x":2.25, "y":3}, - {"label":"k33", "x":3.25, "y":3}, - {"label":"k34", "x":4.25, "y":3}, - {"label":"k35", "x":5.25, "y":3}, - {"label":"k36", "x":6.25, "y":3}, - {"label":"k37", "x":7.25, "y":3}, - {"label":"k38", "x":8.25, "y":3}, - {"label":"k39", "x":9.25, "y":3}, - {"label":"k3a", "x":10.25, "y":3}, - {"label":"k3b", "x":11.25, "y":3}, - {"label":"k3c", "x":12.25, "y":3, "w":1.75}, - {"label":"k3d", "x":14, "y":3}, - {"label":"k40", "x":0, "y":4, "w":1.25}, - {"label":"k41", "x":1.25, "y":4, "w":1.25}, - {"label":"k42", "x":2.5, "y":4, "w":1.25}, - {"label":"k46", "x":3.75, "y":4, "w":6.25}, - {"label":"k4a", "x":10, "y":4, "w":1.25}, - {"label":"k4b", "x":11.25, "y":4, "w":1.25}, - {"label":"k4c", "x":12.5, "y":4, "w":1.25}, - {"label":"k4d", "x":13.75, "y":4, "w":1.25} - ] + "keyboard_name": "Plain60", + "url": "", + "maintainer": "maartenwut", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"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}, + {"x": 13.75, "y": 2, "w": 1.25}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_hhkb": { + "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": 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} + ] + }, + "LAYOUT_60_iso": { + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "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": 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/keyboards/smk60/info.json b/keyboards/smk60/info.json index f4a5e42bdadb..67903a21ab15 100644 --- a/keyboards/smk60/info.json +++ b/keyboards/smk60/info.json @@ -1,21 +1,426 @@ { - "keyboard_name": "rgb60", - "url": "", - "maintainer": "qmk", - "width": 15, - "height": 5, - "layouts": { - "LAYOUT_60_wkl": { - "key_count":61, - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] - }, - "LAYOUT_60_ansi": { - "key_count":61, - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] - }, - "LAYOUT_60_hhkb": { - "key_count":60, - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}] - } - } + "keyboard_name": "SMK60", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60_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": 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} + ] + }, + "LAYOUT_60_wkl_split_bs": { + "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": 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} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_shift": { + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso": { + "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.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_hhkb": { + "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": 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} + ] + } + } } From 91efcfb43a6ec2d6f79c3d1386ba8379ed4e3041 Mon Sep 17 00:00:00 2001 From: Danilo de Klerk Date: Tue, 30 Jun 2020 19:14:42 +0200 Subject: [PATCH 124/154] Add layouts for split 3x5 and 3x6 keyboards (#9562) Co-authored-by: Ryan --- .../split_3x5_3/default_split_3x5_3/keymap.c | 24 +++++++ layouts/default/split_3x5_3/info.json | 56 +++++++++++++++++ layouts/default/split_3x5_3/layout.json | 12 ++++ layouts/default/split_3x5_3/readme.md | 5 ++ .../split_3x6_3/default_split_3x6_3/keymap.c | 24 +++++++ layouts/default/split_3x6_3/info.json | 62 +++++++++++++++++++ layouts/default/split_3x6_3/layout.json | 12 ++++ layouts/default/split_3x6_3/readme.md | 5 ++ 8 files changed, 200 insertions(+) create mode 100644 layouts/default/split_3x5_3/default_split_3x5_3/keymap.c create mode 100644 layouts/default/split_3x5_3/info.json create mode 100644 layouts/default/split_3x5_3/layout.json create mode 100644 layouts/default/split_3x5_3/readme.md create mode 100644 layouts/default/split_3x6_3/default_split_3x6_3/keymap.c create mode 100644 layouts/default/split_3x6_3/info.json create mode 100644 layouts/default/split_3x6_3/layout.json create mode 100644 layouts/default/split_3x6_3/readme.md diff --git a/layouts/default/split_3x5_3/default_split_3x5_3/keymap.c b/layouts/default/split_3x5_3/default_split_3x5_3/keymap.c new file mode 100644 index 000000000000..8dca359be995 --- /dev/null +++ b/layouts/default/split_3x5_3/default_split_3x5_3/keymap.c @@ -0,0 +1,24 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┐       ┌───┬───┬───┬───┬───┐ + * │ 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 │ , │ . │ / │ + * └───┴───┴───┴───┴───┘       └───┴───┴───┴───┴───┘ + *           ┌───┐                   ┌───┐ + *           │GUI├───┐           ┌───┤Alt│ + *           └───┤Bsp├───┐   ┌───┤Ent├───┘ + *               └───┤   │   │   ├───┘ + *                   └───┘   └───┘ + */ + [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_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT + ) +}; diff --git a/layouts/default/split_3x5_3/info.json b/layouts/default/split_3x5_3/info.json new file mode 100644 index 000000000000..87e5c170d1e3 --- /dev/null +++ b/layouts/default/split_3x5_3/info.json @@ -0,0 +1,56 @@ +{ + "keyboard_name": "3x5+3 split layout", + "url": "", + "maintainer": "qmk", + "width": 12, + "height": 4.75, + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"x":0, "y":0.25}, + {"x":1, "y":0.125}, + {"x":2, "y":0}, + {"x":3, "y":0.125}, + {"x":4, "y":0.25}, + + {"x":7, "y":0.25}, + {"x":8, "y":0.125}, + {"x":9, "y":0}, + {"x":10, "y":0.125}, + {"x":11, "y":0.25}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.125}, + {"x":2, "y":1}, + {"x":3, "y":1.125}, + {"x":4, "y":1.25}, + + {"x":7, "y":1.25}, + {"x":8, "y":1.125}, + {"x":9, "y":1}, + {"x":10, "y":1.125}, + {"x":11, "y":1.25}, + + {"x":0, "y":2.25}, + {"x":1, "y":2.125}, + {"x":2, "y":2}, + {"x":3, "y":2.125}, + {"x":4, "y":2.25}, + + {"x":7, "y":2.25}, + {"x":8, "y":2.125}, + {"x":9, "y":2}, + {"x":10, "y":2.125}, + {"x":11, "y":2.25}, + + {"x":2.5, "y":3.25}, + {"x":3.5, "y":3.5}, + {"x":4.5, "y":3.75}, + + {"x":6.5, "y":3.75}, + {"x":7.5, "y":3.5}, + {"x":8.5, "y":3.25} + ] + } + } +} diff --git a/layouts/default/split_3x5_3/layout.json b/layouts/default/split_3x5_3/layout.json new file mode 100644 index 000000000000..42bf03fd7af4 --- /dev/null +++ b/layouts/default/split_3x5_3/layout.json @@ -0,0 +1,12 @@ +[{x:2,a:7},"",{x:6},""], +[{y:-0.875,x:1},"",{x:1},"",{x:4},"",{x:1},""], +[{y:-0.875},"",{x:3},"",{x:2},"",{x:3},""], +[{y:-0.25,x:2},"",{x:6},""], +[{y:-0.875,x:1},"",{x:1},"",{x:4},"",{x:1},""], +[{y:-0.875},"",{x:3},"",{x:2},"",{x:3},""], +[{y:-0.25,x:2},"",{x:6},""], +[{y:-0.875,x:1},"",{x:1},"",{x:4},"",{x:1},""], +[{y:-0.875},"",{x:3},"",{x:2},"",{x:3},""], +[{x:2.5},"",{x:5},""], +[{y:-0.75,x:3.5},"",{x:3},""], +[{y:-0.75,x:4.5},"",{x:1},""] diff --git a/layouts/default/split_3x5_3/readme.md b/layouts/default/split_3x5_3/readme.md new file mode 100644 index 000000000000..dd73c69867c1 --- /dev/null +++ b/layouts/default/split_3x5_3/readme.md @@ -0,0 +1,5 @@ +# split_3x5_3 + + LAYOUT_split_3x5_3 + +Layout for split keyboards with 3x5 keys and three thumb keys per hand. Examples include the Minidox, Centromere Mini, and Gergoplex. diff --git a/layouts/default/split_3x6_3/default_split_3x6_3/keymap.c b/layouts/default/split_3x6_3/default_split_3x6_3/keymap.c new file mode 100644 index 000000000000..f014d88eb3a9 --- /dev/null +++ b/layouts/default/split_3x6_3/default_split_3x6_3/keymap.c @@ -0,0 +1,24 @@ +#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/layouts/default/split_3x6_3/info.json b/layouts/default/split_3x6_3/info.json new file mode 100644 index 000000000000..b1ca28168bf0 --- /dev/null +++ b/layouts/default/split_3x6_3/info.json @@ -0,0 +1,62 @@ +{ + "keyboard_name": "3x6+3 split layout", + "url": "", + "maintainer": "qmk", + "width": 14, + "height": 4.75, + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"x":0, "y":0.25}, + {"x":1, "y":0.25}, + {"x":2, "y":0.125}, + {"x":3, "y":0}, + {"x":4, "y":0.125}, + {"x":5, "y":0.25}, + + {"x":8, "y":0.25}, + {"x":9, "y":0.125}, + {"x":10, "y":0}, + {"x":11, "y":0.125}, + {"x":12, "y":0.25}, + {"x":13, "y":0.25}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.125}, + {"x":3, "y":1}, + {"x":4, "y":1.125}, + {"x":5, "y":1.25}, + + {"x":8, "y":1.25}, + {"x":9, "y":1.125}, + {"x":10, "y":1}, + {"x":11, "y":1.125}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + + {"x":0, "y":2.25}, + {"x":1, "y":2.25}, + {"x":2, "y":2.125}, + {"x":3, "y":2}, + {"x":4, "y":2.125}, + {"x":5, "y":2.25}, + + {"x":8, "y":2.25}, + {"x":9, "y":2.125}, + {"x":10, "y":2}, + {"x":11, "y":2.125}, + {"x":12, "y":2.25}, + {"x":13, "y":2.25}, + + {"x":3.5, "y":3.25}, + {"x":4.5, "y":3.5}, + {"x":5.5, "y":3.75}, + + {"x":7.5, "y":3.75}, + {"x":8.5, "y":3.5}, + {"x":9.5, "y":3.25} + ] + } + } +} diff --git a/layouts/default/split_3x6_3/layout.json b/layouts/default/split_3x6_3/layout.json new file mode 100644 index 000000000000..c1256eed98a3 --- /dev/null +++ b/layouts/default/split_3x6_3/layout.json @@ -0,0 +1,12 @@ +[{x:3,a:7},"",{x:6},""], +[{y:-0.875,x:2},"",{x:1},"",{x:4},"",{x:1},""], +[{y:-0.875},"","",{x:3},"",{x:2},"",{x:3},"",""], +[{y:-0.25,x:3},"",{x:6},""], +[{y:-0.875,x:2},"",{x:1},"",{x:4},"",{x:1},""], +[{y:-0.875},"","",{x:3},"",{x:2},"",{x:3},"",""], +[{y:-0.25,x:3},"",{x:6},""], +[{y:-0.875,x:2},"",{x:1},"",{x:4},"",{x:1},""], +[{y:-0.875},"","",{x:3},"",{x:2},"",{x:3},"",""], +[{x:3.5},"",{x:5},""], +[{y:-0.75,x:4.5},"",{x:3},""], +[{y:-0.75,x:5.5},"",{x:1},""] diff --git a/layouts/default/split_3x6_3/readme.md b/layouts/default/split_3x6_3/readme.md new file mode 100644 index 000000000000..07d302da8d7e --- /dev/null +++ b/layouts/default/split_3x6_3/readme.md @@ -0,0 +1,5 @@ +# split_3x6_3 + + LAYOUT_split_3x6_3 + +Layout for split keyboards with 3x6 keys and three thumb keys per hand. Examples include the Crkbd and Centromere. From e9fa41631c816e7236210ac9fd9359c603c5ad5e Mon Sep 17 00:00:00 2001 From: siano Date: Tue, 30 Jun 2020 19:16:22 +0200 Subject: [PATCH 125/154] XD87 qmk info fixes (#9601) * Fixed `Nested layout macro detected. Matrix data not available!` * Updated info for XD87 * Layout fixes. --- keyboards/xd87/info.json | 3 +- keyboards/xd87/keymaps/mac_underglow/keymap.c | 6 ++-- keyboards/xd87/xd87.h | 32 +++++++++---------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/keyboards/xd87/info.json b/keyboards/xd87/info.json index 488f31927533..59ec05107e48 100644 --- a/keyboards/xd87/info.json +++ b/keyboards/xd87/info.json @@ -1,6 +1,7 @@ { "keyboard_name": "XD87", - "url": "", + "manufacturer": "KPrepublic", + "url": "https://kprepublic.com/products/hot-swappable-xd87-hs-xd87-custom-mechanical-keyboard-kit80-supports-tkg-tools-support-underglow-rgb-pcb-programmed-gh80-kle", "maintainer": "qmk", "width": 18.25, "height": 6.25, diff --git a/keyboards/xd87/keymaps/mac_underglow/keymap.c b/keyboards/xd87/keymaps/mac_underglow/keymap.c index e5bdebab5cf9..db27e5ea3bd0 100755 --- a/keyboards/xd87/keymaps/mac_underglow/keymap.c +++ b/keyboards/xd87/keymaps/mac_underglow/keymap.c @@ -22,7 +22,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_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(1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( RESET, EEP_RST, DEBUG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_INC, @@ -30,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, RGB_VAD, RGB_RMOD,RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/xd87/xd87.h b/keyboards/xd87/xd87.h index 2ed47fe97673..0dec1f6a14e3 100644 --- a/keyboards/xd87/xd87.h +++ b/keyboards/xd87/xd87.h @@ -42,14 +42,14 @@ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ K50, K51, K52, K58, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ -) LAYOUT_all( \ - K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, K1E, K1F, K1G, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, \ - K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO, \ - K50, K51, K52, KC_NO, K58, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ -) +) { \ + {K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO,KC_NO }, \ + {K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + {K50, K51, K52, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K58, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G } \ +} #define LAYOUT_tkl_iso( \ K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ @@ -58,13 +58,13 @@ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ K50, K51, K52, K58, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ -) LAYOUT_all( \ - K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, K1E, K1F, K1G, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO, \ - K50, K51, K52, KC_NO, K58, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ -) +) { \ + {K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F, K2G }, \ + {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO,KC_NO }, \ + {K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + {K50, K51, K52, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K58, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G } \ +} #endif From 6600f32d355b7028854f537a5e0ee9d352f539f0 Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Tue, 30 Jun 2020 17:27:24 +0000 Subject: [PATCH 126/154] Add VIA support on XiuDi (XD) keyboards (#8829) Co-authored-by: Ryan Co-authored-by: Erovia --- keyboards/xd004/v1/config.h | 4 +- keyboards/xd60/keymaps/via/keymap.c | 35 ++++++++++++ keyboards/xd60/keymaps/via/readme.md | 1 + keyboards/xd60/keymaps/via/rules.mk | 1 + keyboards/xd60/rev2/config.h | 2 +- keyboards/xd60/rev3/config.h | 2 +- keyboards/xd68/config.h | 2 +- keyboards/xd68/keymaps/via/keymap.c | 61 +++++++++++++++++++++ keyboards/xd68/keymaps/via/readme.md | 1 + keyboards/xd68/keymaps/via/rules.mk | 1 + keyboards/xd75/config.h | 7 +-- keyboards/xd75/keymaps/via/keymap.c | 79 ++++++++++++++++++++++++++++ keyboards/xd75/keymaps/via/readme.md | 1 + keyboards/xd75/keymaps/via/rules.mk | 1 + keyboards/xd84/config.h | 4 +- keyboards/xd84/keymaps/via/keymap.c | 68 ++++++++++++++++++++++++ keyboards/xd84/keymaps/via/readme.md | 1 + keyboards/xd84/keymaps/via/rules.mk | 1 + keyboards/xd87/config.h | 4 +- keyboards/xd87/keymaps/via/keymap.c | 50 ++++++++++++++++++ keyboards/xd87/keymaps/via/readme.md | 1 + keyboards/xd87/keymaps/via/rules.mk | 1 + keyboards/xd96/config.h | 4 +- keyboards/xd96/keymaps/via/keymap.c | 68 ++++++++++++++++++++++++ keyboards/xd96/keymaps/via/readme.md | 1 + keyboards/xd96/keymaps/via/rules.mk | 1 + 26 files changed, 386 insertions(+), 16 deletions(-) create mode 100644 keyboards/xd60/keymaps/via/keymap.c create mode 100644 keyboards/xd60/keymaps/via/readme.md create mode 100644 keyboards/xd60/keymaps/via/rules.mk create mode 100644 keyboards/xd68/keymaps/via/keymap.c create mode 100644 keyboards/xd68/keymaps/via/readme.md create mode 100644 keyboards/xd68/keymaps/via/rules.mk create mode 100644 keyboards/xd75/keymaps/via/keymap.c create mode 100644 keyboards/xd75/keymaps/via/readme.md create mode 100644 keyboards/xd75/keymaps/via/rules.mk create mode 100644 keyboards/xd84/keymaps/via/keymap.c create mode 100644 keyboards/xd84/keymaps/via/readme.md create mode 100644 keyboards/xd84/keymaps/via/rules.mk create mode 100644 keyboards/xd87/keymaps/via/keymap.c create mode 100644 keyboards/xd87/keymaps/via/readme.md create mode 100644 keyboards/xd87/keymaps/via/rules.mk create mode 100644 keyboards/xd96/keymaps/via/keymap.c create mode 100644 keyboards/xd96/keymaps/via/readme.md create mode 100644 keyboards/xd96/keymaps/via/rules.mk diff --git a/keyboards/xd004/v1/config.h b/keyboards/xd004/v1/config.h index a141137e98b7..f7a262d4c071 100644 --- a/keyboards/xd004/v1/config.h +++ b/keyboards/xd004/v1/config.h @@ -26,7 +26,7 @@ where some things are disabled to save space as well. #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xCDCD +#define VENDOR_ID 0x7844 // "XD" #define PRODUCT_ID 0x0404 #define DEVICE_VER 0x0001 // Note: unsure about manufacturer @@ -77,4 +77,4 @@ further optimizations can be done on that side. // #define NO_ACTION_ONESHOT // 462 bytes <- this needs to be un-commented out if Link Time Optimization is disabled, otherwise file is too large // The two below are implicit since we use LINK_TIME_OPTIMIZATION_ENABLE (in rules.mk) // #define NO_ACTION_MACRO -// #define NO_ACTION_FUNCTION \ No newline at end of file +// #define NO_ACTION_FUNCTION diff --git a/keyboards/xd60/keymaps/via/keymap.c b/keyboards/xd60/keymaps/via/keymap.c new file mode 100644 index 000000000000..9685737b46d3 --- /dev/null +++ b/keyboards/xd60/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: Base 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_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_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_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), + + // 1: Function Layer + [1] = LAYOUT_all( + RESET, KC_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_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, + KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, + KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, KC_INS, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, _______, KC_HOME, KC_PGDOWN,KC_END), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; diff --git a/keyboards/xd60/keymaps/via/readme.md b/keyboards/xd60/keymaps/via/readme.md new file mode 100644 index 000000000000..27cb965eba9e --- /dev/null +++ b/keyboards/xd60/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA default layout diff --git a/keyboards/xd60/keymaps/via/rules.mk b/keyboards/xd60/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/xd60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/xd60/rev2/config.h b/keyboards/xd60/rev2/config.h index 22aa95b291a8..ef16083ee6d8 100644 --- a/keyboards/xd60/rev2/config.h +++ b/keyboards/xd60/rev2/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED +#define VENDOR_ID 0x7844 // "XD" #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 #define MANUFACTURER XIUDI diff --git a/keyboards/xd60/rev3/config.h b/keyboards/xd60/rev3/config.h index 4628b5a0c821..1efa67cccdcd 100644 --- a/keyboards/xd60/rev3/config.h +++ b/keyboards/xd60/rev3/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED +#define VENDOR_ID 0x7844 // "XD" #define PRODUCT_ID 0x6363 #define DEVICE_VER 0x0001 #define MANUFACTURER XIUDI diff --git a/keyboards/xd68/config.h b/keyboards/xd68/config.h index c86bb56225d6..9fd4f360b68f 100644 --- a/keyboards/xd68/config.h +++ b/keyboards/xd68/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xCDCD +#define VENDOR_ID 0x7844 // "XD" #define PRODUCT_ID 0x6868 #define DEVICE_VER 0x0001 #define MANUFACTURER xiudi diff --git a/keyboards/xd68/keymaps/via/keymap.c b/keyboards/xd68/keymaps/via/keymap.c new file mode 100644 index 000000000000..6ffed7750b46 --- /dev/null +++ b/keyboards/xd68/keymaps/via/keymap.c @@ -0,0 +1,61 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|End | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |App|Ctrl|FN |Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + [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_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_APP, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap _FL: Function Layer + * ,----------------------------------------------------------------. + * |~ `| F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Del |Ins | + * |----------------------------------------------------------------| + * |RESET| |Up | | | | | | | | | | | | | + * |----------------------------------------------------------------| + * | |<- |Dn | ->| | | | | | | | | | | + * |----------------------------------------------------------------| + * |HUI |SAI|VAI|RGBMOD|BL-|BL |BL+| | | | |Play |V+ |Mut | + * |----------------------------------------------------------------| + * |HUD |SAD |VAD | RGB_Tog | | | | | + * `----------------------------------------------------------------' + */ + [1] = 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, KC_INS, + RESET, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, KC_MPLY, KC_VOLU, KC_MUTE, + RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, _______, _______, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + + [2] = LAYOUT_65_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_65_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/xd68/keymaps/via/readme.md b/keyboards/xd68/keymaps/via/readme.md new file mode 100644 index 000000000000..27cb965eba9e --- /dev/null +++ b/keyboards/xd68/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA default layout diff --git a/keyboards/xd68/keymaps/via/rules.mk b/keyboards/xd68/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/xd68/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/xd75/config.h b/keyboards/xd75/config.h index b3a1882becd1..57ca4001fff0 100644 --- a/keyboards/xd75/config.h +++ b/keyboards/xd75/config.h @@ -15,13 +15,12 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xCDCD +#define VENDOR_ID 0x7844 // "XD" #define PRODUCT_ID 0x7575 #define DEVICE_VER 0x0001 #define MANUFACTURER xiudi @@ -183,5 +182,3 @@ along with this program. If not, see . /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ //#define MIDI_TONE_KEYCODE_OCTAVES 1 - -#endif diff --git a/keyboards/xd75/keymaps/via/keymap.c b/keyboards/xd75/keymaps/via/keymap.c new file mode 100644 index 000000000000..32cf102d464c --- /dev/null +++ b/keyboards/xd75/keymaps/via/keymap.c @@ -0,0 +1,79 @@ +/* Copyright 2017 Wunder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | CAP LK | A | S | D | F | G | HOME | DEL | PG UP | H | J | K | L | ; | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | LSHIFT | Z | X | C | V | B | END | UP | PG DN | N | M | , | . | / | RSHIFT | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | LEFT | DOWN | RIGHT | SPACE | SPACE | FN | RALT | RGUI | RCTRL | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [0] = LAYOUT_ortho_5x15( /* QWERTY */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, 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_BSLS, 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_HOME, KC_DEL, KC_PGUP, 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_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL + ), + +/* FUNCTION + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | NUM LK | P/ | P* | F7 | F8 | F9 | F10 | F11 | F12 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | SELECT | CALC | MYCOMP | MAIL | RGB HD | RGB HI | P7 | P8 | P9 | - | | | PR SCR | SCR LK | PAUSE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | PREV | PLAY | NEXT | STOP | RGB SD | RGB SI | P4 | P5 | P6 | + | | RESET | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | VOL- | MUTE | VOL+ | APP | RGB VD | RGB VI | P1 | P2 | P3 | PENT | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | RGB TG | FN | RGB RMD| RGB MD | P0 | | P. | PENT | PENT | FN | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [1] = LAYOUT_ortho_5x15( /* FUNCTION */ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NLCK, KC_SLSH, KC_ASTR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, + KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______, + KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, + _______, _______, RGB_TOG, _______, RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, _______, _______, _______, _______ + ), + + [2] = LAYOUT_ortho_5x15( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_ortho_5x15( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/xd75/keymaps/via/readme.md b/keyboards/xd75/keymaps/via/readme.md new file mode 100644 index 000000000000..27cb965eba9e --- /dev/null +++ b/keyboards/xd75/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA default layout diff --git a/keyboards/xd75/keymaps/via/rules.mk b/keyboards/xd75/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/xd75/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/xd84/config.h b/keyboards/xd84/config.h index 1ff5e1cfd7cd..2a77db68a417 100644 --- a/keyboards/xd84/config.h +++ b/keyboards/xd84/config.h @@ -19,8 +19,8 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4084 +#define VENDOR_ID 0x7844 // "XD" +#define PRODUCT_ID 0x8484 #define DEVICE_VER 0x0001 #define MANUFACTURER KPrepublic #define PRODUCT XD84 diff --git a/keyboards/xd84/keymaps/via/keymap.c b/keyboards/xd84/keymaps/via/keymap.c new file mode 100644 index 000000000000..50f54500f480 --- /dev/null +++ b/keyboards/xd84/keymaps/via/keymap.c @@ -0,0 +1,68 @@ +#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_F13, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ), + + [1] = LAYOUT_75_ansi( +/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ), + + [2] = LAYOUT_75_ansi( +/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ), + + [3] = LAYOUT_75_ansi( +/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴───────┬─┴───────┬─┴───────┬─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ), +}; diff --git a/keyboards/xd84/keymaps/via/readme.md b/keyboards/xd84/keymaps/via/readme.md new file mode 100644 index 000000000000..27cb965eba9e --- /dev/null +++ b/keyboards/xd84/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA default layout diff --git a/keyboards/xd84/keymaps/via/rules.mk b/keyboards/xd84/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/xd84/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/xd87/config.h b/keyboards/xd87/config.h index e943dcbeab5b..1caaa558444d 100644 --- a/keyboards/xd87/config.h +++ b/keyboards/xd87/config.h @@ -20,8 +20,8 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 +#define VENDOR_ID 0x7844 // "XD" +#define PRODUCT_ID 0x8787 #define DEVICE_VER 0x0001 #define MANUFACTURER KP Republic #define PRODUCT XD87 TKL diff --git a/keyboards/xd87/keymaps/via/keymap.c b/keyboards/xd87/keymaps/via/keymap.c new file mode 100644 index 000000000000..35d8da47972f --- /dev/null +++ b/keyboards/xd87/keymaps/via/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2019 Louwii + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_SLCK, 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_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + [2] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + [3] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) +}; diff --git a/keyboards/xd87/keymaps/via/readme.md b/keyboards/xd87/keymaps/via/readme.md new file mode 100644 index 000000000000..27cb965eba9e --- /dev/null +++ b/keyboards/xd87/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA default layout diff --git a/keyboards/xd87/keymaps/via/rules.mk b/keyboards/xd87/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/xd87/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/xd96/config.h b/keyboards/xd96/config.h index b0fa47795231..799b835df037 100644 --- a/keyboards/xd96/config.h +++ b/keyboards/xd96/config.h @@ -19,8 +19,8 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4096 +#define VENDOR_ID 0x7844 // "XD" +#define PRODUCT_ID 0x9696 #define DEVICE_VER 0x0001 #define MANUFACTURER KPrepublic #define PRODUCT XD96 diff --git a/keyboards/xd96/keymaps/via/keymap.c b/keyboards/xd96/keymaps/via/keymap.c new file mode 100644 index 000000000000..092fc9dfea49 --- /dev/null +++ b/keyboards/xd96/keymaps/via/keymap.c @@ -0,0 +1,68 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [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_INS, 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_NLCK, 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_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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT +/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ), + + [1] = LAYOUT_96_ansi( +/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────┼ ┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ), + + [2] = LAYOUT_96_ansi( +/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────┼ ┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ), + + [3] = LAYOUT_96_ansi( +/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────┼ ┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ + ), +}; diff --git a/keyboards/xd96/keymaps/via/readme.md b/keyboards/xd96/keymaps/via/readme.md new file mode 100644 index 000000000000..27cb965eba9e --- /dev/null +++ b/keyboards/xd96/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA default layout diff --git a/keyboards/xd96/keymaps/via/rules.mk b/keyboards/xd96/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/xd96/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes From 8b9e3e9979ffddaa91e022e8ab953be5c7c5283e Mon Sep 17 00:00:00 2001 From: kakunpc <15257475+kakunpc@users.noreply.github.com> Date: Wed, 1 Jul 2020 04:04:47 +0900 Subject: [PATCH 127/154] [Keyboard] Add "choc taro" keyboard (#9556) Co-authored-by: Ryan Co-authored-by: Erovia --- keyboards/choc_taro/choc_taro.c | 17 + keyboards/choc_taro/choc_taro.h | 342 +++++++++++ keyboards/choc_taro/config.h | 219 +++++++ keyboards/choc_taro/info.json | 558 ++++++++++++++++++ keyboards/choc_taro/keymaps/default/keymap.c | 25 + keyboards/choc_taro/keymaps/default/readme.md | 1 + keyboards/choc_taro/keymaps/via/keymap.c | 48 ++ keyboards/choc_taro/keymaps/via/readme.md | 3 + keyboards/choc_taro/keymaps/via/rules.mk | 1 + keyboards/choc_taro/matrix.c | 156 +++++ keyboards/choc_taro/readme.md | 15 + keyboards/choc_taro/rules.mk | 34 ++ 12 files changed, 1419 insertions(+) create mode 100644 keyboards/choc_taro/choc_taro.c create mode 100644 keyboards/choc_taro/choc_taro.h create mode 100644 keyboards/choc_taro/config.h create mode 100644 keyboards/choc_taro/info.json create mode 100644 keyboards/choc_taro/keymaps/default/keymap.c create mode 100644 keyboards/choc_taro/keymaps/default/readme.md create mode 100644 keyboards/choc_taro/keymaps/via/keymap.c create mode 100644 keyboards/choc_taro/keymaps/via/readme.md create mode 100644 keyboards/choc_taro/keymaps/via/rules.mk create mode 100644 keyboards/choc_taro/matrix.c create mode 100644 keyboards/choc_taro/readme.md create mode 100644 keyboards/choc_taro/rules.mk diff --git a/keyboards/choc_taro/choc_taro.c b/keyboards/choc_taro/choc_taro.c new file mode 100644 index 000000000000..2a835b2bd8c1 --- /dev/null +++ b/keyboards/choc_taro/choc_taro.c @@ -0,0 +1,17 @@ +/* Copyright 2020 kakunpc + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "choc_taro.h" diff --git a/keyboards/choc_taro/choc_taro.h b/keyboards/choc_taro/choc_taro.h new file mode 100644 index 000000000000..cf07b80b5c0f --- /dev/null +++ b/keyboards/choc_taro/choc_taro.h @@ -0,0 +1,342 @@ +/* Copyright 2020 kakunpc + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +/* LAYOUT_all + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │201 │202│203│204│205│206│207│208│209│210│211│212│213 │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤ + * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│ + * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘ +*/ +#define LAYOUT_all( \ + k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ + k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \ + k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k401, k402, k403, k404, k405, k406, k407, k408 \ +) \ +{ \ + { k009, k109, k209, k309, KC_NO } , \ + { k010, k110, k210, k310, KC_NO } , \ + { k011, k111, k211, k311, KC_NO } , \ + { k012, k112, k212, k312, KC_NO } , \ + { k013, k113, k213, k313, KC_NO } , \ + { k014, k114, KC_NO, KC_NO, KC_NO } , \ + { k015, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { k001, k101, k201, k301, k401 } , \ + { k002, k102, k202, k302, k402 } , \ + { k003, k103, k203, k303, k403 } , \ + { k004, k104, k204, k304, k404 } , \ + { k005, k105, k205, k305, k405 } , \ + { k006, k106, k206, k306, k406 } , \ + { k007, k107, k207, k307, k407 } , \ + { k008, k108, k208, k308, k408 } \ +} + +/* LAYOUT_ansi + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │201 │202│203│204│205│206│207│208│209│210│211│212│213 │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤ + * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│ + * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘ +*/ +#define LAYOUT_ansi( \ + k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \ + k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \ + k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k401, k402, k403, k404, k405, k406, k407, k408 \ +) \ +{ \ + { k009, k109, k209, k309, KC_NO } , \ + { k010, k110, k210, k310, KC_NO } , \ + { k011, k111, k211, k311, KC_NO } , \ + { k012, k112, k212, k312, KC_NO } , \ + { k013, k113, k213, KC_NO, KC_NO } , \ + { k014, k114, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { k001, k101, k201, k301, k401 } , \ + { k002, k102, k202, k302, k402 } , \ + { k003, k103, k203, k303, k403 } , \ + { k004, k104, k204, k304, k404 } , \ + { k005, k105, k205, k305, k405 } , \ + { k006, k106, k206, k306, k406 } , \ + { k007, k107, k207, k307, k407 } , \ + { k008, k108, k208, k308, k408 } \ +} + +/* LAYOUT_ansi_split_bs + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │201 │202│203│204│205│206│207│208│209│210│211│212│213 │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤ + * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│ + * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘ +*/ +#define LAYOUT_ansi_split_bs( \ + k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ + k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \ + k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k401, k402, k403, k404, k405, k406, k407, k408 \ +) \ +{ \ + { k009, k109, k209, k309, KC_NO } , \ + { k010, k110, k210, k310, KC_NO } , \ + { k011, k111, k211, k311, KC_NO } , \ + { k012, k112, k212, k312, KC_NO } , \ + { k013, k113, k213, KC_NO, KC_NO } , \ + { k014, k114, KC_NO, KC_NO, KC_NO } , \ + { k015, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { k001, k101, k201, k301, k401 } , \ + { k002, k102, k202, k302, k402 } , \ + { k003, k103, k203, k303, k403 } , \ + { k004, k104, k204, k304, k404 } , \ + { k005, k105, k205, k305, k405 } , \ + { k006, k106, k206, k306, k406 } , \ + { k007, k107, k207, k307, k407 } , \ + { k008, k108, k208, k308, k408 } \ +} + + +/* LAYOUT_ansi_split_rshift + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │201 │202│203│204│205│206│207│208│209│210│211│212│213 │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤ + * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│ + * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘ +*/ +#define LAYOUT_ansi_split_rshift( \ + k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \ + k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \ + k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k401, k402, k403, k404, k405, k406, k407, k408 \ +) \ +{ \ + { k009, k109, k209, k309, KC_NO } , \ + { k010, k110, k210, k310, KC_NO } , \ + { k011, k111, k211, k311, KC_NO } , \ + { k012, k112, k212, k312, KC_NO } , \ + { k013, k113, k213, k313, KC_NO } , \ + { k014, k114, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { k001, k101, k201, k301, k401 } , \ + { k002, k102, k202, k302, k402 } , \ + { k003, k103, k203, k303, k403 } , \ + { k004, k104, k204, k304, k404 } , \ + { k005, k105, k205, k305, k405 } , \ + { k006, k106, k206, k306, k406 } , \ + { k007, k107, k207, k307, k407 } , \ + { k008, k108, k208, k308, k408 } \ +} + + +/* LAYOUT_iso + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │ + * │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤ + * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│ + * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘ +*/ +#define LAYOUT_iso( \ + k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \ + k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \ + k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k401, k402, k403, k404, k405, k406, k407, k408 \ +) \ +{ \ + { k009, k109, k209, k309, KC_NO } , \ + { k010, k110, k210, k310, KC_NO } , \ + { k011, k111, k211, k311, KC_NO } , \ + { k012, k112, k212, k312, KC_NO } , \ + { k013, k113, k213, KC_NO, KC_NO } , \ + { k014, k114, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { k001, k101, k201, k301, k401 } , \ + { k002, k102, k202, k302, k402 } , \ + { k003, k103, k203, k303, k403 } , \ + { k004, k104, k204, k304, k404 } , \ + { k005, k105, k205, k305, k405 } , \ + { k006, k106, k206, k306, k406 } , \ + { k007, k107, k207, k307, k407 } , \ + { k008, k108, k208, k308, k408 } \ +} + +/* LAYOUT_iso_split_rshift + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │ + * │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ + * │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤ + * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│ + * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘ +*/ +#define LAYOUT_iso_split_rshift( \ + k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \ + k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \ + k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k401, k402, k403, k404, k405, k406, k407, k408 \ +) \ +{ \ + { k009, k109, k209, k309, KC_NO } , \ + { k010, k110, k210, k310, KC_NO } , \ + { k011, k111, k211, k311, KC_NO } , \ + { k012, k112, k212, k312, KC_NO } , \ + { k013, k113, k213, k313, KC_NO } , \ + { k014, k114, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { k001, k101, k201, k301, k401 } , \ + { k002, k102, k202, k302, k402 } , \ + { k003, k103, k203, k303, k403 } , \ + { k004, k104, k204, k304, k404 } , \ + { k005, k105, k205, k305, k405 } , \ + { k006, k106, k206, k306, k406 } , \ + { k007, k107, k207, k307, k407 } , \ + { k008, k108, k208, k308, k408 } \ +} + +/* LAYOUT_iso_split_bs + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │ + * │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤ + * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│ + * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘ +*/ +#define LAYOUT_iso_split_bs( \ + k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ + k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \ + k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \ + k401, k402, k403, k404, k405, k406, k407, k408 \ +) \ +{ \ + { k009, k109, k209, k309, KC_NO } , \ + { k010, k110, k210, k310, KC_NO } , \ + { k011, k111, k211, k311, KC_NO } , \ + { k012, k112, k212, k312, KC_NO } , \ + { k013, k113, k213, KC_NO, KC_NO } , \ + { k014, k114, KC_NO, KC_NO, KC_NO } , \ + { k015, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { k001, k101, k201, k301, k401 } , \ + { k002, k102, k202, k302, k402 } , \ + { k003, k103, k203, k303, k403 } , \ + { k004, k104, k204, k304, k404 } , \ + { k005, k105, k205, k305, k405 } , \ + { k006, k106, k206, k306, k406 } , \ + { k007, k107, k207, k307, k407 } , \ + { k008, k108, k208, k308, k408 } \ +} + +/* LAYOUT_iso_split_bs_rshift + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │ + * │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ + * │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤ + * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│ + * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘ +*/ +#define LAYOUT_iso_split_bs_rshift( \ + k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ + k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \ + k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k401, k402, k403, k404, k405, k406, k407, k408 \ +) \ +{ \ + { k009, k109, k209, k309, KC_NO } , \ + { k010, k110, k210, k310, KC_NO } , \ + { k011, k111, k211, k311, KC_NO } , \ + { k012, k112, k212, k312, KC_NO } , \ + { k013, k113, k213, k313, KC_NO } , \ + { k014, k114, KC_NO, KC_NO, KC_NO } , \ + { k015, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \ + { k001, k101, k201, k301, k401 } , \ + { k002, k102, k202, k302, k402 } , \ + { k003, k103, k203, k303, k403 } , \ + { k004, k104, k204, k304, k404 } , \ + { k005, k105, k205, k305, k405 } , \ + { k006, k106, k206, k306, k406 } , \ + { k007, k107, k207, k307, k407 } , \ + { k008, k108, k208, k308, k408 } \ +} diff --git a/keyboards/choc_taro/config.h b/keyboards/choc_taro/config.h new file mode 100644 index 000000000000..4ccc686a6624 --- /dev/null +++ b/keyboards/choc_taro/config.h @@ -0,0 +1,219 @@ +/* +Copyright 2020 kakunpc + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xDCED +#define PRODUCT_ID 0x71CC +#define DEVICE_VER 0x0001 +#define MANUFACTURER kakunpc +#define PRODUCT choc_taro +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 16 +#define MATRIX_COLS 5 +/* + * 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) + * + */ +#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3, B2, B6 } +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4 } +#define UNUSED_PINS + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose 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 +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * 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 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* 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 1 + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/choc_taro/info.json b/keyboards/choc_taro/info.json new file mode 100644 index 000000000000..33821afe0088 --- /dev/null +++ b/keyboards/choc_taro/info.json @@ -0,0 +1,558 @@ +{ + "keyboard_name": "choc_taro", + "url": "https://kakunpc.booth.pm/", + "maintainer": "kakunpc", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"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":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}] + }, + "LAYOUT_ansi": { + "layout": [{"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":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":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}] + }, + "LAYOUT_ansi_split_bs": { + "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":2.75}, + + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}] + }, + "LAYOUT_ansi_split_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, "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":1.75}, + {"x":14, "y":3}, + + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}] + }, + "LAYOUT_iso": { + "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.75, "y":1, "w":1.25, "h":2}, + + {"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":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":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}] + }, + "LAYOUT_iso_split_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, "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.75, "y":1, "w":1.25, "h":2}, + + {"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":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":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}] + }, + "LAYOUT_iso_split_bs": { + "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.75, "y":1, "w":1.25, "h":2}, + + {"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":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":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}] + }, + "LAYOUT_iso_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.75, "y":1, "w":1.25, "h":2}, + + {"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":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":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}] + } + } +} diff --git a/keyboards/choc_taro/keymaps/default/keymap.c b/keyboards/choc_taro/keymaps/default/keymap.c new file mode 100644 index 000000000000..4de3c2d55aeb --- /dev/null +++ b/keyboards/choc_taro/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2020 kakunpc + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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( /* Base */ + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_LCAP, 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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; diff --git a/keyboards/choc_taro/keymaps/default/readme.md b/keyboards/choc_taro/keymaps/default/readme.md new file mode 100644 index 000000000000..a2cb119040a0 --- /dev/null +++ b/keyboards/choc_taro/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for choc_taro diff --git a/keyboards/choc_taro/keymaps/via/keymap.c b/keyboards/choc_taro/keymaps/via/keymap.c new file mode 100644 index 000000000000..a1d48eb5e9fe --- /dev/null +++ b/keyboards/choc_taro/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2020 kakunpc + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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( /* Base */ + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_LCAP, 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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/choc_taro/keymaps/via/readme.md b/keyboards/choc_taro/keymaps/via/readme.md new file mode 100644 index 000000000000..cb3af77dfab7 --- /dev/null +++ b/keyboards/choc_taro/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# The default keymap for choc_taro + +This is an experimental. Use at your own risk. diff --git a/keyboards/choc_taro/keymaps/via/rules.mk b/keyboards/choc_taro/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/choc_taro/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/choc_taro/matrix.c b/keyboards/choc_taro/matrix.c new file mode 100644 index 000000000000..02421551da55 --- /dev/null +++ b/keyboards/choc_taro/matrix.c @@ -0,0 +1,156 @@ +/* +Copyright 2012-2018 Jun Wako, Jack Humbert, 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 . +*/ +#include +#include +#include "matrix.h" +#include "quantum.h" + +#if (MATRIX_COLS <= 8) +# define ROW_SHIFTER ((uint8_t)1) +#elif (MATRIX_COLS <= 16) +# define ROW_SHIFTER ((uint16_t)1) +#elif (MATRIX_COLS <= 32) +# define ROW_SHIFTER ((uint32_t)1) +#endif + +static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +static void select_row(uint8_t row) { + setPinOutput(row_pins[row]); + writePinLow(row_pins[row]); +} + +static void unselect_row(uint8_t row) { + setPinInputHigh(row_pins[row]); +} + +static void unselect_rows(void) { + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + setPinInputHigh(row_pins[x]); + } +} + +static void select_col(uint8_t col) { + setPinOutput(col_pins[col]); + writePinLow(col_pins[col]); +} + +static void unselect_col(uint8_t col) { + setPinInputHigh(col_pins[col]); +} + +static void unselect_cols(void) { + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + setPinInputHigh(col_pins[x]); + } +} + +static void init_pins(void) { + unselect_rows(); + unselect_cols(); + + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + setPinInputHigh(col_pins[x]); + } + + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + setPinInputHigh(row_pins[x]); + } +} + +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) { + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Clear data in matrix row + current_matrix[current_row] = 0; + + // Select row and wait for row selecton to stabilize + select_row(current_row); + matrix_io_delay(); + + // For each col... + for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { + + // Select the col pin to read (active low) + uint8_t pin_state = readPin(col_pins[col_index]); + + // Populate the matrix row with the state of the col pin + current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + } + + // Unselect row + unselect_row(current_row); + + return (last_row_value != current_matrix[current_row]); +} + +static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) { + bool matrix_changed = false; + + // Select col and wait for col selecton to stabilize + select_col(current_col); + matrix_io_delay(); + + // For each row... + for(uint8_t row_index = 0; row_index < MATRIX_ROWS / 2; row_index++) { + uint8_t tmp = row_index + MATRIX_ROWS / 2; + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[tmp]; + + // Check row pin state + if (readPin(row_pins[row_index]) == 0) { + // Pin LO, set col bit + current_matrix[tmp] |= (ROW_SHIFTER << current_col); + } else { + // Pin HI, clear col bit + current_matrix[tmp] &= ~(ROW_SHIFTER << current_col); + } + + // Determine if the matrix changed state + if ((last_row_value != current_matrix[tmp]) && !(matrix_changed)) { + matrix_changed = true; + } + } + + // Unselect col + unselect_col(current_col); + + return matrix_changed; +} + +void matrix_init_custom(void) { + // initialize key pins + init_pins(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool changed = false; + + // Set row, read cols + for (uint8_t current_row = 0; current_row < MATRIX_ROWS / 2; current_row++) { + changed |= read_cols_on_row(current_matrix, current_row); + } + + // Set col, read rows + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { + changed |= read_rows_on_col(current_matrix, current_col); + } + + return changed; +} diff --git a/keyboards/choc_taro/readme.md b/keyboards/choc_taro/readme.md new file mode 100644 index 000000000000..f0900c2fe462 --- /dev/null +++ b/keyboards/choc_taro/readme.md @@ -0,0 +1,15 @@ +# choc_taro + +![choc_taro](https://i.gyazo.com/717ddeed13cd2f956ed01b71c6e96f87.jpg) + +gh60 compatible choc keyboard + +* Keyboard Maintainer: [kakunpc](https://github.com/kakunpc) +* Hardware Supported: choc taro pcb +* Hardware Availability: booth([@kakunpc](https://kakunpc.booth.pm/)) + +Make example for this keyboard (after setting up your build environment): + + make choc_taro: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/choc_taro/rules.mk b/keyboards/choc_taro/rules.mk new file mode 100644 index 000000000000..c11995e538be --- /dev/null +++ b/keyboards/choc_taro/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +CUSTOM_MATRIX = lite +SRC += matrix.c From 907c1c64cfd1e1c132c65a19ef30bb255255c37b Mon Sep 17 00:00:00 2001 From: Nick Blyumberg Date: Wed, 1 Jul 2020 02:49:16 -0400 Subject: [PATCH 128/154] [Keymap] AutoHotKey Companion keymap for Super16 (#9216) * Started AHK Companion Development * Updated the readme * Added AutoHotKey companion file * Updated documentation * Cleaned up the files and revised documentation * Finished the readme.md updates * Fixed the LED issue where the last LED did not reflect the right color --- .../keymaps/ahk_companion/ahk_companion.ahk | 104 ++++++++++++++ .../super16/keymaps/ahk_companion/config.h | 19 +++ .../super16/keymaps/ahk_companion/keymap.c | 136 ++++++++++++++++++ .../super16/keymaps/ahk_companion/readme.md | 58 ++++++++ .../super16/keymaps/ahk_companion/rules.mk | 2 + 5 files changed, 319 insertions(+) create mode 100644 keyboards/1upkeyboards/super16/keymaps/ahk_companion/ahk_companion.ahk create mode 100644 keyboards/1upkeyboards/super16/keymaps/ahk_companion/config.h create mode 100644 keyboards/1upkeyboards/super16/keymaps/ahk_companion/keymap.c create mode 100644 keyboards/1upkeyboards/super16/keymaps/ahk_companion/readme.md create mode 100644 keyboards/1upkeyboards/super16/keymaps/ahk_companion/rules.mk diff --git a/keyboards/1upkeyboards/super16/keymaps/ahk_companion/ahk_companion.ahk b/keyboards/1upkeyboards/super16/keymaps/ahk_companion/ahk_companion.ahk new file mode 100644 index 000000000000..becab49e5cc5 --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/ahk_companion/ahk_companion.ahk @@ -0,0 +1,104 @@ +#Persistent +#SingleInstance force + +;================================================================= +; Macro Pad Shortcuts ; +;================================================================= + +;================================================================= +; Layer 0 +;;================================================================= +;Row 1 + +F13::Send a +F14::Send b +F15::Send c +F16::Send d + +;Row 2 + +F17::Send e +F18::Send f +F19::Send g +F20::Send h + +;Row 3 + +F21::Send i +F22::Send j +F23::Send k +F24::Send l + + +;================================================================= +; Layer 1 +;;================================================================= +;Row 1 + +!F13::Send m +!F14::Send n +!F15::Send o +!F16::Send p + +;Row 2 + +!F17::Send q +!F18::Send r +!F19::Send s +!F20::Send t + +;Row 3 + +!F21::Send u +!F22::Send v +!F23::Send w +!F24::Send x + + +;================================================================= +; Layer 2 +;;================================================================= +;Row 1 + ++F13::Send y ++F14::Send z ++F15::Send A ++F16::Send B + +;Row 2 + ++F17::Send C ++F18::Send D ++F19::Send E ++F20::Send F + +;Row 3 + ++F21::Send G ++F22::Send H ++F23::Send I ++F24::Send J + +;================================================================= +; Layer 3 +;;================================================================= +;Row 1 + +^F13::Send K +^F14::Send L +^F15::Send M +^F16::Send N + +;Row 2 + +^F17::Send O +^F18::Send P +^F19::Send Q +^F20::Send R + +;Row 3 + +^F21::Send S +^F22::Send T +^F23::Send U +^F24::Send V diff --git a/keyboards/1upkeyboards/super16/keymaps/ahk_companion/config.h b/keyboards/1upkeyboards/super16/keymaps/ahk_companion/config.h new file mode 100644 index 000000000000..3b7fd81d698f --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/ahk_companion/config.h @@ -0,0 +1,19 @@ +#pragma once + +// Time out one shot layers after 3 seconds +#define ONESHOT_TIMEOUT 3000 + +#define RGBLED_NUM 16 + +// Undef and redefine default brightness to half of 255 +#undef RGBLIGHT_LIMIT_VAL +#define RGBLIGHT_LIMIT_VAL 128 + +//Define a preview timeout for RGB reviews +#define PREVIEW_TIMEOUT 5000 +#define TAPPING_TERM 200 + +// Enable Light Layers implementation +#define RGBLIGHT_LAYERS +// Allow Light Layers to override RGB off configuration +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF diff --git a/keyboards/1upkeyboards/super16/keymaps/ahk_companion/keymap.c b/keyboards/1upkeyboards/super16/keymaps/ahk_companion/keymap.c new file mode 100644 index 000000000000..e62f3b60951c --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/ahk_companion/keymap.c @@ -0,0 +1,136 @@ +#include QMK_KEYBOARD_H + +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) +static uint32_t rgb_preview_timer = 0; +#endif +extern rgblight_config_t rgblight_config; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + //Layer 0 - Base Layer (F13 to F24, and One Shot Layer 1,2,3 or Toggle Layer 4) + [0] = LAYOUT_ortho_4x4( + KC_F13, KC_F14, KC_F15, KC_F16, + KC_F17, KC_F18, KC_F19, KC_F20, + KC_F21, KC_F22, KC_F23, KC_F24, + OSL(1), OSL(2), OSL(3), TG(4) //Transparent to let you go between layers + ), + + [1] = LAYOUT_ortho_4x4( + LALT(KC_F13), LALT(KC_F14), LALT(KC_F15), LALT(KC_F16), + LALT(KC_F17), LALT(KC_F18), LALT(KC_F19), LALT(KC_F20), + LALT(KC_F21), LALT(KC_F22), LALT(KC_F23), LALT(KC_F24), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers + ), + + //Layer 2 - Shift + Function Key Layer + [2] = LAYOUT_ortho_4x4( + LSFT(KC_F13), LSFT(KC_F14), LSFT(KC_F15), LSFT(KC_F16), + LSFT(KC_F17), LSFT(KC_F18), LSFT(KC_F19), LSFT(KC_F20), + LSFT(KC_F21), LSFT(KC_F22), LSFT(KC_F23), LSFT(KC_F24), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers + ), + + //Layer 3 - Control + Function Key + [3] = LAYOUT_ortho_4x4( + LCTL(KC_F13), LCTL(KC_F14), LCTL(KC_F15), LCTL(KC_F16), + LCTL(KC_F17), LCTL(KC_F18), LCTL(KC_F19), LCTL(KC_F20), + LCTL(KC_F21), LCTL(KC_F22), LCTL(KC_F23), LCTL(KC_F24), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers + ), + + //Layer 4 - Multimedia + [4] = LAYOUT_ortho_4x4( + KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, + KC_NO, KC_NO, KC_NO, KC_MUTE, + KC_NO, RESET, EEP_RST, KC_VOLD, + TG(5), KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers + ), + + //Layer 5 - Keyboard Lights, Programming and Special Functions + [5] = LAYOUT_ortho_4x4( + RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, + RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, + RGB_TOG, EEP_RST, RESET, KC_LSHIFT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers + ), +}; + +const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,16,HSV_ORANGE} + ); +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,16,HSV_GREEN} + ); +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,16,HSV_RED} + ); +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,16,HSV_BLUE} + ); +const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,16,HSV_WHITE} + ); +const rgblight_segment_t PROGMEM my_layer5_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0,16,HSV_TEAL} + ); +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_layer0_layer, + my_layer1_layer, + my_layer2_layer, + my_layer3_layer, + my_layer4_layer, + my_layer5_layer + ); + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void post_process_record_user(uint16_t keycode, keyrecord_t *record) { + // Allow for a preview of changes when modifying RGB +# if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + switch (keycode) { + case RGB_TOG ... VLK_TOG: + for (uint8_t i = 0; i < RGBLIGHT_MAX_LAYERS; i++) { + rgblight_set_layer_state(i, false); + } + rgb_preview_timer = timer_read32(); + break; + } +# endif + return; +} + +//Set the appropriate layer color +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + rgblight_set_layer_state(4, layer_state_cmp(state, 4)); + rgblight_set_layer_state(5, layer_state_cmp(state, 5)); + return state; +} + +void keyboard_post_init_user(void) { + //Enable the LED layers + rgblight_layers = my_rgb_layers; + layer_state_set_user(layer_state); +} + +void matrix_scan_user(void) { +# if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + // Allow preview for + if (rgb_preview_timer && TIMER_DIFF_32(timer_read32(), rgb_preview_timer) > PREVIEW_TIMEOUT) { + rgb_preview_timer = 0; + default_layer_state_set_user(default_layer_state); + layer_state_set_user(layer_state); + led_update_user((led_t) host_keyboard_leds()); + } +# endif +} + +//EEPROM Reset Function +void eeconfig_init_user(void) { + rgblight_enable(); // Enable RGB by default + rgblight_sethsv_orange(); // Set it to orange by default +} + diff --git a/keyboards/1upkeyboards/super16/keymaps/ahk_companion/readme.md b/keyboards/1upkeyboards/super16/keymaps/ahk_companion/readme.md new file mode 100644 index 000000000000..7a0107c994cb --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/ahk_companion/readme.md @@ -0,0 +1,58 @@ +## AutoHotKey Companion ## + +### Overview ### +AutoHotKey Companion Keymap for 1upkeyboards Super16 is designed be a quick and easy way to get started with AutoHotKey and to provide a foundation for customizing your own macropad. I chose the Super16 because it provided an easy way (RGB) to identify what layer I was on with a quick glance or peripheral vision. The F13 to F24 keys were selected as they are rarely used so you won't run into conflicts with existing application shortcuts and AutoHotKey recognizes them without any issues. + +Same functionality can be accomplished with other similar applications on the host system like Keyboard Maestro, AutoIt, etc. + +* AutoHotKey(Windows) +* AutoIT (Windows) +* Keyboard Maestro(Mac) +* AutoKey(Linux) + +This keymap allows for a total of 48 Function/Macro keys that are accessible within 2 sequential key presses (or more when extended with your own code and additional layers) + +### Alternate Implementations ### +I chose to use QMK OSL (One Shot Layer) functionality to avoid having to hold a key while selecting the next key and to have my layers always go back to the default layer as the starting point. This also helps me avoid having to cognitively remember what layer I am on. + +If persistent behavior is prefered, OSL can be swapped for TG which will toggle the layer on/off with a key press instead of clearing the layer once the Function key is pressed. This is useful if a layer contains several keys that need to be used in sequence. I also added a OSL timeout of 3 seconds, so that if the key is not pressed within 3 seconds the layer will go back to default. This can be adjusted in the config.h file by increasing 3000 to a desired value: `#define ONESHOT_TIMEOUT 3000` + + + + +### Layers ### + +While the first 5 layers are accessible with only 1 key press at most, the 5th (less frequently used) layer is accessed by first going to the 4th layer, which makes the TG(5) button available on the bottom left. Space for additional 2 more layer toggles is available on the 2 middle buttons on the bottom row. Please refer to the layer diagrams. + + +* Layer 0 (Base Layer) - the default layer and functions like sending the F13 to F24 keys along with the bottom row to activate another 4 layers. + + ![Image of Base Layer ](https://i.imgur.com/0LhityX.png) + +* Layer 1 (Alt Layer) - Equivalent to Alt+Fxx key being pressed + + ![Image of Layer 1 ](https://i.imgur.com/ZblqLZt.png) + +* Layer 2 (Shift Layer) - Equivalent to Shift+Fxx key being pressed + + ![Image of Layer 2 ](https://i.imgur.com/ZQHwLC0.png) + +* Layer 3 (Control Layer) - Equivalent to Ctrl+Fxx key being pressed + + ![Image of Layer 3 ](https://i.imgur.com/JkM8bqV.png) + +* Layer 4 (Config Layer) - Layer for multimedia. You can replace the KC_TRNS on this layer in keymap.c to TG(x) to enable additional layers. + + ![Image of Layer 4 ](https://i.imgur.com/srDp5Lv.png) + +* Layer 5 (RGB Control/QMK) - RGB control layer and Quantum functions (Reset, EEPROM Reset, ) + + ![Image of Layer 5 ](https://i.imgur.com/Os3n8dx.png) + +### Host Configuration ### + +Once the keymap has been flashed to the Super16, you can download the accompanying AutoHotKey file or create your own and have it start automatically either via a Windows Task or another way. Using AutoHotKey allows adjustment of functionality of the buttons without the need to change your map and reflash the macropad every time. +Starting the AHK file can be done either by: +* Creating a Windows Task +* Adding the AHK to the startup folder +* Launch manually diff --git a/keyboards/1upkeyboards/super16/keymaps/ahk_companion/rules.mk b/keyboards/1upkeyboards/super16/keymaps/ahk_companion/rules.mk new file mode 100644 index 000000000000..b5bd51b3270e --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/ahk_companion/rules.mk @@ -0,0 +1,2 @@ +RGB_MATRIX_ENABLE = no +RGBLIGHT_ENABLE = yes From 92839f8a0961584bb695fc54fe157d4238a4cebe Mon Sep 17 00:00:00 2001 From: Mojitas <47667093+Mojitas@users.noreply.github.com> Date: Wed, 1 Jul 2020 22:29:06 +0200 Subject: [PATCH 129/154] Mojito-keymap (#9566) Co-authored-by: Joel Challis Co-authored-by: Ryan --- .../keebio/iris/keymaps/mojitas/config.h | 21 ++ .../keebio/iris/keymaps/mojitas/keymap.c | 217 ++++++++++++++++++ 2 files changed, 238 insertions(+) create mode 100644 keyboards/keebio/iris/keymaps/mojitas/config.h create mode 100644 keyboards/keebio/iris/keymaps/mojitas/keymap.c diff --git a/keyboards/keebio/iris/keymaps/mojitas/config.h b/keyboards/keebio/iris/keymaps/mojitas/config.h new file mode 100644 index 000000000000..149a54be7fa3 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/mojitas/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 EE_HANDS diff --git a/keyboards/keebio/iris/keymaps/mojitas/keymap.c b/keyboards/keebio/iris/keymaps/mojitas/keymap.c new file mode 100644 index 000000000000..548bffc65098 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/mojitas/keymap.c @@ -0,0 +1,217 @@ +#include QMK_KEYBOARD_H +#include "keymap_swedish.h" + +//Heavily modified keymap. Some features: +//Multiple layouts, I use dvorak as main. +//Nordic(swedish) signs +//Symbols, numpad, arrows/navigation reachable under the alpas via the layers +//Mirrored ctl, alt and shift to be able to use both hands when doing commands +//Gaming layer, qwerty with space on left half. + +enum layer_names { + _DVORAK, + _COLEMAK, + _QWERTY, + _WORKMAN, + _GAMING, + _NUMPAD, + _LOWER, + _RAISE, + _ADJUST +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + DVORAK, + COLEMAK, + WORKMAN, + GAMING, + NUMPAD, +}; + +#define KC_ KC_TRNS + +#define SE_YEN ALGR(SE_6) //isn't in the swedish_keymap.h +#define KC_CATDEL LCTL(LALT(KC_DEL)) // Ctrl alt del +#define KC_TSKMGR LCTL(S(KC_ESC)) // Ctrl shift esc +#define KC_NUMP TG(_NUMPAD) // Toggle layer NUMPAD for use in LAYOUT_kc +#define KC_Close RALT(KC_F4) // Alt F4 +#define KC_MEH1 MEH(KC_1) +#define KC_MEH2 MEH(KC_2) +#define KC_MEH3 MEH(KC_3) +#define KC_MEH4 MEH(KC_4) +#define KC_MEH5 MEH(KC_5) + +#define KC_LOWR MO(_LOWER) +#define KC_RASE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_DEL , KC_APP , KC_VOLD, KC_MUTE, KC_VOLU, KC_LGUI, KC_GRV , KC_MPRV, KC_MPLY, KC_MNXT, KC_DOWN, KC_ESC , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB , KC_Q , KC_W , KC_E , KC_ R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , SE_ARNG, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , SE_ODIA, SE_ADIA, + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_NUMP, KC_ENT , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + KC_LALT, KC_LOWR, KC_BSPC, KC_SPC , KC_RASE, KC_LALT + // `--------+--------+--------' `--------+--------+--------' + ), + + [_GAMING] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , 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_DEL , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , SE_ODIA, KC_RCTL, + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_NUMP, KC_ENT , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + KC_LALT, KC_LOWR, KC_BSPC, KC_SPC , KC_RASE, KC_LALT + // `--------+--------+--------' `--------+--------+--------' + ), + + [_DVORAK] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_DEL , KC_APP , KC_VOLD, KC_MUTE, KC_VOLU, KC_LGUI, KC_GRV , KC_MPRV, KC_MPLY, KC_MNXT, KC_DOWN, KC_ESC , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB , SE_ARNG, SE_ADIA, SE_ODIA, KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L ,KC_DEL , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_A , KC_O , KC_E , KC_U , KC_I , KC_D , KC_H , KC_T , KC_N , KC_S ,KC_RCTL , + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_DOT , KC_Q , KC_J , KC_K , KC_X , KC_NUMP, KC_ENT , KC_B , KC_M , KC_W , KC_V , KC_Z ,KC_RSFT , + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + KC_LALT, KC_LOWR, KC_BSPC, KC_SPC , KC_RASE, KC_LALT + // `--------+--------+--------' `--------+--------+--------' + ), + + [_COLEMAK] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_DEL , KC_APP , KC_VOLD, KC_MUTE, KC_VOLU, KC_LGUI, KC_GRV , KC_MPRV, KC_MPLY, KC_MNXT, KC_DOWN, KC_ESC , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , SE_ARNG, SE_ADIA, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , SE_ODIA, + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_NUMP, KC_ENT , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + KC_LALT, KC_LOWR, KC_BSPC, KC_SPC , KC_RASE, KC_LALT + // `--------+--------+--------' `--------+--------+--------' + ), + +[_WORKMAN] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_DEL , KC_APP , KC_VOLD, KC_MUTE, KC_VOLU, KC_LGUI, KC_GRV , KC_MPRV, KC_MPLY, KC_MNXT, KC_DOWN, KC_ESC , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB , KC_Q , KC_W , KC_R , KC_W KC_B , KC_J , KC_F , KC_U , KC_P , SE_ARNG, SE_ODIA, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , KC_RCTL, + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z , KC_X , KC_M , KC_C , KC_V , KC_NUMP, KC_ENT , KC_K , KC_L , SE_ADIA, KC_DOT , KC_SLSH, KC_RSFT, + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + KC_LALT, KC_LOWR, KC_BSPC, KC_SPC , KC_RASE, KC_LALT + // `--------+--------+--------' `--------+--------+--------' + ), + + [_NUMPAD] = 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_MEH1, KC_BTN2, KC_MS_U, KC_BTN1, KC_CATDEL, KC_PIPE, KC_P7 , KC_P8 , KC_P9 , KC_SLSH, , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , KC_MEH4, KC_MS_L, KC_MS_D, KC_MS_R, KC_TSKMGR, KC_COMM, KC_P4 , KC_P5 , KC_P6 , KC_MINS, , + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + , KC_MEH5, KC_ACL0, KC_ACL1, KC_ACL2, KC_MEH3, , KC_PENT , KC_DOT , KC_P1 , KC_P2 , KC_P3 , KC_P0 , , + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + KC_LALT , KC_LOWR, KC_BSPC, , KC_P0 , KC_NLCK + // `--------+--------+--------' `--------+--------+--------' + ), + + + [_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_F12 , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , KC_CAPS, KC_PGUP, KC_UP , KC_PGDN, KC_ESC, KC_RCBR, KC_EXLM, KC_ASTR, KC_LPRN, KC_UNDS, , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_RPRN, KC_QUES, SE_LBRC, SE_RBRC, KC_LABK, , + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + , KC_ENT , , , , KC_DEL , , , KC_RABK, SE_LABK, SE_LCBR, SE_RCBR, SE_RABK, , + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + , , , , , + // `--------+--------+--------' `--------+--------+--------' + ), + + [_RAISE] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + SE_TILD, KC_EXLM, KC_GRV , KC_EQL , KC_DLR , KC_PERC, SE_PND , SE_EURO , SE_YEN, SE_RCBR, KC_RPRN, , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , SE_PIPE , SE_AT , KC_HASH, KC_DQT , KC_PERC, KC_PIPE, KC_7 , KC_8 , KC_9 , KC_PMNS, KC_PSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , SE_BSLS, SE_TILD, SE_SLSH, KC_AMPR, KC_BSLS, KC_COMM, KC_4 , KC_5 , KC_6 , KC_PPLS, KC_PAST, + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + , KC_PIPE, SE_CURR, KC_PLUS, KC_CIRC, KC_TILD, , KC_PENT , KC_DOT , KC_1 , KC_2 , KC_3 , KC_0 , KC_PEQL, + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + , , KC_DEL , , , + // `--------+--------+--------' `--------+--------+--------' + ), + + [_ADJUST] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + GAMING , DVORAK, WORKMAN, COLEMAK, QWERTY , RESET, _______, _______, _______, _______, KC_PWR, RESET, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______,LGUI(KC_UP),_______,LALT(KC_F4), _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______,LGUI(KC_LEFT),LGUI(KC_DOWN),LGUI(KC_RGHT),_______, _______, DEBUG , RGB_HUD, RGB_SAD, RGB_VAD, BL_STEP, + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + _______, _______, _______, _______, _______, _______ + // `--------+--------+--------' `--------+--------+--------' + ) + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +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 DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + case NUMPAD: + if (record->event.pressed) { + set_single_persistent_default_layer(_NUMPAD); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + case GAMING: + if (record->event.pressed) { + set_single_persistent_default_layer(_GAMING); + } + return false; + } + return true; +} From d4dc2a577fbf6de948336288c6ca12359b48e50b Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Wed, 1 Jul 2020 23:32:21 +0300 Subject: [PATCH 130/154] Quefrency rev1: Fix default VIA layout options (#9618) Apparently VIA allocates bits in the layout options field from the lowest bit, but starting from the **last** option defined in the JSON file. So the default value 0x06 was actually trying to set the value `3` (`0b11`) for the second-to-last option ("Right Shift"), which had only 3 values defined, and the attempt to set an undefined option value caused the VIA app to hang with a black window. Fix the default layout options so that it works as intended (the "Macropad" and "65% Column" options are set). --- keyboards/keebio/quefrency/rev1/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keebio/quefrency/rev1/config.h b/keyboards/keebio/quefrency/rev1/config.h index 815a3e197172..e9379ab2ff5f 100644 --- a/keyboards/keebio/quefrency/rev1/config.h +++ b/keyboards/keebio/quefrency/rev1/config.h @@ -57,4 +57,4 @@ along with this program. If not, see . #define RGBLED_NUM 16 // Number of LEDs // Set 65% column (option 1) and Macro (option 2) on by default -#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x06 +#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x60 From 7c57efaaf9388e003422c8b2c15e4ecd8b10053c Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 2 Jul 2020 15:47:53 +1000 Subject: [PATCH 131/154] Fix layouts for FM2U (#9604) * Fix layouts for FM2U * Leave old layout names as deprecated aliases --- keyboards/botanicalkeyboards/fm2u/fm2u.h | 95 ++++++++++++++++--- keyboards/botanicalkeyboards/fm2u/info.json | 93 ++++++++++-------- .../fm2u/keymaps/default/keymap.c | 4 +- .../fm2u/keymaps/via/keymap.c | 11 +-- 4 files changed, 140 insertions(+), 63 deletions(-) diff --git a/keyboards/botanicalkeyboards/fm2u/fm2u.h b/keyboards/botanicalkeyboards/fm2u/fm2u.h index eb5564afc353..83168032590f 100644 --- a/keyboards/botanicalkeyboards/fm2u/fm2u.h +++ b/keyboards/botanicalkeyboards/fm2u/fm2u.h @@ -26,21 +26,88 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT_100u( \ +#define LAYOUT_1u( \ k00 \ -) \ -{ \ +) { \ { k00 } \ } -#define LAYOUT_125u LAYOUT_100u -#define LAYOUT_150u LAYOUT_100u -#define LAYOUT_175u LAYOUT_100u -#define LAYOUT_200u LAYOUT_100u -#define LAYOUT_225u LAYOUT_100u -#define LAYOUT_275u LAYOUT_100u -#define LAYOUT_300u LAYOUT_100u -#define LAYOUT_600u LAYOUT_100u -#define LAYOUT_625u LAYOUT_100u -#define LAYOUT_700u LAYOUT_100u -#define LAYOUT_iso LAYOUT_100u +#define LAYOUT_1u25( \ + k00 \ +) { \ + { k00 } \ +} + +#define LAYOUT_1u5( \ + k00 \ +) { \ + { k00 } \ +} + +#define LAYOUT_1u75( \ + k00 \ +) { \ + { k00 } \ +} + +#define LAYOUT_2u( \ + k00 \ +) { \ + { k00 } \ +} + +#define LAYOUT_2u25( \ + k00 \ +) { \ + { k00 } \ +} + +#define LAYOUT_2u75( \ + k00 \ +) { \ + { k00 } \ +} + +#define LAYOUT_3u( \ + k00 \ +) { \ + { k00 } \ +} + +#define LAYOUT_6u( \ + k00 \ +) { \ + { k00 } \ +} + +#define LAYOUT_6u25( \ + k00 \ +) { \ + { k00 } \ +} + +#define LAYOUT_7u( \ + k00 \ +) { \ + { k00 } \ +} + +#define LAYOUT_isoenter( \ + k00 \ +) { \ + { k00 } \ +} + +// Backward compatibility TODO: remove these +#define LAYOUT_100u LAYOUT_1u +#define LAYOUT_125u LAYOUT_1u25 +#define LAYOUT_150u LAYOUT_1u5 +#define LAYOUT_175u LAYOUT_1u75 +#define LAYOUT_200u LAYOUT_2u +#define LAYOUT_225u LAYOUT_2u25 +#define LAYOUT_275u LAYOUT_2u75 +#define LAYOUT_300u LAYOUT_3u +#define LAYOUT_600u LAYOUT_6u +#define LAYOUT_625u LAYOUT_6u25 +#define LAYOUT_700u LAYOUT_7u +#define LAYOUT_iso LAYOUT_isoenter diff --git a/keyboards/botanicalkeyboards/fm2u/info.json b/keyboards/botanicalkeyboards/fm2u/info.json index 6831dad94452..1798e19435d5 100644 --- a/keyboards/botanicalkeyboards/fm2u/info.json +++ b/keyboards/botanicalkeyboards/fm2u/info.json @@ -1,56 +1,69 @@ { - "keyboard_name": "fm2u", - "url": "", - "maintainer": "qmk", - "width": 1, - "height": 1, + "keyboard_name": "Botanical Keyboards FM2U", + "url": "", + "maintainer": "qmk", + "width": 1, + "height": 1, "layouts": { - "LAYOUT_100u": { - "layout": [{"x":0, "y":0}] + "LAYOUT_1u": { + "layout": [ + {"x": 0, "y": 0} + ] }, - - "LAYOUT_125u": { - "layout": [{"x":0, "y":0, "w":1.25}] + "LAYOUT_1u25": { + "layout": [ + {"x": 0, "y": 0, "w": 1.25} + ] }, - - "LAYOUT_150u": { - "layout": [{"x":0, "y":0, "w":1.50}] + "LAYOUT_1u5": { + "layout": [ + {"x": 0, "y": 0, "w": 1.50} + ] }, - - "LAYOUT_175u": { - "layout": [{"x":0, "y":0, "w":1.75}] + "LAYOUT_1u75": { + "layout": [ + {"x": 0, "y": 0, "w": 1.75} + ] }, - - "LAYOUT_200u": { - "layout": [{"x":0, "y":0, "w":2.00}] + "LAYOUT_2u": { + "layout": [ + {"x": 0, "y": 0, "w": 2} + ] }, - - "LAYOUT_225u": { - "layout": [{"x":0, "y":0, "w":2.25}] + "LAYOUT_2u25": { + "layout": [ + {"x": 0, "y": 0, "w": 2.25} + ] }, - - "LAYOUT_275u": { - "layout": [{"x":0, "y":0, "w":2.75}] + "LAYOUT_2u75": { + "layout": [ + {"x": 0, "y": 0, "w": 2.75} + ] }, - - "LAYOUT_300u": { - "layout": [{"x":0, "y":0, "w":3.00}] + "LAYOUT_3u": { + "layout": [ + {"x": 0, "y": 0, "w": 3} + ] }, - - "LAYOUT_600u": { - "layout": [{"x":0, "y":0, "w":6.00}] + "LAYOUT_6u": { + "layout": [ + {"x": 0, "y": 0, "w": 6} + ] }, - - "LAYOUT_625u": { - "layout": [{"x":0, "y":0, "w":6.25}] + "LAYOUT_6u25": { + "layout": [ + {"x": 0, "y": 0, "w": 6.25} + ] }, - - "LAYOUT_700u": { - "layout": [{"x":0, "y":0, "w":7.00}] + "LAYOUT_7u": { + "layout": [ + {"x": 0, "y": 0, "w": 7} + ] }, - - "LAYOUT_iso": { - "layout": [{"x":0.25, "y":0, "w":1.25, "h":2}] + "LAYOUT_isoenter": { + "layout": [ + {"x": 0.25, "y": 0, "w": 1.25, "h": 2} + ] } } } diff --git a/keyboards/botanicalkeyboards/fm2u/keymaps/default/keymap.c b/keyboards/botanicalkeyboards/fm2u/keymaps/default/keymap.c index afefa35334bc..b1c7eb9d3619 100644 --- a/keyboards/botanicalkeyboards/fm2u/keymaps/default/keymap.c +++ b/keyboards/botanicalkeyboards/fm2u/keymaps/default/keymap.c @@ -15,11 +15,9 @@ */ #include QMK_KEYBOARD_H - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_100u( + [0] = LAYOUT_2u( KC_B ) }; - diff --git a/keyboards/botanicalkeyboards/fm2u/keymaps/via/keymap.c b/keyboards/botanicalkeyboards/fm2u/keymaps/via/keymap.c index 01b00f187815..2adc87a13bef 100644 --- a/keyboards/botanicalkeyboards/fm2u/keymaps/via/keymap.c +++ b/keyboards/botanicalkeyboards/fm2u/keymaps/via/keymap.c @@ -18,20 +18,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_100u( + [0] = LAYOUT_2u( KC_B ), - [1] = LAYOUT_100u( + [1] = LAYOUT_2u( KC_TRNS ), - [2] = LAYOUT_100u( + [2] = LAYOUT_2u( KC_TRNS ), - [3] = LAYOUT_100u( + [3] = LAYOUT_2u( KC_TRNS - ), + ) }; - From bd4c66a26b79a97c116a7dfa2b9351312c544dc2 Mon Sep 17 00:00:00 2001 From: Maarten Dekkers Date: Thu, 2 Jul 2020 10:19:17 +0200 Subject: [PATCH 132/154] Eon65 (#9331) Co-authored-by: Maarten Dekkers --- keyboards/maartenwut/eon65/config.h | 220 ++++++++++ keyboards/maartenwut/eon65/eon65.c | 16 + keyboards/maartenwut/eon65/eon65.h | 103 +++++ keyboards/maartenwut/eon65/info.json | 392 ++++++++++++++++++ .../maartenwut/eon65/keymaps/default/keymap.c | 32 ++ .../maartenwut/eon65/keymaps/via/keymap.c | 43 ++ .../maartenwut/eon65/keymaps/via/rules.mk | 2 + keyboards/maartenwut/eon65/readme.md | 13 + keyboards/maartenwut/eon65/rules.mk | 34 ++ 9 files changed, 855 insertions(+) create mode 100644 keyboards/maartenwut/eon65/config.h create mode 100644 keyboards/maartenwut/eon65/eon65.c create mode 100644 keyboards/maartenwut/eon65/eon65.h create mode 100644 keyboards/maartenwut/eon65/info.json create mode 100644 keyboards/maartenwut/eon65/keymaps/default/keymap.c create mode 100644 keyboards/maartenwut/eon65/keymaps/via/keymap.c create mode 100644 keyboards/maartenwut/eon65/keymaps/via/rules.mk create mode 100644 keyboards/maartenwut/eon65/readme.md create mode 100644 keyboards/maartenwut/eon65/rules.mk diff --git a/keyboards/maartenwut/eon65/config.h b/keyboards/maartenwut/eon65/config.h new file mode 100644 index 000000000000..bfb23569b400 --- /dev/null +++ b/keyboards/maartenwut/eon65/config.h @@ -0,0 +1,220 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4705 +#define PRODUCT_ID 0xAEB4 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Maartenwut +#define PRODUCT Eon65 +#define DESCRIPTION A 65% PCB + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * 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) + * +*/ +#define MATRIX_ROW_PINS {D3,D5,B1,B2,B3} +#define MATRIX_COL_PINS {B0,D2,D4,D6,D7,B4,B5,B6,C6,C7,F7,F6,F5,F4,F1,F0} +#define UNUSED_PINS {B7,D0,D1} + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + #define RGB_DI_PIN E6 + #ifdef RGB_DI_PIN + #define RGBLED_NUM 10 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose 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 +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 + #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* 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 1 + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/maartenwut/eon65/eon65.c b/keyboards/maartenwut/eon65/eon65.c new file mode 100644 index 000000000000..3571509dc9d0 --- /dev/null +++ b/keyboards/maartenwut/eon65/eon65.c @@ -0,0 +1,16 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "eon65.h" diff --git a/keyboards/maartenwut/eon65/eon65.h b/keyboards/maartenwut/eon65/eon65.h new file mode 100644 index 000000000000..0593df27f774 --- /dev/null +++ b/keyboards/maartenwut/eon65/eon65.h @@ -0,0 +1,103 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0f, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k49, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, XXX }, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e, XXX } \ +} + +#define LAYOUT_65_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k49, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, k2e, XXX }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, XXX }, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e, XXX } \ +} + +#define LAYOUT_65_ansi_blocker( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k49, k4a, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, k2e, XXX }, \ + { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, XXX }, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, k49, k4a, XXX, k4c, k4d, k4e, XXX } \ +} + +#define LAYOUT_65_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k49, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, XXX }, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e, XXX } \ +} + +#define LAYOUT_65_iso_blocker( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k49, k4a, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, XXX }, \ + { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, k49, k4a, XXX, k4c, k4d, k4e, XXX } \ +} diff --git a/keyboards/maartenwut/eon65/info.json b/keyboards/maartenwut/eon65/info.json new file mode 100644 index 000000000000..1a9f7495762c --- /dev/null +++ b/keyboards/maartenwut/eon65/info.json @@ -0,0 +1,392 @@ +{ + "keyboard_name": "Eon65", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "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":2, "w":1.25}, + {"x":15, "y":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":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"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":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"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":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "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":15, "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":15, "y":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":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "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":15, "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":15, "y":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":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/keyboards/maartenwut/eon65/keymaps/default/keymap.c b/keyboards/maartenwut/eon65/keymaps/default/keymap.c new file mode 100644 index 000000000000..e5ef976e8246 --- /dev/null +++ b/keyboards/maartenwut/eon65/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_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_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_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), +[1] = LAYOUT_all( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; \ No newline at end of file diff --git a/keyboards/maartenwut/eon65/keymaps/via/keymap.c b/keyboards/maartenwut/eon65/keymaps/via/keymap.c new file mode 100644 index 000000000000..52a1f94203c5 --- /dev/null +++ b/keyboards/maartenwut/eon65/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_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_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_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), +[1] = LAYOUT_all( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +[2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +[3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; \ No newline at end of file diff --git a/keyboards/maartenwut/eon65/keymaps/via/rules.mk b/keyboards/maartenwut/eon65/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/maartenwut/eon65/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/maartenwut/eon65/readme.md b/keyboards/maartenwut/eon65/readme.md new file mode 100644 index 000000000000..e77ad6826497 --- /dev/null +++ b/keyboards/maartenwut/eon65/readme.md @@ -0,0 +1,13 @@ +# Eon65 + +## Support +* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) +* Hardware Supported: Eon65 +* Hardware Availability: None + +## Build +Make example for this keyboard (after setting up your build environment): + + make maartenwut/eon65: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/maartenwut/eon65/rules.mk b/keyboards/maartenwut/eon65/rules.mk new file mode 100644 index 000000000000..e34ef7475a2b --- /dev/null +++ b/keyboards/maartenwut/eon65/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +LAYOUTS = 65_ansi 65_ansi_blocker 65_iso 65_iso_blocker From 0e76b2766181b2c6b155b9d5bc0143233cf5cdf1 Mon Sep 17 00:00:00 2001 From: Maarten Dekkers Date: Thu, 2 Jul 2020 17:02:39 +0200 Subject: [PATCH 133/154] Add Eon95 (#9334) Co-authored-by: Drashna Jaelre Co-authored-by: Maarten Dekkers --- keyboards/maartenwut/eon95/config.h | 222 ++++++++++++ keyboards/maartenwut/eon95/eon95.c | 45 +++ keyboards/maartenwut/eon95/eon95.h | 96 +++++ keyboards/maartenwut/eon95/info.json | 338 ++++++++++++++++++ .../maartenwut/eon95/keymaps/default/keymap.c | 34 ++ .../maartenwut/eon95/keymaps/via/keymap.c | 40 +++ .../maartenwut/eon95/keymaps/via/rules.mk | 2 + keyboards/maartenwut/eon95/readme.md | 13 + keyboards/maartenwut/eon95/rules.mk | 32 ++ 9 files changed, 822 insertions(+) create mode 100644 keyboards/maartenwut/eon95/config.h create mode 100644 keyboards/maartenwut/eon95/eon95.c create mode 100644 keyboards/maartenwut/eon95/eon95.h create mode 100644 keyboards/maartenwut/eon95/info.json create mode 100644 keyboards/maartenwut/eon95/keymaps/default/keymap.c create mode 100644 keyboards/maartenwut/eon95/keymaps/via/keymap.c create mode 100644 keyboards/maartenwut/eon95/keymaps/via/rules.mk create mode 100644 keyboards/maartenwut/eon95/readme.md create mode 100644 keyboards/maartenwut/eon95/rules.mk diff --git a/keyboards/maartenwut/eon95/config.h b/keyboards/maartenwut/eon95/config.h new file mode 100644 index 000000000000..d012d47c91bc --- /dev/null +++ b/keyboards/maartenwut/eon95/config.h @@ -0,0 +1,222 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4705 +#define PRODUCT_ID 0x8A18 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Maartenwut +#define PRODUCT Eon95 +#define DESCRIPTION A 95% PCB + +/* key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 10 + +/* + * 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) + * +*/ +#define MATRIX_ROW_PINS {D1,D0,D3,D2,D6,D4,D7,B4,B5,B6,C6,C7} +#define MATRIX_COL_PINS {E6,F0,F1,F4,F5,F6,F7,B3,B2,B1} +#define UNUSED_PINS {} + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN D0 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 12 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose 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 +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* 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 1 + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/maartenwut/eon95/eon95.c b/keyboards/maartenwut/eon95/eon95.c new file mode 100644 index 000000000000..b57cb30000cf --- /dev/null +++ b/keyboards/maartenwut/eon95/eon95.c @@ -0,0 +1,45 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "eon95.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + matrix_init_user(); + led_init_ports(); +} + +void led_init_ports(void) { + // * Set our LED pins as output and high + setPinOutput(D5); + writePinHigh(D5); + + setPinOutput(B7); + writePinHigh(B7); + + setPinOutput(B0); + writePinHigh(B0); +} + +bool led_update_kb(led_t led_state) { + if(led_update_user(led_state)) { + writePin(D5, !led_state.caps_lock); + writePin(B7, !led_state.num_lock); + writePin(B0, !led_state.scroll_lock); + } + + return true; +} diff --git a/keyboards/maartenwut/eon95/eon95.h b/keyboards/maartenwut/eon95/eon95.h new file mode 100644 index 000000000000..7f7c84356946 --- /dev/null +++ b/keyboards/maartenwut/eon95/eon95.h @@ -0,0 +1,96 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_all( \ + k00, k10, k01, k11, k02, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17, k08, k18, k09, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, k37, k28, k38, k29, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k47, k57, k48, k58, k49, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, k77, k68, k78, k69, \ + k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k87, k97, k88, k98, k89, \ + ka0, kb0, ka1, kb3, ka5, kb5, ka6, kb6, ka7, kb7, ka8, kb8 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ + { k10, k11, XXX, k13, k14, k15, k16, k17, k18, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, XXX }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49 }, \ + { k50, k51, k52, k53, k54, k55, XXX, k57, k58, XXX }, \ + { k60, k61, k62, k63, k64, k65, k66, XXX, k68, k69 }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, XXX }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89 }, \ + { k90, k91, k92, k93, k94, k95, XXX, k97, k98, XXX }, \ + { ka0, ka1, XXX, XXX, XXX, ka5, ka6, ka7, ka8, XXX }, \ + { kb0, XXX, XXX, kb3, XXX, kb5, kb6, kb7, kb8, XXX } \ +} + +#define LAYOUT_ansi( \ + k00, k10, k01, k11, k02, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17, k08, k18, k09, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k27, k37, k28, k38, k29, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k47, k57, k48, k58, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k76, k77, k68, k78, k69, \ + k80, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k87, k97, k88, k98, k89, \ + ka0, kb0, ka1, kb3, ka5, kb5, ka6, kb6, ka7, kb7, ka8, kb8 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ + { k10, k11, XXX, k13, k14, k15, k16, k17, k18, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ + { k30, k31, k32, k33, k34, k35, XXX, k37, k38, XXX }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, XXX }, \ + { k50, k51, k52, k53, k54, k55, XXX, k57, k58, XXX }, \ + { k60, k61, k62, k63, k64, k65, XXX, XXX, k68, k69 }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, XXX }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89 }, \ + { XXX, k91, k92, k93, k94, k95, XXX, k97, k98, XXX }, \ + { ka0, ka1, XXX, XXX, XXX, ka5, ka6, ka7, ka8, XXX }, \ + { kb0, XXX, XXX, kb3, XXX, kb5, kb6, kb7, kb8, XXX } \ +} +#define LAYOUT_iso( \ + k00, k10, k01, k11, k02, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17, k08, k18, k09, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k27, k37, k28, k38, k29, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k57, k48, k58, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, k77, k68, k78, k69, \ + k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k87, k97, k88, k98, k89, \ + ka0, kb0, ka1, kb3, ka5, kb5, ka6, kb6, ka7, kb7, ka8, kb8 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ + { k10, k11, XXX, k13, k14, k15, k16, k17, k18, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ + { k30, k31, k32, k33, k34, k35, XXX, k37, k38, XXX }, \ + { k40, k41, k42, k43, k44, k45, k46, XXX, k48, XXX }, \ + { k50, k51, k52, k53, k54, k55, XXX, k57, k58, XXX }, \ + { k60, k61, k62, k63, k64, k65, k66, XXX, k68, k69 }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, XXX }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89 }, \ + { k90, k91, k92, k93, k94, k95, XXX, k97, k98, XXX }, \ + { ka0, ka1, XXX, XXX, XXX, ka5, ka6, ka7, ka8, XXX }, \ + { kb0, XXX, XXX, kb3, XXX, kb5, kb6, kb7, kb8, XXX } \ +} diff --git a/keyboards/maartenwut/eon95/info.json b/keyboards/maartenwut/eon95/info.json new file mode 100644 index 000000000000..740c9bb0cbe5 --- /dev/null +++ b/keyboards/maartenwut/eon95/info.json @@ -0,0 +1,338 @@ +{ + "keyboard_name": "Eon95", + "url": "", + "maintainer": "qmk", + "width": 19.5, + "height": 6.5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1.5, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.75, "y":0}, + {"x":6.75, "y":0}, + {"x":7.75, "y":0}, + {"x":8.75, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14.5, "y":0}, + {"x":15.5, "y":0}, + {"x":16.5, "y":0}, + {"x":17.5, "y":0}, + {"x":18.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.5, "y":1.25}, + {"x":16.5, "y":1.25}, + {"x":17.5, "y":1.25}, + {"x":18.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.5, "y":2.25}, + {"x":16.5, "y":2.25}, + {"x":17.5, "y":2.25}, + {"x":18.5, "y":2.25}, + + {"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":3.25, "w":1.25}, + {"x":15.5, "y":3.25}, + {"x":16.5, "y":3.25}, + {"x":17.5, "y":3.25}, + {"x":18.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":1.75}, + {"x":14.25, "y":4.5}, + {"x":15.5, "y":4.25}, + {"x":16.5, "y":4.25}, + {"x":17.5, "y":4.25}, + {"x":18.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}, + {"x":11, "y":5.25}, + {"x":12, "y":5.25}, + {"x":13.25, "y":5.5}, + {"x":14.25, "y":5.5}, + {"x":15.25, "y":5.5}, + {"x":16.5, "y":5.25}, + {"x":17.5, "y":5.25} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":1.5, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.75, "y":0}, + {"x":6.75, "y":0}, + {"x":7.75, "y":0}, + {"x":8.75, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14.5, "y":0}, + {"x":15.5, "y":0}, + {"x":16.5, "y":0}, + {"x":17.5, "y":0}, + {"x":18.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.5, "y":1.25}, + {"x":16.5, "y":1.25}, + {"x":17.5, "y":1.25}, + {"x":18.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.5, "y":2.25}, + {"x":16.5, "y":2.25}, + {"x":17.5, "y":2.25}, + {"x":18.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":15.5, "y":3.25}, + {"x":16.5, "y":3.25}, + {"x":17.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":1.75}, + {"x":14.25, "y":4.5}, + {"x":15.5, "y":4.25}, + {"x":16.5, "y":4.25}, + {"x":17.5, "y":4.25}, + {"x":18.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}, + {"x":11, "y":5.25}, + {"x":12, "y":5.25}, + {"x":13.25, "y":5.5}, + {"x":14.25, "y":5.5}, + {"x":15.25, "y":5.5}, + {"x":16.5, "y":5.25}, + {"x":17.5, "y":5.25} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"x":0, "y":0}, + {"x":1.5, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.75, "y":0}, + {"x":6.75, "y":0}, + {"x":7.75, "y":0}, + {"x":8.75, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14.5, "y":0}, + {"x":15.5, "y":0}, + {"x":16.5, "y":0}, + {"x":17.5, "y":0}, + {"x":18.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.5, "y":1.25}, + {"x":16.5, "y":1.25}, + {"x":17.5, "y":1.25}, + {"x":18.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.5, "y":2.25}, + {"x":16.5, "y":2.25}, + {"x":17.5, "y":2.25}, + {"x":18.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":15.5, "y":3.25}, + {"x":16.5, "y":3.25}, + {"x":17.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":1.75}, + {"x":14.25, "y":4.5}, + {"x":15.5, "y":4.25}, + {"x":16.5, "y":4.25}, + {"x":17.5, "y":4.25}, + {"x":18.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}, + {"x":11, "y":5.25}, + {"x":12, "y":5.25}, + {"x":13.25, "y":5.5}, + {"x":14.25, "y":5.5}, + {"x":15.25, "y":5.5}, + {"x":16.5, "y":5.25}, + {"x":17.5, "y":5.25} + ] + } + } +} diff --git a/keyboards/maartenwut/eon95/keymaps/default/keymap.c b/keyboards/maartenwut/eon95/keymaps/default/keymap.c new file mode 100644 index 000000000000..0976b53c1e40 --- /dev/null +++ b/keyboards/maartenwut/eon95/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_INS, KC_DEL, KC_PSCR, KC_SLCK, 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_BSLS, KC_BSPC, KC_NLCK, 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_NUHS, KC_ENT, 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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), +[1] = LAYOUT_all( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; \ No newline at end of file diff --git a/keyboards/maartenwut/eon95/keymaps/via/keymap.c b/keyboards/maartenwut/eon95/keymaps/via/keymap.c new file mode 100644 index 000000000000..12c6e2eedf32 --- /dev/null +++ b/keyboards/maartenwut/eon95/keymaps/via/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2019 Maarten Dekkers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_INS, KC_DEL, KC_PSCR, KC_SLCK, 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_BSLS, KC_BSPC, KC_NLCK, 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_NUHS, KC_ENT, 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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), +[1] = LAYOUT_all( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +[2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; \ No newline at end of file diff --git a/keyboards/maartenwut/eon95/keymaps/via/rules.mk b/keyboards/maartenwut/eon95/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/maartenwut/eon95/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/maartenwut/eon95/readme.md b/keyboards/maartenwut/eon95/readme.md new file mode 100644 index 000000000000..db6bac843a3b --- /dev/null +++ b/keyboards/maartenwut/eon95/readme.md @@ -0,0 +1,13 @@ +# Eon95 + +## Support +* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) +* Hardware Supported: Eon95 +* Hardware Availability: None + +## Build +Make example for this keyboard (after setting up your build environment): + + make maartenwut/eon95: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/maartenwut/eon95/rules.mk b/keyboards/maartenwut/eon95/rules.mk new file mode 100644 index 000000000000..264e0ea67d2d --- /dev/null +++ b/keyboards/maartenwut/eon95/rules.mk @@ -0,0 +1,32 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From 97c18bfbc41c53a7ae7c6d12a676e919fe376153 Mon Sep 17 00:00:00 2001 From: akscanb Date: Thu, 2 Jul 2020 08:09:23 -0700 Subject: [PATCH 134/154] Arisu keymapping, and corresponding via keymap (#9560) Co-authored-by: Ryan Co-authored-by: Erovia Co-authored-by: Will Co-authored-by: Andrew Koh --- keyboards/arisu/arisu.c | 16 ++ keyboards/arisu/arisu.h | 42 +++++ keyboards/arisu/config.h | 208 ++++++++++++++++++++++ keyboards/arisu/keymaps/default/keymap.c | 34 ++++ keyboards/arisu/keymaps/default/readme.md | 1 + keyboards/arisu/keymaps/fate/keymap.c | 67 +++++++ keyboards/arisu/keymaps/fate/readme.md | 1 + keyboards/arisu/keymaps/fate/rules.mk | 1 + keyboards/arisu/keymaps/kresnak/keymap.c | 39 ++++ keyboards/arisu/keymaps/via/keymap.c | 49 +++++ keyboards/arisu/keymaps/via/rules.mk | 1 + keyboards/arisu/readme.md | 17 ++ keyboards/arisu/rules.mk | 24 +++ 13 files changed, 500 insertions(+) create mode 100644 keyboards/arisu/arisu.c create mode 100644 keyboards/arisu/arisu.h create mode 100644 keyboards/arisu/config.h create mode 100644 keyboards/arisu/keymaps/default/keymap.c create mode 100644 keyboards/arisu/keymaps/default/readme.md create mode 100644 keyboards/arisu/keymaps/fate/keymap.c create mode 100644 keyboards/arisu/keymaps/fate/readme.md create mode 100644 keyboards/arisu/keymaps/fate/rules.mk create mode 100644 keyboards/arisu/keymaps/kresnak/keymap.c create mode 100644 keyboards/arisu/keymaps/via/keymap.c create mode 100644 keyboards/arisu/keymaps/via/rules.mk create mode 100644 keyboards/arisu/readme.md create mode 100644 keyboards/arisu/rules.mk diff --git a/keyboards/arisu/arisu.c b/keyboards/arisu/arisu.c new file mode 100644 index 000000000000..443b67e9bf64 --- /dev/null +++ b/keyboards/arisu/arisu.c @@ -0,0 +1,16 @@ +/* Copyright 2019 Fate + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "arisu.h" diff --git a/keyboards/arisu/arisu.h b/keyboards/arisu/arisu.h new file mode 100644 index 000000000000..1d123502ad4a --- /dev/null +++ b/keyboards/arisu/arisu.h @@ -0,0 +1,42 @@ +/* Copyright 2019 Fate + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define XXX KC_NO +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k1E, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k3E, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, \ + k40, k42, k44, k45, k47, k49, k4C, k4D, k4E \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, XXX, k2E }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \ + { k40, XXX, k42, XXX, k44, k45, XXX, k47, XXX, k49, XXX, XXX, k4C, k4D, k4E } \ +} diff --git a/keyboards/arisu/config.h b/keyboards/arisu/config.h new file mode 100644 index 000000000000..d23cf9102bf0 --- /dev/null +++ b/keyboards/arisu/config.h @@ -0,0 +1,208 @@ +/* +Copyright 2019 Fate + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFA7E +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Fate +#define PRODUCT arisu +#define DESCRIPTION alice counterpart keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * 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) + * +*/ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B7, B5, B4, D7, D6, B3 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose 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 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * 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 NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* 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 1 diff --git a/keyboards/arisu/keymaps/default/keymap.c b/keyboards/arisu/keymaps/default/keymap.c new file mode 100644 index 000000000000..2563a36893b2 --- /dev/null +++ b/keyboards/arisu/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2019 Fate + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_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(1), + 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, KC_LGUI, KC_SPC, KC_RALT, 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, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/arisu/keymaps/default/readme.md b/keyboards/arisu/keymaps/default/readme.md new file mode 100644 index 000000000000..f6d782cd996e --- /dev/null +++ b/keyboards/arisu/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for arisu \ No newline at end of file diff --git a/keyboards/arisu/keymaps/fate/keymap.c b/keyboards/arisu/keymaps/fate/keymap.c new file mode 100644 index 000000000000..f737b4d19a3b --- /dev/null +++ b/keyboards/arisu/keymaps/fate/keymap.c @@ -0,0 +1,67 @@ +/* Copyright 2019 Fate + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 arisu_layers { + _QWERTY, + _FN, + _ADJUST +}; + +// Tap Dance Declarations +enum { + TD_LALT_LGUI = 0, + TD_RALT_RGUI +}; + +#define FN MO(_FN) +#define ADJUST MO(_ADJUST) +#define LALT_LG TD(TD_LALT_LGUI) +#define RALT_RG TD(TD_RALT_RGUI) + +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_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_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, ADJUST, + 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, LALT_LG, KC_SPC, FN, KC_SPC, RALT_RG, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, 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_APP, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_ADJUST] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, + _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; + +// Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for L-Alt, twice for L-GUI + [TD_LALT_LGUI] = ACTION_TAP_DANCE_DOUBLE(KC_LALT, KC_LGUI), + // Tap once for R-Alt, twice for R-GUI + [TD_RALT_RGUI] = ACTION_TAP_DANCE_DOUBLE(KC_RALT, KC_RGUI) +}; diff --git a/keyboards/arisu/keymaps/fate/readme.md b/keyboards/arisu/keymaps/fate/readme.md new file mode 100644 index 000000000000..c1239a09ffc1 --- /dev/null +++ b/keyboards/arisu/keymaps/fate/readme.md @@ -0,0 +1 @@ +# The keymap of arisu's creator \ No newline at end of file diff --git a/keyboards/arisu/keymaps/fate/rules.mk b/keyboards/arisu/keymaps/fate/rules.mk new file mode 100644 index 000000000000..e5ddcae8d927 --- /dev/null +++ b/keyboards/arisu/keymaps/fate/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/arisu/keymaps/kresnak/keymap.c b/keyboards/arisu/keymaps/kresnak/keymap.c new file mode 100644 index 000000000000..0a4b88367da7 --- /dev/null +++ b/keyboards/arisu/keymaps/kresnak/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2019 Fate + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 the keycodes used by our macros in process_record_user + +#define FN MO(1) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* 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_GRV, KC_BSPC, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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, FN, + 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, KC_LGUI, KC_SPC, KC_RALT, 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_DEL, KC_HOME, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, KC_END, + _______, KC_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, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/arisu/keymaps/via/keymap.c b/keyboards/arisu/keymaps/via/keymap.c new file mode 100644 index 000000000000..3549a1bdea4d --- /dev/null +++ b/keyboards/arisu/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2019 Fate + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_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(1), + 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, KC_LGUI, KC_SPC, KC_RALT, 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, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/arisu/keymaps/via/rules.mk b/keyboards/arisu/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/arisu/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/arisu/readme.md b/keyboards/arisu/readme.md new file mode 100644 index 000000000000..f6eab67158ce --- /dev/null +++ b/keyboards/arisu/readme.md @@ -0,0 +1,17 @@ +# arisu + +![Arisu](https://i.imgur.com/knt518E.jpg) +![Arisu-top](https://i.imgur.com/wsqCuEu.jpg) +![アリス](https://i.redd.it/n80mvj5v7ji21.jpg) + +A keyboard inspired by Lyn's EM7 and TGR Alice. + +* Keyboard Maintainer: [Fate](https://github.com/FateNozomi) +* Hardware Supported: Arisu +* Hardware Availability: [PCB](https://github.com/FateNozomi/arisu-pcb) + [Case](https://github.com/FateNozomi/arisu-case) + +Make example for this keyboard (after setting up your build environment): + + make arisu: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/arisu/rules.mk b/keyboards/arisu/rules.mk new file mode 100644 index 000000000000..de04a1164a41 --- /dev/null +++ b/keyboards/arisu/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +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 +# 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 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 = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From e1cdfdc0e7b177ea8b4f3626959dabf316dd3b0c Mon Sep 17 00:00:00 2001 From: Jacky Tian Date: Thu, 2 Jul 2020 08:33:57 -0700 Subject: [PATCH 135/154] Add xjtian keymap for Planck (#9502) --- keyboards/planck/keymaps/xjtian/config.h | 7 ++ keyboards/planck/keymaps/xjtian/keymap.c | 111 ++++++++++++++++++++++ keyboards/planck/keymaps/xjtian/readme.md | 12 +++ 3 files changed, 130 insertions(+) create mode 100644 keyboards/planck/keymaps/xjtian/config.h create mode 100644 keyboards/planck/keymaps/xjtian/keymap.c create mode 100644 keyboards/planck/keymaps/xjtian/readme.md diff --git a/keyboards/planck/keymaps/xjtian/config.h b/keyboards/planck/keymaps/xjtian/config.h new file mode 100644 index 000000000000..b417c13c68e6 --- /dev/null +++ b/keyboards/planck/keymaps/xjtian/config.h @@ -0,0 +1,7 @@ +#pragma once + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) +#endif + +#define PERMISSIVE_HOLD diff --git a/keyboards/planck/keymaps/xjtian/keymap.c b/keyboards/planck/keymaps/xjtian/keymap.c new file mode 100644 index 000000000000..f3287738d34f --- /dev/null +++ b/keyboards/planck/keymaps/xjtian/keymap.c @@ -0,0 +1,111 @@ +#include QMK_KEYBOARD_H + + +enum planck_layers { + _QWERTY, + _NUM, + _SYMBOL, + _FUNCTION, + _ADJUST +}; + +#define MON MO(_NUM) +#define MOS MO(_SYMBOL) +#define MOF MO(_FUNCTION) +#define MOA MO(_ADJUST) +#define LTS LT(_SYMBOL, KC_ESC) +#define LTN LT(_NUM, KC_ENT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,---------------------------------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |-------+------+------+-------+----------+---------+-------+----------+-------+--------+------+-----------| + * |Esc/Ctl| A | S | D | F | G | H | J | K | L | ; | " | + * |-------+------+------+-------+----------+---------+-------+----------+-------+--------+------+-----------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter/Shift| + * |-------+------+------+-------+----------+---------+-------+----------+-------+--------+------+-----------| + * | Ctrl |L(Fn) | Alt | OS |Esc/L(Sym)|Shft/Bksp| Space |Ent/L(Num)|OS/Left|Alt/Down|Ctl/Up| Right | + * `---------------------------------------------------------------------------------------------------------' + */ +[_QWERTY] = 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, + CTL_T(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, RSFT_T(KC_ENT), + KC_LCTL, MOF, KC_LALT, KC_LGUI, LTS, SFT_T(KC_BSPC), KC_SPC, LTN, GUI_T(KC_LEFT), ALT_T(KC_DOWN), CTL_T(KC_UP), KC_RGHT +), + + +/* Numbers, calculator + * ,-------------------------------------------------------------------------. + * | | | | | | | | = | - | * | / | Bksp | + * |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | v | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | v | | | | | | | | , | . | | v | + * |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | v | v | v | v |L(Ad)| v | v | v | OS | Alt | Ctl | | + * `-------------------------------------------------------------------------' + */ +[_NUM] = LAYOUT_ortho_4x12( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_EQUAL, KC_MINUS, KC_PAST, KC_SLSH, KC_BSPC, + _______, 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_COMM, KC_DOT, KC_NO, _______, + _______, _______, _______, _______, MOA, _______, _______, _______, KC_RGUI, KC_RALT, KC_RCTRL, KC_NO +), + +/* Symbols + * ,------------------------------------------------------------------------. + * | ` | ! | @ | # | $ | % | ^ | & | * | - | = | Bksp | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | v | | | | { | ( | [ | ] | ) | } | \ | ' | | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | v | ~ | | | | | | | | _ | + | v | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | v | v | v | v | v | v | v |L(Ad)| OS | Alt | Ctl | | + * `------------------------------------------------------------------------' + */ +[_SYMBOL] = LAYOUT_ortho_4x12( + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, KC_BSPC, + _______, KC_NO, KC_PIPE, KC_LCBR, KC_LPRN, KC_LBRC, KC_RBRC, KC_RPRN, KC_RCBR, KC_BSLS, KC_QUOT, KC_NO, + _______, KC_TILD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, _______, + _______, _______, _______, _______, _______, _______, _______, MOA, KC_RGUI, KC_RALT, KC_RCTRL, KC_NO +), + +/* Function keys + * ,------+------+------+------+------+------+------+------+------+------+------+------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * +------+------+------+------+------+------+------+------+------+------+------+------| + * | v | | | | Home | | | End | | | | | + * +------+------+------+------+------+------+------+------+------+------+------+------| + * | v | | | | | | | | | | | v | + * +------+------+------+------+------+------+------+------+------+------+------+------| + * | v | v | v | v | v | v | v | v | OS | Alt | Ctl | | + * .-----------------------------------------------------------------------------------' + */ +[_FUNCTION] = 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_NO, KC_NO, KC_NO, KC_HOME, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, + _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_RGUI, KC_RALT, KC_RCTRL, KC_NO +), + +/* Adjust (Num + Symbol) + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | Left | Down | Up | Right| | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | |Rewind| Vol- | Stop | Play | Vol+ | Skip | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |RESET | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_ortho_4x12( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_MRWD, KC_VOLD, KC_MSTP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_MRWD, KC_VOLD, KC_MSTP, KC_MPLY, KC_VOLU, KC_MFFD, KC_NO, KC_NO, KC_NO, + RESET, 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/planck/keymaps/xjtian/readme.md b/keyboards/planck/keymaps/xjtian/readme.md new file mode 100644 index 000000000000..f541f0004a85 --- /dev/null +++ b/keyboards/planck/keymaps/xjtian/readme.md @@ -0,0 +1,12 @@ +# Jacky Tian's Planck Layout + +This is a layout for a 4x12 grid layout Planck board with 3 custom layers and +a bare-bones adjust layer. I've kept the layers sparse and tried to keep +symbols close to where they would be on a standard staggered layout when +possible so I don't have to rewire my muscle memory. + +I've generally tried to avoid having to hit the shift key for symbols so +there's some duplication on the symbol layer. To me it's worth it since +I'm using grid layout so I have the extra keys to support this. I find typing +scoping delimiters like brackets and braces is much nicer only having to hit +a single thumb key instead of two thumb keys or thumb + shift. From d1819f02dfac40408ceb51a59c32eb8e898e8810 Mon Sep 17 00:00:00 2001 From: Manna Harbour <51143715+manna-harbour@users.noreply.github.com> Date: Fri, 3 Jul 2020 03:04:55 +1000 Subject: [PATCH 136/154] Fix sharing of mouse button state from mousekeys to ps2_mouse (#9124) With this change, when ps2_mouse is disabled, mousekeys works as usual. With ps2_mouse enabled, mousekeys button state is shared with ps2_mouse for clicking, dragging, and scrolling, mousekeys clicks are produced by ps2_mouse only, and mouskeys button state is transferred to mousekeys without generating clicks to enable mousekeys dragging. Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre --- tmk_core/common/action.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 82be9cc9209c..69bcf8e56b74 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -400,7 +400,9 @@ void process_action(keyrecord_t *record, action_t action) { /* Mouse key */ case ACT_MOUSEKEY: if (event.pressed) { + mousekey_on(action.key.code); switch (action.key.code) { +# ifdef PS2_MOUSE_ENABLE case KC_MS_BTN1: tp_buttons |= (1 << 0); break; @@ -410,13 +412,15 @@ void process_action(keyrecord_t *record, action_t action) { case KC_MS_BTN3: tp_buttons |= (1 << 2); break; +# endif default: + mousekey_send(); break; } - mousekey_on(action.key.code); - mousekey_send(); } else { + mousekey_off(action.key.code); switch (action.key.code) { +# ifdef PS2_MOUSE_ENABLE case KC_MS_BTN1: tp_buttons &= ~(1 << 0); break; @@ -426,11 +430,11 @@ void process_action(keyrecord_t *record, action_t action) { case KC_MS_BTN3: tp_buttons &= ~(1 << 2); break; +# endif default: + mousekey_send(); break; } - mousekey_off(action.key.code); - mousekey_send(); } break; #endif From 65c9da5a657744578cf70b520736221209bf793b Mon Sep 17 00:00:00 2001 From: Dongfeng Yu <60870777+blockader@users.noreply.github.com> Date: Fri, 3 Jul 2020 01:05:38 +0800 Subject: [PATCH 137/154] [Keymap] Adding a Custom Keymap for Matrix Noah (#9581) Co-authored-by: Ryan --- .../matrix/noah/keymaps/blockader/config.h | 3 + .../matrix/noah/keymaps/blockader/keymap.c | 652 ++++++++++++++++++ .../matrix/noah/keymaps/blockader/rules.mk | 2 + keyboards/matrix/noah/noah.c | 2 +- 4 files changed, 658 insertions(+), 1 deletion(-) create mode 100644 keyboards/matrix/noah/keymaps/blockader/config.h create mode 100644 keyboards/matrix/noah/keymaps/blockader/keymap.c create mode 100644 keyboards/matrix/noah/keymaps/blockader/rules.mk diff --git a/keyboards/matrix/noah/keymaps/blockader/config.h b/keyboards/matrix/noah/keymaps/blockader/config.h new file mode 100644 index 000000000000..a64261ba9d1a --- /dev/null +++ b/keyboards/matrix/noah/keymaps/blockader/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/matrix/noah/keymaps/blockader/keymap.c b/keyboards/matrix/noah/keymaps/blockader/keymap.c new file mode 100644 index 000000000000..433fa9f9efd8 --- /dev/null +++ b/keyboards/matrix/noah/keymaps/blockader/keymap.c @@ -0,0 +1,652 @@ +#include QMK_KEYBOARD_H + +enum { + LAYER_NORM_BASE, + LAYER_NORM_EXTENSION, + LAYER_RACE_BASE, + LAYER_RACE_EXTENSION, + LAYER_LEGACY_BASE, + LAYER_LEGACY_EXTENSION, + LAYER_CONTROL, + LAYER_WINDOW, + LAYER_DESKTOP, + NUMBER_OF_LAYERS, +}; + +bool temporary[NUMBER_OF_LAYERS] = { + [LAYER_NORM_BASE] = false, + [LAYER_NORM_EXTENSION] = true, + [LAYER_RACE_BASE] = false, + [LAYER_RACE_EXTENSION] = true, + [LAYER_LEGACY_BASE] = false, + [LAYER_LEGACY_EXTENSION] = true, + [LAYER_CONTROL] = false, + [LAYER_WINDOW] = true, + [LAYER_DESKTOP] = false, +}; + +#define KEY_FORWARD_LAYER(a) SAFE_RANGE + a + +enum{ + DANCE_PGDN_BOTTOM, + DANCE_PGUP_TOP, +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + [DANCE_PGDN_BOTTOM] = ACTION_TAP_DANCE_DOUBLE(KC_PGDN, LGUI(KC_DOWN)), + [DANCE_PGUP_TOP] = ACTION_TAP_DANCE_DOUBLE(KC_PGUP, LGUI(KC_UP)), +}; + +#define KEY_DANCE(a) TD(a) + +enum custom_keycodes { + KEY_BACK_LAYER = SAFE_RANGE + NUMBER_OF_LAYERS, + KEY_INSERT_LINE_START, + KEY_INSERT_HERE, + KEY_INSERT_LINE_END, + KEY_CREATE_PREVIOUS_LINE, + KEY_CREATE_NEXT_LINE, + KEY_CUT_WORD, + KEY_CUT_LINE, + KEY_CUT_SELECTION, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_NORM_BASE] = LAYOUT_default_splitspace( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KEY_DANCE(DANCE_PGDN_BOTTOM), KEY_DANCE(DANCE_PGUP_TOP), KC_NO, KEY_CUT_LINE, KEY_FORWARD_LAYER(LAYER_RACE_BASE), + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LCBR, KC_RCBR, KC_BSLS, KEY_FORWARD_LAYER(LAYER_LEGACY_BASE), + KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KEY_FORWARD_LAYER(LAYER_DESKTOP), + 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_NO, LCTL(KC_LEFT), + KC_LCTL, KC_LGUI, KC_LALT, KEY_FORWARD_LAYER(LAYER_NORM_EXTENSION), KEY_FORWARD_LAYER(LAYER_CONTROL), KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_NO, LCTL(KC_RIGHT)), + [LAYER_NORM_EXTENSION] = LAYOUT_default_splitspace( + LGUI(LSFT(KC_4)), KC_NO, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, LCTL(KC_C), KEY_FORWARD_LAYER(LAYER_RACE_BASE), + KEY_FORWARD_LAYER(LAYER_WINDOW), LGUI(KC_SPC), LCTL(KC_SPC), KC_ESC, KC_TILD, KC_EXLM, KC_PEQL, KC_PLUS, KC_MINUS, KC_PIPE, KC_COLN, KC_LCBR, KC_RCBR, KEY_CREATE_PREVIOUS_LINE, KEY_FORWARD_LAYER(LAYER_LEGACY_BASE), + KEY_CUT_WORD, LALT(KC_LEFT), LALT(KC_RIGHT), KC_BSPC, LGUI(KC_LEFT), LCTL(KC_E), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, LGUI(KC_V), KC_DQUO, KEY_CREATE_NEXT_LINE, KEY_FORWARD_LAYER(LAYER_DESKTOP), + KC_LSFT, LGUI(KC_Z), KEY_CUT_SELECTION, KC_LPRN, KC_RPRN, KC_UNDS, KC_LBRC, KC_RBRC, KC_LT, KC_GT, KC_QUES, KC_RSFT, KC_NO, LCTL(KC_LEFT), + KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KEY_FORWARD_LAYER(LAYER_CONTROL), KC_SPC, KC_RALT, KC_RGUI, KC_NO, RESET, LCTL(KC_RIGHT)), + [LAYER_RACE_BASE] = LAYOUT_default_splitspace( + 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, KEY_BACK_LAYER, + KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LCBR, KC_RCBR, KC_BSLS, KC_NO, + KC_CAPS, 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_NO, + 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_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KEY_FORWARD_LAYER(LAYER_RACE_EXTENSION), KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + [LAYER_RACE_EXTENSION] = LAYOUT_default_splitspace( + KC_NO, KC_1, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_9, KC_0, KC_NO, KC_NO, KC_NO, KEY_CUT_LINE, KEY_BACK_LAYER, + KC_NO, KC_Q, KC_W, KC_F, KC_TILD, KC_EXLM, KC_PEQL, KC_PLUS, KC_MINUS, KC_PIPE, KC_COLN, KC_LCBR, KC_RCBR, KC_BSLS, KC_NO, + KEY_CUT_LINE, KC_A, KC_R, KC_BSPC, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_DQUO, KC_ENT, KC_NO, + KC_LSFT, KC_Z, KC_X, KC_LPRN, KC_RPRN, KC_UNDS, KC_LBRC, KC_RBRC, KC_LT, KC_GT, KC_QUES, KC_RSFT, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + [LAYER_LEGACY_BASE] = LAYOUT_default_splitspace( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KEY_DANCE(DANCE_PGDN_BOTTOM), KEY_DANCE(DANCE_PGUP_TOP), KC_NO, KEY_CUT_LINE, 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_LCBR, KC_RCBR, KC_BSLS, KEY_BACK_LAYER, + KC_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, KEY_FORWARD_LAYER(LAYER_DESKTOP), + 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_NO, LCTL(KC_LEFT), + KC_LCTL, KC_LGUI, KC_LALT, KEY_FORWARD_LAYER(LAYER_LEGACY_EXTENSION), KEY_FORWARD_LAYER(LAYER_CONTROL), KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_NO, LCTL(KC_RIGHT)), + [LAYER_LEGACY_EXTENSION] = LAYOUT_default_splitspace( + LGUI(LSFT(KC_4)), KC_NO, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, LCTL(KC_C), KC_NO, + KEY_FORWARD_LAYER(LAYER_WINDOW), LGUI(KC_SPC), LCTL(KC_SPC), KC_ESC, KC_TILD, KC_EXLM, KC_PEQL, KC_PLUS, KC_MINUS, KC_PIPE, KC_COLN, KC_LCBR, KC_RCBR, KEY_CREATE_PREVIOUS_LINE, KEY_BACK_LAYER, + KEY_CUT_WORD, LALT(KC_LEFT), LALT(KC_RIGHT), KC_BSPC, LGUI(KC_LEFT), LCTL(KC_E), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, LGUI(KC_V), KC_DQUO, KEY_CREATE_NEXT_LINE, KEY_FORWARD_LAYER(LAYER_DESKTOP), + KC_LSFT, LGUI(KC_Z), KEY_CUT_SELECTION, KC_LPRN, KC_RPRN, KC_UNDS, KC_LBRC, KC_RBRC, KC_LT, KC_GT, KC_QUES, KC_RSFT, KC_NO, LCTL(KC_LEFT), + KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KEY_FORWARD_LAYER(LAYER_CONTROL), KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_NO, LCTL(KC_RIGHT)), + [LAYER_CONTROL] = LAYOUT_default_splitspace( + 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_NO, KC_NO, KC_NO, KC_NO, KEY_INSERT_LINE_START, KEY_INSERT_HERE, KEY_INSERT_LINE_END, KC_NO, KC_NO, KC_NO, KEY_CREATE_PREVIOUS_LINE, KC_NO, + KEY_CUT_WORD, LALT(KC_LEFT), LALT(KC_RIGHT), KC_BSPC, LGUI(KC_LEFT), LCTL(KC_E), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, LGUI(KC_V), KC_NO, KEY_CREATE_NEXT_LINE, KC_NO, + KC_LSFT, LGUI(KC_Z), KEY_CUT_SELECTION, LGUI(KC_C), LGUI(KC_V), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KEY_BACK_LAYER, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + [LAYER_WINDOW] = LAYOUT_default_splitspace( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KEY_BACK_LAYER, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 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_UP, KC_RIGHT, KC_NO, KC_NO, KEY_BACK_LAYER, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KEY_BACK_LAYER, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + [LAYER_DESKTOP] = LAYOUT_default_splitspace( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LCTL(KC_LEFT), KC_NO, KC_NO, LCTL(KC_RIGHT), KC_NO, KC_NO, KEY_BACK_LAYER, KEY_BACK_LAYER, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KEY_BACK_LAYER, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), +}; + +int layers[16]; + +struct { + bool back; +} common_layer_data; +struct { + int operator, multiplier; +} layer_control_data; + +struct { + int start_time; +} layer_window_data; + +bool handle_layer_key(uint16_t key, keyrecord_t* record) { + switch (layers[layers[0] + 1]) { + case LAYER_CONTROL: + switch (key) { + case KC_0: + if (record->event.pressed) { + layer_control_data.multiplier = layer_control_data.multiplier * 10; + if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; + } + return false; + case KC_1: + if (record->event.pressed) { + layer_control_data.multiplier = layer_control_data.multiplier * 10 + 1; + if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; + } + return false; + case KC_2: + if (record->event.pressed) { + layer_control_data.multiplier = layer_control_data.multiplier * 10 + 2; + if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; + } + return false; + case KC_3: + if (record->event.pressed) { + layer_control_data.multiplier = layer_control_data.multiplier * 10 + 3; + if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; + } + return false; + case KC_4: + if (record->event.pressed) { + layer_control_data.multiplier = layer_control_data.multiplier * 10 + 4; + if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; + } + return false; + case KC_5: + if (record->event.pressed) { + layer_control_data.multiplier = layer_control_data.multiplier * 10 + 5; + if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; + } + return false; + case KC_6: + if (record->event.pressed) { + layer_control_data.multiplier = layer_control_data.multiplier * 10 + 6; + if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; + } + return false; + case KC_7: + if (record->event.pressed) { + layer_control_data.multiplier = layer_control_data.multiplier * 10 + 7; + if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; + } + return false; + case KC_8: + if (record->event.pressed) { + layer_control_data.multiplier = layer_control_data.multiplier * 10 + 8; + if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; + } + return false; + case KC_9: + if (record->event.pressed) { + layer_control_data.multiplier = layer_control_data.multiplier * 10 + 9; + if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; + } + return false; + case KEY_INSERT_LINE_START: + if (record->event.pressed) common_layer_data.back = true; + return true; + case KEY_INSERT_HERE: + if (record->event.pressed) common_layer_data.back = true; + return true; + case KEY_INSERT_LINE_END: + if (record->event.pressed) common_layer_data.back = true; + return true; + case KEY_CREATE_PREVIOUS_LINE: + if (record->event.pressed) common_layer_data.back = true; + return true; + case KEY_CUT_WORD: + if (record->event.pressed) { + if (layer_control_data.operator== - 1) { + register_code(KC_LALT); + tap_code(KC_LEFT); + tap_code(KC_RIGHT); + unregister_code(KC_LALT); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(LALT(KC_LEFT))); + tap_code16(LGUI(KC_X)); + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + return false; + case LALT(KC_LEFT): + if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; + if (record->event.pressed) { + if (layer_control_data.operator== - 1) + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LALT(KC_LEFT)); + else if (layer_control_data.operator== KC_BSPC) { + register_code(KC_LALT); + tap_code(KC_LEFT); + tap_code(KC_RIGHT); + unregister_code(KC_LALT); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(LALT(KC_LEFT))); + tap_code16(LGUI(KC_X)); + } else if (layer_control_data.operator== LGUI(KC_C)) { + register_code(KC_LALT); + tap_code(KC_LEFT); + tap_code(KC_RIGHT); + unregister_code(KC_LALT); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(LALT(KC_LEFT))); + tap_code16(LGUI(KC_C)); + tap_code(KC_RIGHT); + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + return false; + case LALT(KC_RIGHT): + if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; + if (record->event.pressed) { + if (layer_control_data.operator== - 1) + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LALT(KC_RIGHT)); + else if (layer_control_data.operator== KC_BSPC) { + register_code(KC_LALT); + tap_code(KC_RIGHT); + tap_code(KC_LEFT); + unregister_code(KC_LALT); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(LALT(KC_RIGHT))); + tap_code16(LGUI(KC_X)); + } else if (layer_control_data.operator== LGUI(KC_C)) { + register_code(KC_LALT); + tap_code(KC_RIGHT); + tap_code(KC_LEFT); + unregister_code(KC_LALT); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(LALT(KC_RIGHT))); + tap_code16(LGUI(KC_C)); + tap_code(KC_LEFT); + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + return false; + case LGUI(KC_LEFT): + if (record->event.pressed) { + if (layer_control_data.operator== - 1) + tap_code16(LGUI(KC_LEFT)); + else if (layer_control_data.operator== KC_BSPC) { + tap_code16(LSFT(LGUI(KC_LEFT))); + tap_code16(LGUI(KC_X)); + } else if (layer_control_data.operator== LGUI(KC_C)) { + tap_code16(LSFT(LGUI(KC_LEFT))); + tap_code16(LGUI(KC_C)); + tap_code(KC_RIGHT); + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + return false; + case LCTL(KC_E): + if (record->event.pressed) { + if (layer_control_data.operator== - 1) + tap_code16(LCTL(KC_E)); + else if (layer_control_data.operator== KC_BSPC) { + tap_code16(LSFT(LCTL(KC_E))); + tap_code16(LGUI(KC_X)); + } else if (layer_control_data.operator== LGUI(KC_C)) { + tap_code16(LSFT(LCTL(KC_E))); + tap_code16(LGUI(KC_C)); + tap_code(KC_LEFT); + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + return false; + case KC_BSPC: + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + unregister_code(KC_LSHIFT); + tap_code16(LGUI(KC_X)); + register_code(KC_LSHIFT); + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } else if (layer_control_data.operator== - 1) + layer_control_data.operator= KC_BSPC; + else { + if (layer_control_data.operator== KC_BSPC) { + tap_code16(LCTL(KC_A)); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_DOWN)); + tap_code16(LGUI(KC_X)); + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + } + return false; + case KC_LEFT: + if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; + if (record->event.pressed) { + if (layer_control_data.operator== - 1) + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code(KC_LEFT); + else if (layer_control_data.operator== KC_BSPC) { + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_LEFT)); + tap_code16(LGUI(KC_X)); + } else if (layer_control_data.operator== LGUI(KC_C)) { + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_LEFT)); + tap_code16(LGUI(KC_C)); + tap_code(KC_RIGHT); + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + return false; + case KC_DOWN: + if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; + if (record->event.pressed) { + if (layer_control_data.operator== - 1) + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code(KC_DOWN); + else if (layer_control_data.operator== KC_BSPC) { + tap_code16(LCTL(KC_A)); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_DOWN)); + tap_code16(LGUI(KC_X)); + } else if (layer_control_data.operator== LGUI(KC_C)) { + tap_code16(LCTL(KC_A)); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_DOWN)); + tap_code16(LGUI(KC_C)); + tap_code(KC_LEFT); + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + return false; + case KC_UP: + if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; + if (record->event.pressed) { + if (layer_control_data.operator== - 1) + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code(KC_UP); + else if (layer_control_data.operator== KC_BSPC) { + tap_code16(LCTL(KC_E)); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_UP)); + tap_code16(LSFT(LCTL(KC_E))); + tap_code16(LGUI(KC_X)); + } else if (layer_control_data.operator== LGUI(KC_C)) { + tap_code16(LCTL(KC_E)); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_UP)); + tap_code16(LSFT(LCTL(KC_E))); + tap_code16(LGUI(KC_C)); + tap_code(KC_RIGHT); + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + return false; + case KC_RIGHT: + if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; + if (record->event.pressed) { + if (layer_control_data.operator== - 1) + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code(KC_RIGHT); + else if (layer_control_data.operator== KC_BSPC) { + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_RIGHT)); + tap_code16(LGUI(KC_X)); + } else if (layer_control_data.operator== LGUI(KC_C)) { + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_RIGHT)); + tap_code16(LGUI(KC_C)); + tap_code(KC_LEFT); + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + return false; + case KEY_CREATE_NEXT_LINE: + if (record->event.pressed) common_layer_data.back = true; + return true; + case LGUI(KC_Z): + if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; + if (record->event.pressed) { + if (layer_control_data.operator== - 1) + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LGUI(KC_Z)); + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + return false; + case LGUI(KC_C): + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + unregister_code(KC_LSHIFT); + tap_code16(LGUI(KC_C)); + register_code(KC_LSHIFT); + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } else if (layer_control_data.operator== - 1) + layer_control_data.operator= LGUI(KC_C); + else { + if (layer_control_data.operator== LGUI(KC_C)) { + tap_code16(LCTL(KC_A)); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_DOWN)); + tap_code16(LGUI(KC_C)); + tap_code(KC_LEFT); + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + } + return false; + case LGUI(KC_V): + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + unregister_code(KC_LSHIFT); + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LGUI(KC_V)); + register_code(KC_LSHIFT); + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } else { + for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LGUI(KC_V)); + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + } + } + return false; + } + layer_control_data.multiplier = 0; + layer_control_data.operator = - 1; + return true; + case LAYER_WINDOW: + switch (key) { + case SAFE_RANGE + LAYER_WINDOW: + if (!record->event.pressed) { + if (timer_elapsed(layer_window_data.start_time) < 200) + temporary[LAYER_WINDOW] = true; + else + temporary[LAYER_WINDOW] = false; + } + return true; + case KEY_BACK_LAYER: + if (record->event.pressed) tap_code(KC_ENTER); + return true; + } + return true; + case LAYER_DESKTOP: + switch (key) { + case KEY_BACK_LAYER: + if (record->event.pressed) tap_code16(LCTL(KC_UP)); + return true; + } + return true; + } + return true; +} + +void handle_layer_start(void) { + rgblight_disable_noeeprom(); + switch (layers[layers[0] + 1]) { + case LAYER_RACE_BASE: + case LAYER_RACE_EXTENSION: + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_GREEN); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + return; + case LAYER_LEGACY_BASE: + case LAYER_LEGACY_EXTENSION: + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_RED); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + return; + case LAYER_CONTROL: + layer_control_data.operator = - 1; + layer_control_data.multiplier = 0; + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_BLUE); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + return; + case LAYER_WINDOW: + register_code(KC_LGUI); + tap_code(KC_TAB); + layer_window_data.start_time = timer_read(); + return; + case LAYER_DESKTOP: + tap_code16(LCTL(KC_UP)); + return; + } +} + +void handle_layer_return(void) { + rgblight_disable_noeeprom(); + switch (layers[layers[0] + 1]) { + case LAYER_RACE_BASE: + case LAYER_RACE_EXTENSION: + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_GREEN); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + return; + case LAYER_LEGACY_BASE: + case LAYER_LEGACY_EXTENSION: + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_RED); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + return; + case LAYER_CONTROL: + layer_control_data.operator = - 1; + layer_control_data.multiplier = 0; + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_BLUE); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + return; + } +} + +void handle_layer_end(void) { + switch (layers[layers[0] + 1]) { + case LAYER_WINDOW: + unregister_code(KC_LGUI); + return; + } +} + +void update_layer(void) { + layer_clear(); + common_layer_data.back = false; + layer_on(layers[layers[0] + 1]); +} + +bool handle_call_key(uint16_t key, keyrecord_t* record) { + switch (key) { + case KEY_BACK_LAYER: + if (record->event.pressed) { + if (layers[0]) { + handle_layer_end(); + --layers[0]; + update_layer(); + handle_layer_return(); + } + } + return false; + } + if (key >= SAFE_RANGE && key < SAFE_RANGE + NUMBER_OF_LAYERS) { + int new_layer = key - SAFE_RANGE; + if (record->event.pressed) { + if (layers[layers[0] + 1] != new_layer) { + if (temporary[layers[layers[0] + 1]]) { + handle_layer_end(); + layers[layers[0] + 1] = new_layer; + } else + layers[++layers[0] + 1] = new_layer; + update_layer(); + handle_layer_start(); + } + } else { + if (layers[layers[0] + 1] == new_layer && temporary[layers[layers[0] + 1]]) { + handle_layer_end(); + --layers[0]; + update_layer(); + handle_layer_return(); + } + } + return false; + } + if (common_layer_data.back) { + if (layers[0]) { + handle_layer_end(); + --layers[0]; + update_layer(); + handle_layer_return(); + } + } + return true; +} + +bool handle_common_key(uint16_t key, keyrecord_t* record) { + switch (key) { + case KEY_INSERT_LINE_START: + if (record->event.pressed) tap_code16(LGUI(KC_LEFT)); + return false; + case KEY_INSERT_HERE: + return false; + case KEY_INSERT_LINE_END: + if (record->event.pressed) tap_code16(LGUI(KC_RIGHT)); + return false; + case KEY_CREATE_PREVIOUS_LINE: + if (record->event.pressed) { + tap_code16(LGUI(KC_LEFT)); + tap_code(KC_ENTER); + tap_code(KC_UP); + } + return false; + case KEY_CREATE_NEXT_LINE: + if (record->event.pressed) { + tap_code16(LGUI(KC_RIGHT)); + tap_code(KC_ENTER); + } + return false; + case KEY_CUT_WORD: + if (record->event.pressed) { + register_code(KC_LALT); + tap_code(KC_LEFT); + tap_code(KC_RIGHT); + unregister_code(KC_LALT); + tap_code16(LSFT(LALT(KC_LEFT))); + tap_code16(LGUI(KC_X)); + } + return false; + case KEY_CUT_LINE: + if (record->event.pressed) { + tap_code16(LGUI(KC_RIGHT)); + tap_code16(LSFT(LGUI(KC_LEFT))); + tap_code16(LGUI(KC_X)); + } + return false; + case KEY_CUT_SELECTION: + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + unregister_code(KC_LSHIFT); + tap_code16(LGUI(KC_X)); + register_code(KC_LSHIFT); + } else + tap_code16(LGUI(KC_X)); + } + return false; + } + return true; +} + +bool process_record_user(uint16_t key, keyrecord_t* record) { + if (!handle_layer_key(key, record)) return false; + if (!handle_call_key(key, record)) return false; + return handle_common_key(key, record); +} + +void keyboard_post_init_user() { + rgblight_disable_noeeprom(); + rgb_matrix_disable(); + common_layer_data.back = false; +} diff --git a/keyboards/matrix/noah/keymaps/blockader/rules.mk b/keyboards/matrix/noah/keymaps/blockader/rules.mk new file mode 100644 index 000000000000..610cc234237d --- /dev/null +++ b/keyboards/matrix/noah/keymaps/blockader/rules.mk @@ -0,0 +1,2 @@ +TAP_DANCE_ENABLE = yes +DYNAMIC_MACRO_ENABLE = yes diff --git a/keyboards/matrix/noah/noah.c b/keyboards/matrix/noah/noah.c index cf33404434b6..1e2f4bb7d93f 100644 --- a/keyboards/matrix/noah/noah.c +++ b/keyboards/matrix/noah/noah.c @@ -229,5 +229,5 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { break; } } - return true; + return process_record_user(keycode, record); } From 00fc35539d774c43cde383a8d2cc8b254787ce6c Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 3 Jul 2020 03:08:19 +1000 Subject: [PATCH 138/154] Make sendstring respect `TAP_CODE_DELAY` (#9623) --- quantum/quantum.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/quantum/quantum.c b/quantum/quantum.c index 75df357d3354..044a15612845 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -438,8 +438,7 @@ void send_string_with_delay(const char *str, uint8_t interval) { if (ascii_code == SS_TAP_CODE) { // tap uint8_t keycode = *(++str); - register_code(keycode); - unregister_code(keycode); + tap_code(keycode); } else if (ascii_code == SS_DOWN_CODE) { // down uint8_t keycode = *(++str); @@ -480,8 +479,7 @@ void send_string_with_delay_P(const char *str, uint8_t interval) { if (ascii_code == SS_TAP_CODE) { // tap uint8_t keycode = pgm_read_byte(++str); - register_code(keycode); - unregister_code(keycode); + tap_code(keycode); } else if (ascii_code == SS_DOWN_CODE) { // down uint8_t keycode = pgm_read_byte(++str); From b7dc2eb9ab2bb3c6ac9ac8e975728002e0e9d62d Mon Sep 17 00:00:00 2001 From: Manna Harbour <51143715+manna-harbour@users.noreply.github.com> Date: Fri, 3 Jul 2020 06:54:15 +1000 Subject: [PATCH 139/154] Add movement hook to ps2_mouse (#8805) Process mouse movement in the keymap before it is sent to the host. Example uses include filtering noise, adding acceleration, and automatically activating a layer. To use, define the following function in your keymap: void ps2_mouse_moved_user(report_mouse_t *mouse_report); --- docs/feature_ps2_mouse.md | 10 ++++++++++ tmk_core/protocol/ps2_mouse.c | 5 +++++ tmk_core/protocol/ps2_mouse.h | 3 +++ 3 files changed, 18 insertions(+) diff --git a/docs/feature_ps2_mouse.md b/docs/feature_ps2_mouse.md index c1bd8bff50a8..e549810855a6 100644 --- a/docs/feature_ps2_mouse.md +++ b/docs/feature_ps2_mouse.md @@ -294,3 +294,13 @@ To debug the mouse, add `debug_mouse = true` or enable via bootmagic. #define PS2_MOUSE_DEBUG_HID #define PS2_MOUSE_DEBUG_RAW ``` + +### Movement Hook :id=movement-hook + +Process mouse movement in the keymap before it is sent to the host. Example +uses include filtering noise, adding acceleration, and automatically activating +a layer. To use, define the following function in your keymap: + +```c +void ps2_mouse_moved_user(report_mouse_t *mouse_report); +``` diff --git a/tmk_core/protocol/ps2_mouse.c b/tmk_core/protocol/ps2_mouse.c index a0e52bc7c3a5..8df465026bff 100644 --- a/tmk_core/protocol/ps2_mouse.c +++ b/tmk_core/protocol/ps2_mouse.c @@ -68,6 +68,8 @@ void ps2_mouse_init(void) { __attribute__((weak)) void ps2_mouse_init_user(void) {} +__attribute__((weak)) void ps2_mouse_moved_user(report_mouse_t *mouse_report) {} + void ps2_mouse_task(void) { static uint8_t buttons_prev = 0; extern int tp_buttons; @@ -98,6 +100,9 @@ void ps2_mouse_task(void) { #if PS2_MOUSE_SCROLL_BTN_MASK ps2_mouse_scroll_button_task(&mouse_report); #endif + if (mouse_report.x || mouse_report.y || mouse_report.v) { + ps2_mouse_moved_user(&mouse_report); + } #ifdef PS2_MOUSE_DEBUG_HID // Used to debug the bytes sent to the host ps2_mouse_print_report(&mouse_report); diff --git a/tmk_core/protocol/ps2_mouse.h b/tmk_core/protocol/ps2_mouse.h index 30053ef18703..d743fb3d85e5 100644 --- a/tmk_core/protocol/ps2_mouse.h +++ b/tmk_core/protocol/ps2_mouse.h @@ -20,6 +20,7 @@ along with this program. If not, see . #include #include "debug.h" +#include "report.h" #define PS2_MOUSE_SEND(command, message) \ do { \ @@ -174,4 +175,6 @@ void ps2_mouse_set_resolution(ps2_mouse_resolution_t resolution); void ps2_mouse_set_sample_rate(ps2_mouse_sample_rate_t sample_rate); +void ps2_mouse_moved_user(report_mouse_t *mouse_report); + #endif From 8c66c5aa9b08d732329408847dc6cf7645e67ae1 Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Fri, 3 Jul 2020 17:05:44 +0800 Subject: [PATCH 140/154] Fix incorrect layout for GHS.rar (#9597) Co-authored-by: Ryan --- keyboards/ghs/rar/config.h | 2 +- keyboards/ghs/rar/keymaps/default/keymap.c | 24 ++++++------- keyboards/ghs/rar/keymaps/iso/keymap.c | 24 ++++++------- keyboards/ghs/rar/keymaps/via/keymap.c | 42 +++++++++++----------- 4 files changed, 46 insertions(+), 46 deletions(-) diff --git a/keyboards/ghs/rar/config.h b/keyboards/ghs/rar/config.h index 0e41f47b3173..f3b425bc259f 100644 --- a/keyboards/ghs/rar/config.h +++ b/keyboards/ghs/rar/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Gone Hacking Studio #define PRODUCT GHS.RAR -#define DESCRIPTION A 75 % keyboard +#define DESCRIPTION A 75% keyboard /* key matrix size */ #define MATRIX_ROWS 12 diff --git a/keyboards/ghs/rar/keymaps/default/keymap.c b/keyboards/ghs/rar/keymaps/default/keymap.c index 3c644d4a2047..7e48f080cdea 100644 --- a/keyboards/ghs/rar/keymaps/default/keymap.c +++ b/keyboards/ghs/rar/keymaps/default/keymap.c @@ -24,19 +24,19 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = 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_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_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, + 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_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_LEFT, KC_DOWN, KC_RGHT ), [_FN] = LAYOUT_ansi( - RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, 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_HUI, - KC_NO, KC_NO, 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_SAI, - KC_NO, 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_SAD, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI, RGB_HUD, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, RGB_MOD, RGB_VAD, RGB_RMOD, + RGB_TOG, 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_HUI, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAI, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, RGB_HUD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_MOD, RGB_VAD, RGB_RMOD ) }; diff --git a/keyboards/ghs/rar/keymaps/iso/keymap.c b/keyboards/ghs/rar/keymaps/iso/keymap.c index 661159f0367d..4af55102d38d 100644 --- a/keyboards/ghs/rar/keymaps/iso/keymap.c +++ b/keyboards/ghs/rar/keymaps/iso/keymap.c @@ -24,19 +24,19 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = 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_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_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_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, + 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_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_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_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 ), [_FN] = LAYOUT_iso( - RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, 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_HUI, - KC_NO, KC_NO, 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_SAI, - KC_NO, 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_SAD, - 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_VAI, RGB_HUD, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, RGB_MOD, RGB_VAD, RGB_RMOD, + RGB_TOG, 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_HUI, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAI, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, RGB_HUD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_MOD, RGB_VAD, RGB_RMOD ) }; diff --git a/keyboards/ghs/rar/keymaps/via/keymap.c b/keyboards/ghs/rar/keymaps/via/keymap.c index 9700fd3bbdc4..af72c4fb7a4d 100644 --- a/keyboards/ghs/rar/keymaps/via/keymap.c +++ b/keyboards/ghs/rar/keymaps/via/keymap.c @@ -18,35 +18,35 @@ 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_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_NO, 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_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, + 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_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_NO, 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_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, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_all( - RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD, - _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_VAD, RGB_RMOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_VAD, RGB_RMOD ), [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; From 2c98c4dd4e05f02a87154c914319f2b772bf81c9 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 3 Jul 2020 19:05:59 +1000 Subject: [PATCH 141/154] Backlight docs wordsmithing (#9631) --- docs/feature_backlight.md | 259 +++++++++++++++++--------------------- 1 file changed, 115 insertions(+), 144 deletions(-) diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md index 7e4401b40fc7..9e467c708a28 100644 --- a/docs/feature_backlight.md +++ b/docs/feature_backlight.md @@ -1,4 +1,4 @@ -# Backlighting +# Backlighting :id=backlighting Many keyboards support backlit keys by way of individual LEDs placed through or underneath the keyswitches. This feature is distinct from both the [RGB underglow](feature_rgblight.md) and [RGB matrix](feature_rgb_matrix.md) features as it usually allows for only a single colour per switch, though you can obviously install multiple different single coloured LEDs on a keyboard. @@ -6,103 +6,106 @@ QMK is able to control the brightness of these LEDs by switching them on and off The MCU can only supply so much current to its GPIO pins. Instead of powering the backlight directly from the MCU, the backlight pin is connected to a transistor or MOSFET that switches the power to the LEDs. -## Feature Configuration - Most keyboards have backlighting enabled by default if they support it, but if it is not working for you, check that your `rules.mk` includes the following: ```makefile BACKLIGHT_ENABLE = yes ``` -## Keycodes -Once enabled the following keycodes below can be used to change the backlight level. - -|Key |Description | -|---------|------------------------------------------| -|`BL_TOGG`|Turn the backlight on or off | -|`BL_STEP`|Cycle through backlight levels | -|`BL_ON` |Set the backlight to max brightness | -|`BL_OFF` |Turn the backlight off | -|`BL_INC` |Increase the backlight level | -|`BL_DEC` |Decrease the backlight level | -|`BL_BRTG`|Toggle backlight breathing | - -## Backlight Functions - -|Function |Description | -|----------|-----------------------------------------------------------| -|`backlight_toggle()` |Turn the backlight on or off | -|`backlight_enable()` |Turn the backlight on | -|`backlight_disable()` |Turn the backlight off | -|`backlight_step()` |Cycle through backlight levels | -|`backlight_increase()` |Increase the backlight level | -|`backlight_decrease()` |Decrease the backlight level | -|`backlight_level(x)` |Sets the backlight level to specified level | -|`get_backlight_level()` |Return the current backlight level | -|`is_backlight_enabled()`|Return whether the backlight is currently on | - -### Backlight Breathing Functions - -|Function |Description | -|----------|---------------------------------------------------| -|`breathing_toggle()` |Turn the backlight breathing on or off | -|`breathing_enable()` |Turns on backlight breathing | -|`breathing_disable()` |Turns off backlight breathing | - -## Driver Configuration +## Keycodes :id=keycodes + +Once enabled, the following keycodes below can be used to change the backlight level. + +|Key |Description | +|---------|-----------------------------------| +|`BL_TOGG`|Turn the backlight on or off | +|`BL_STEP`|Cycle through backlight levels | +|`BL_ON` |Set the backlight to max brightness| +|`BL_OFF` |Turn the backlight off | +|`BL_INC` |Increase the backlight level | +|`BL_DEC` |Decrease the backlight level | +|`BL_BRTG`|Toggle backlight breathing | + +## Functions :id=functions + +These functions can be used to change the backlighting in custom code: + +|Function |Description | +|------------------------|--------------------------------------------| +|`backlight_toggle()` |Turn the backlight on or off | +|`backlight_enable()` |Turn the backlight on | +|`backlight_disable()` |Turn the backlight off | +|`backlight_step()` |Cycle through backlight levels | +|`backlight_increase()` |Increase the backlight level | +|`backlight_decrease()` |Decrease the backlight level | +|`backlight_level(x)` |Sets the backlight level to specified level | +|`get_backlight_level()` |Return the current backlight level | +|`is_backlight_enabled()`|Return whether the backlight is currently on| + +If backlight breathing is enabled (see below), the following functions are also available: + +|Function |Description | +|---------------------|--------------------------------------| +|`breathing_toggle()` |Turn the backlight breathing on or off| +|`breathing_enable()` |Turns on backlight breathing | +|`breathing_disable()`|Turns off backlight breathing | + +## Configuration :id=configuration To select which driver to use, configure your `rules.mk` with the following: ```makefile -BACKLIGHT_DRIVER = software # Valid driver values are 'pwm,software,no' +BACKLIGHT_DRIVER = software ``` -See below for help on individual drivers. +Valid driver values are `pwm`, `software`, `custom` or `no`. See below for help on individual drivers. -## Common Driver Configuration +To configure the backlighting, `#define` these in your `config.h`: -To change the behavior of the backlighting, `#define` these in your `config.h`: +|Define |Default |Description | +|---------------------|-------------|-------------------------------------------------------------------------------------| +|`BACKLIGHT_PIN` |*Not defined*|The pin that controls the LED(s) | +|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) | +|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) | +|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported | +|`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| -|Define |Default |Description | -|---------------------|-------------|--------------------------------------------------------------------------------------| -|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) | -|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) | -|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported | -|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds | -|`BACKLIGHT_ON_STATE` |`0` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low | +Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`. -### Backlight On State +### Backlight On State :id=backlight-on-state Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*. Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead. This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define. -## AVR driver +### AVR Driver :id=avr-driver + +The `pwm` driver is configured by default, however the equivalent setting within `rules.mk` would be: -On AVR boards, the default driver currently sniffs the configuration to pick the best scenario. The driver is configured by default, however the equivalent setting within rules.mk would be: ```makefile BACKLIGHT_DRIVER = pwm ``` -### Caveats +#### Caveats :id=avr-caveats -Hardware PWM is supported according to the following table: +On AVR boards, QMK automatically decides which driver to use according to the following table: |Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328/P| -|-------------|-------------|-------------|-------------|---------|----------| -|`B1` | | | | |Timer 1 | -|`B2` | | | | |Timer 1 | -|`B5` |Timer 1 |Timer 1 | | | | -|`B6` |Timer 1 |Timer 1 | | | | -|`B7` |Timer 1 |Timer 1 |Timer 1 | | | -|`C4` |Timer 3 | | | | | -|`C5` |Timer 3 | |Timer 1 | | | -|`C6` |Timer 3 |Timer 3 |Timer 1 | | | -|`D4` | | | |Timer 1 | | -|`D5` | | | |Timer 1 | | - -All other pins will use software PWM. If the [Audio](feature_audio.md) feature is disabled or only using one timer, the backlight PWM can be triggered by a hardware timer: +|-------------|-------------|-------------|-------------|---------|-----------| +|`B1` | | | | |Timer 1 | +|`B2` | | | | |Timer 1 | +|`B5` |Timer 1 |Timer 1 | | | | +|`B6` |Timer 1 |Timer 1 | | | | +|`B7` |Timer 1 |Timer 1 |Timer 1 | | | +|`C4` |Timer 3 | | | | | +|`C5` |Timer 3 | |Timer 1 | | | +|`C6` |Timer 3 |Timer 3 |Timer 1 | | | +|`D4` | | | |Timer 1 | | +|`D5` | | | |Timer 1 | | + +All other pins will use timer-assisted software PWM: |Audio Pin|Audio Timer|Software PWM Timer| |---------|-----------|------------------| @@ -113,44 +116,9 @@ All other pins will use software PWM. If the [Audio](feature_audio.md) feature i |`B6` |Timer 1 |Timer 3 | |`B7` |Timer 1 |Timer 3 | -When both timers are in use for Audio, the backlight PWM will not use a hardware timer, but will instead be triggered during the matrix scan. In this case, breathing is not supported, and the backlight might flicker, because the PWM computation may not be called with enough timing precision. - -### AVR Configuration - -To change the behavior of the backlighting, `#define` these in your `config.h`: - -|Define |Default |Description | -|---------------------|-------------|-------------------------------------------------------------------------------------------------------------| -|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this| -|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information | -|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) | -|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) | -|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported | -|`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 On State - -Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*. -Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead. - -This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define. - -### Multiple backlight pins - -Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin). -In software PWM, it is possible to define multiple backlight pins. All those pins will be turned on and off at the same time during the PWM duty cycle. -This feature allows to set for instance the Caps Lock LED (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped LCTRL in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on. - -To activate multiple backlight pins, you need to add something like this to your user `config.h`: - -```c -#define BACKLIGHT_LED_COUNT 2 -#undef BACKLIGHT_PIN -#define BACKLIGHT_PINS { F5, B2 } -``` +When both timers are in use for Audio, the backlight PWM cannot use a hardware timer, and will instead be triggered during the matrix scan. In this case, breathing is not supported, and the backlight might flicker, because the PWM computation may not be called with enough timing precision. -### Hardware PWM Implementation +#### Hardware PWM Implementation :id=hardware-pwm-implementation When using the supported pins for backlighting, QMK will use a hardware timer configured to output a PWM signal. This timer will count up to `ICRx` (by default `0xFFFF`) before resetting to 0. The desired brightness is calculated and stored in the `OCRxx` register. When the counter reaches this value, the backlight pin will go low, and is pulled high again when the counter resets. @@ -159,7 +127,7 @@ In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus th The breathing effect is achieved by registering an interrupt handler for `TIMER1_OVF_vect` that is called whenever the counter resets, roughly 244 times per second. In this handler, the value of an incrementing counter is mapped onto a precomputed brightness curve. To turn off breathing, the interrupt handler is simply disabled, and the brightness reset to the level stored in EEPROM. -### Timer Assisted PWM Implementation +#### Timer Assisted PWM Implementation :id=timer-assisted-implementation When `BACKLIGHT_PIN` is not set to a hardware backlight pin, QMK will use a hardware timer configured to trigger software interrupts. This time will count up to `ICRx` (by default `0xFFFF`) before resetting to 0. When resetting to 0, the CPU will fire an OVF (overflow) interrupt that will turn the LEDs on, starting the duty cycle. @@ -168,81 +136,84 @@ In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus th The breathing effect is the same as in the hardware PWM implementation. -## ARM Driver +### ARM Driver :id=arm-configuration + +While still in its early stages, ARM backlight support aims to eventually have feature parity with AVR. The `pwm` driver is configured by default, however the equivalent setting within `rules.mk` would be: -While still in its early stages, ARM backlight support aims to eventually have feature parity with AVR. The driver is configured by default, however the equivalent setting within rules.mk would be: ```makefile BACKLIGHT_DRIVER = pwm ``` -### Caveats +#### ChibiOS Configuration :id=arm-configuration -Currently only hardware PWM is supported, not timer assisted, and does not provide automatic configuration. +The following `#define`s apply only to ARM-based keyboards: -?> Backlight support for STMF072 has had limited testing, YMMV. If unsure, set `BACKLIGHT_ENABLE = no` in your rules.mk. +|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| -### ARM Configuration +See the ST datasheet for your particular MCU to determine these values. Unless you are designing your own keyboard, you generally should not need to change them. -To change the behavior of the backlighting, `#define` these in your `config.h`: +#### Caveats :id=arm-caveats -|Define |Default |Description | -|------------------------|-------------|-------------------------------------------------------------------------------------------------------------| -|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this| -|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use, see ST datasheets for pin to PWM timer mapping. Unless you are designing your own keyboard, you shouldn't need to change this| -|`BACKLIGHT_PWM_CHANNEL` |`3` |The PWM channel to use, see ST datasheets for pin to PWM channel mapping. Unless you are designing your own keyboard, you shouldn't need to change this| -|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use, see ST datasheets for pin AF mapping. Unless you are designing your own keyboard, you shouldn't need to change this| +Currently only hardware PWM is supported, not timer assisted, and does not provide automatic configuration. + +?> Backlight support for STM32F072 has had limited testing, so YMMV. If unsure, set `BACKLIGHT_ENABLE = no` in your `rules.mk`. + +### Software PWM Driver :id=software-pwm-driver -## Software PWM Driver :id=software-pwm-driver +In this mode, PWM is "emulated" while running other keyboard tasks. It offers maximum hardware compatibility without extra platform configuration. The tradeoff is the backlight might jitter when the keyboard is busy. To enable, add this to your `rules.mk`: -Emulation of PWM while running other keyboard tasks, it offers maximum hardware compatibility without extra platform configuration. The tradeoff is the backlight might jitter when the keyboard is busy. To enable, add this to your rules.mk: ```makefile BACKLIGHT_DRIVER = software ``` -### Software PWM Configuration - -To change the behavior of the backlighting, `#define` these in your `config.h`: - -|Define |Default |Description | -|-----------------|-------------|-------------------------------------------------------------------------------------------------------------| -|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this| -|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information | - -### Multiple backlight pins +#### Multiple Backlight Pins :id=multiple-backlight-pins Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin). -In software PWM, it is possible to define multiple backlight pins. All those pins will be turned on and off at the same time during the PWM duty cycle. -This feature allows to set for instance the Caps Lock LED (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped LCTRL in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on. +In software PWM, it is possible to define multiple backlight pins, which will be turned on and off at the same time during the PWM duty cycle. + +This feature allows to set, for instance, the Caps Lock LED's (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped Control in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on, as it is usually wired to a separate pin from the backlight. -To activate multiple backlight pins, you need to add something like this to your user `config.h`: +To activate multiple backlight pins, add something like this to your `config.h`, instead of `BACKLIGHT_PIN`: ```c -#undef BACKLIGHT_PIN #define BACKLIGHT_PINS { F5, B2 } ``` -## Custom Driver +### Custom Driver :id=custom-driver -To enable, add this to your rules.mk: +If none of the above drivers apply to your board (for example, you are using a separate IC to control the backlight), you can implement a custom backlight driver using this simple API provided by QMK. To enable, add this to your `rules.mk`: ```makefile BACKLIGHT_DRIVER = custom ``` -When implementing the custom driver API, the provided keyboard hooks are as follows: +Then implement any of these hooks: ```c void backlight_init_ports(void) { - // Optional - Run on startup - // - usually you want to configure pins here + // Optional - runs on startup + // Usually you want to configure pins here } void backlight_set(uint8_t level) { - // Optional - Run on level change - // - usually you want to respond to the new value + // Optional - runs on level change + // Usually you want to respond to the new value } void backlight_task(void) { - // Optional - Run periodically - // - long running actions here can cause performance issues + // Optional - runs periodically + // Note that this is called in the main keyboard loop, + // so long running actions here can cause performance issues } ``` + +## Example Schematic + +In this typical example, the backlight LEDs are all connected in parallel towards an N-channel MOSFET. Its gate pin is wired to one of the microcontroller's GPIO pins through a 470Ω resistor to avoid ringing. +A pulldown resistor is also placed between the gate pin and ground to keep it at a defined state when it is not otherwise being driven by the MCU. +The values of these resistors are not critical - see [this Electronics StackExchange question](https://electronics.stackexchange.com/q/68748) for more information. + +![Backlight example circuit](https://i.imgur.com/BmAvoUC.png) From 3ff635b9a8285a45805d8b854a84674e74983376 Mon Sep 17 00:00:00 2001 From: moseschmiedel <58808540+moseschmiedel@users.noreply.github.com> Date: Sat, 4 Jul 2020 01:27:56 +0200 Subject: [PATCH 142/154] Add missing dependency for Void Linux to util/linux-install.sh (#9637) --- util/linux_install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/util/linux_install.sh b/util/linux_install.sh index 43044f85cb33..0343b07e6f6f 100755 --- a/util/linux_install.sh +++ b/util/linux_install.sh @@ -220,6 +220,7 @@ elif grep ID /etc/os-release | grep -q void; then dfu-util \ gcc \ git \ + libusb-compat-devel \ make \ wget \ unzip \ From 063a74b660ee782ad4128907121ece459e417963 Mon Sep 17 00:00:00 2001 From: kwlodarczy <64139515+kwlodarczy@users.noreply.github.com> Date: Sat, 4 Jul 2020 05:48:37 +0100 Subject: [PATCH 143/154] Rotr - Updated README and default keymap (#9598) --- keyboards/rotr/keymaps/default/keymap.c | 2 +- keyboards/rotr/readme.md | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/keyboards/rotr/keymaps/default/keymap.c b/keyboards/rotr/keymaps/default/keymap.c index cceb126461c6..c3164e861b9a 100644 --- a/keyboards/rotr/keymaps/default/keymap.c +++ b/keyboards/rotr/keymaps/default/keymap.c @@ -1,7 +1,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT( + [0] = LAYOUT( KC_MPRV, KC_MPLY, KC_MNXT ) }; diff --git a/keyboards/rotr/readme.md b/keyboards/rotr/readme.md index a3e943fd3d6c..c422d0876241 100644 --- a/keyboards/rotr/readme.md +++ b/keyboards/rotr/readme.md @@ -8,10 +8,13 @@ A macro pad with a multipurpose knob. * Hardware: [Geekhack](https://geekhack.org/index.php?topic=107104.0) ## Features: -* Minimal design with plug and play functionality. -* Frictionless, solid brass knob. -* Hot swappable switches. -* USB C connection. +* Will ship pre-programmed and ready to use +* Hot swap sockets +* USB C +* RGB LEDs for switches +* CNC milled aluminium case +* Solid brass knob +* Free spinning magnetic rotary encoder Make example for this keyboard (after setting up your build environment): From b30d0361c52ac3b0c0ae2c4a6f90d1666a767a86 Mon Sep 17 00:00:00 2001 From: Olli Date: Sat, 4 Jul 2020 12:43:52 +0200 Subject: [PATCH 144/154] =?UTF-8?q?Fix=20=E2=80=9CG=E2=80=9D=20in=20Neo2?= =?UTF-8?q?=20keymap=20(#9645)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix duplicated “NE_H” definition to use “NE_G” in Neo2 keymap, introduced with commit 44ff14f. --- quantum/keymap_extras/keymap_neo2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/keymap_extras/keymap_neo2.h b/quantum/keymap_extras/keymap_neo2.h index 8e6e2b77a220..c34e9116bbd7 100644 --- a/quantum/keymap_extras/keymap_neo2.h +++ b/quantum/keymap_extras/keymap_neo2.h @@ -55,7 +55,7 @@ #define NE_W KC_T // W #define NE_K KC_Y // K #define NE_H KC_U // H -#define NE_H KC_I // G +#define NE_G KC_I // G #define NE_F KC_O // F #define NE_Q KC_P // Q #define NE_SS KC_LBRC // ß From 13a8d1681ca89b14931b0f9246dad4a4f60705fa Mon Sep 17 00:00:00 2001 From: Sam Gowland <10119462+SamGowland@users.noreply.github.com> Date: Sat, 4 Jul 2020 11:51:42 +0100 Subject: [PATCH 145/154] [Keyboard] Gowla Macro Board (#9643) Co-authored-by: Ryan Co-authored-by: Erovia --- keyboards/gowla/config.h | 38 ++++++++++++++++++++++++ keyboards/gowla/gowla.c | 1 + keyboards/gowla/gowla.h | 13 ++++++++ keyboards/gowla/info.json | 24 +++++++++++++++ keyboards/gowla/keymaps/default/keymap.c | 14 +++++++++ keyboards/gowla/readme.md | 15 ++++++++++ keyboards/gowla/rules.mk | 31 +++++++++++++++++++ 7 files changed, 136 insertions(+) create mode 100644 keyboards/gowla/config.h create mode 100644 keyboards/gowla/gowla.c create mode 100644 keyboards/gowla/gowla.h create mode 100644 keyboards/gowla/info.json create mode 100644 keyboards/gowla/keymaps/default/keymap.c create mode 100644 keyboards/gowla/readme.md create mode 100644 keyboards/gowla/rules.mk diff --git a/keyboards/gowla/config.h b/keyboards/gowla/config.h new file mode 100644 index 000000000000..65fd8ca1e73e --- /dev/null +++ b/keyboards/gowla/config.h @@ -0,0 +1,38 @@ +/* +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xE9B6 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Gowla +#define PRODUCT Gowla Macro Board +#define DESCRIPTION 3x3 PCB + +/* Matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 3 + +/* Pin-out */ +#define MATRIX_ROW_PINS { D1, D0, D4 } +#define MATRIX_COL_PINS { B5, B4, E6 } +#define UNUSED_PINS + +/* ROW2COL */ +#define DIODE_DIRECTION ROW2COL diff --git a/keyboards/gowla/gowla.c b/keyboards/gowla/gowla.c new file mode 100644 index 000000000000..13781bce3c42 --- /dev/null +++ b/keyboards/gowla/gowla.c @@ -0,0 +1 @@ +#include "gowla.h" diff --git a/keyboards/gowla/gowla.h b/keyboards/gowla/gowla.h new file mode 100644 index 000000000000..fa98c1f403bf --- /dev/null +++ b/keyboards/gowla/gowla.h @@ -0,0 +1,13 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_3x3( \ + k00, k01, k02, \ + k10, k11, k12, \ + k20, k21, k22 \ +) { \ + { k00, k01, k02 }, \ + { k10, k11, k12 }, \ + { k20, k21, k22 } \ +} diff --git a/keyboards/gowla/info.json b/keyboards/gowla/info.json new file mode 100644 index 000000000000..4d1a5e1673c3 --- /dev/null +++ b/keyboards/gowla/info.json @@ -0,0 +1,24 @@ +{ + "keyboard_name": "Gowla Macro Pad", + "url": "https://github.com/SamGowland/Gowla-Macro-Board", + "maintainer": "Gowla", + "width": 3, + "height": 3, + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/gowla/keymaps/default/keymap.c b/keyboards/gowla/keymaps/default/keymap.c new file mode 100644 index 000000000000..326c8f0e91a5 --- /dev/null +++ b/keyboards/gowla/keymaps/default/keymap.c @@ -0,0 +1,14 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x3( + LT(1, KC_MPRV), KC_MNXT, KC_MPLY, + KC_VOLD, KC_UP, KC_VOLU, + KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ortho_3x3( + KC_ESC, KC_MPLY, RESET, + KC_P7, KC_P1, KC_F1, + KC_F2, KC_F3, KC_F4 + ) +}; diff --git a/keyboards/gowla/readme.md b/keyboards/gowla/readme.md new file mode 100644 index 000000000000..caf27c75ff91 --- /dev/null +++ b/keyboards/gowla/readme.md @@ -0,0 +1,15 @@ +# Gowla Macro Board + +![Gowla](https://github.com/SamGowland/Gowla-Macro-Board/blob/master/Images/comp.jpg) + +Simple Compact 3x3 Macro Board for use with QMK, designed and sold by Gowla. + +* Keyboard Maintainer: [Gowla](https://github.com/SamGowland/) +* Hardware Supported: Pro Micro ATmega32U4, Cherry Mount Switches +* Hardware Availability: [Repo](https://github.com/SamGowland/Gowla-Macro-Board) + +Make example for this keyboard (after setting up your build environment): + + make gowla: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/gowla/rules.mk b/keyboards/gowla/rules.mk new file mode 100644 index 000000000000..19b6f44b8f93 --- /dev/null +++ b/keyboards/gowla/rules.mk @@ -0,0 +1,31 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# 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 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 = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches From 5c8b23ccffa0083752044f0459e6ac3114ce6e52 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat, 4 Jul 2020 23:04:47 +0900 Subject: [PATCH 146/154] add SPLIT_HAND_MATRIX_GRID support (#8685) Co-authored-by: Danny --- docs/config_options.md | 5 ++++- docs/feature_split_keyboard.md | 18 ++++++++++++++++++ quantum/split_common/split_util.c | 24 ++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/docs/config_options.md b/docs/config_options.md index ab26fd46ce1e..21c9972e0464 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -250,7 +250,10 @@ There are a few different ways to set handedness for split keyboards (listed in * `#define SPLIT_HAND_PIN B7` * For using high/low pin to determine handedness, low = right hand, high = left hand. Replace `B7` with the pin you are using. This is optional, and if you leave `SPLIT_HAND_PIN` undefined, then you can still use the EE_HANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses. -* `#define EE_HANDS` (only works if `SPLIT_HAND_PIN` is not defined) +* `#define SPLIT_HAND_MATRIX_GRID ,` + * The handedness is determined by using the intersection of the keyswitches in the key matrix, which does not exist. Normally, when this intersection is shorted (level low), it is considered left. If you define `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT`, it is determined to be right when the level is low. + +* `#define EE_HANDS` (only works if `SPLIT_HAND_PIN` and `SPLIT_HAND_MATRIX_GRID` are not defined) * Reads the handedness value stored in the EEPROM after `eeprom-lefthand.eep`/`eeprom-righthand.eep` has been flashed to their respective halves. * `#define MASTER_RIGHT` diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md index 63374a804e29..ce470b996470 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/feature_split_keyboard.md @@ -90,6 +90,24 @@ You can configure the firmware to read a pin on the controller to determine hand This will read the specified pin. If it's high, then the controller assumes it is the left hand, and if it's low, it's assumed to be the right side. +#### Handedness by Matrix Pin + +You can configure the firmware to read key matrix pins on the controller to determine handedness. To do this, add the following to your `config.h` file: + +```c +#define SPLIT_HAND_MATRIX_GRID D0, F1 +``` + +The first pin is the output pin and the second is the input pin. + +Some keyboards have unused intersections in the key matrix. This setting uses one of these unused intersections to determine the handness. + +Normally, when a diode is connected to an intersection, it is judged to be left. If you add the following definition, it will be judged to be right. + +```c +#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT +``` + #### Handedness by EEPROM This method sets the keyboard's handedness by setting a flag in the persistent storage (`EEPROM`). This is checked when the controller first starts up, and determines what half the keyboard is, and how to orient the keyboard layout. diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index afcd9d2aa586..90735eda4423 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -5,6 +5,7 @@ #include "timer.h" #include "transport.h" #include "quantum.h" +#include "wait.h" #ifdef PROTOCOL_LUFA # include @@ -82,11 +83,34 @@ static inline bool usbIsActive(void) { static inline bool usbIsActive(void) { return true; } #endif +#ifdef SPLIT_HAND_MATRIX_GRID +void matrix_io_delay(void); + +static uint8_t peek_matrix_intersection(pin_t out_pin, pin_t in_pin) { + setPinInputHigh(in_pin); + setPinOutput(out_pin); + writePinLow(out_pin); + // It's almost unnecessary, but wait until it's down to low, just in case. + wait_us(1); + uint8_t pin_state = readPin(in_pin); + // Set out_pin to a setting that is less susceptible to noise. + setPinInputHigh(out_pin); + matrix_io_delay(); // Wait for the pull-up to go HIGH. + return pin_state; +} +#endif + __attribute__((weak)) bool is_keyboard_left(void) { #if defined(SPLIT_HAND_PIN) // Test pin SPLIT_HAND_PIN for High/Low, if low it's right hand setPinInput(SPLIT_HAND_PIN); return readPin(SPLIT_HAND_PIN); +#elif defined(SPLIT_HAND_MATRIX_GRID) +# ifdef SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT + return peek_matrix_intersection(SPLIT_HAND_MATRIX_GRID); +# else + return !peek_matrix_intersection(SPLIT_HAND_MATRIX_GRID); +# endif #elif defined(EE_HANDS) return eeconfig_read_handedness(); #elif defined(MASTER_RIGHT) From c2ca57c8f4defd8fc7b7911cc1ba1e49f3d483e1 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat, 4 Jul 2020 23:20:49 +0900 Subject: [PATCH 147/154] add DIP_SWITCH_MATRIX_GRID support (#8772) * dipsw test on helix/rev2/sc/back:five_rows * add peek_matrix() to matrix_common.c * add DIP_SWITCH_MATRIX_GRID support to quantum/dip_switch.c * update docs/feature_dip_switch.md about DIP_SWITCH_MATRIX_GRID * Test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows" This reverts commit 6d4304c74557597c9fb4d324f79c3ae4793ae874. --- docs/feature_dip_switch.md | 14 ++++++++++ quantum/dip_switch.c | 52 +++++++++++++++++++++++++++++++++++--- quantum/matrix_common.c | 5 ++++ 3 files changed, 67 insertions(+), 4 deletions(-) diff --git a/docs/feature_dip_switch.md b/docs/feature_dip_switch.md index bce47fed88c8..15e449c4c465 100644 --- a/docs/feature_dip_switch.md +++ b/docs/feature_dip_switch.md @@ -7,9 +7,17 @@ DIP switches are supported by adding this to your `rules.mk`: and this to your `config.h`: ```c +// Connects each switch in the dip switch to the GPIO pin of the MCU #define DIP_SWITCH_PINS { B14, A15, A10, B9 } ``` +or + +```c +// Connect each switch in the DIP switch to an unused intersections in the key matrix. +#define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {2,6} } // List of row and col pairs +``` + ## Callbacks The callback functions can be inserted into your `.c`: @@ -87,4 +95,10 @@ void dip_switch_update_mask_user(uint32_t state) { ## Hardware +### Connects each switch in the dip switch to the GPIO pin of the MCU + One side of the DIP switch should be wired directly to the pin on the MCU, and the other side to ground. It should not matter which side is connected to which, as it should be functionally the same. + +### Connect each switch in the DIP switch to an unused intersections in the key matrix. + +As with the keyswitch, a diode and DIP switch connect the ROW line to the COL line. diff --git a/quantum/dip_switch.c b/quantum/dip_switch.c index 66c166ce45d2..879326d21f23 100644 --- a/quantum/dip_switch.c +++ b/quantum/dip_switch.c @@ -21,12 +21,31 @@ // for memcpy #include -#if !defined(DIP_SWITCH_PINS) -# error "No DIP switch pads defined by DIP_SWITCH_PINS" +#if !defined(DIP_SWITCH_PINS) && !defined(DIP_SWITCH_MATRIX_GRID) +# error "Either DIP_SWITCH_PINS or DIP_SWITCH_MATRIX_GRID must be defined." #endif -#define NUMBER_OF_DIP_SWITCHES (sizeof(dip_switch_pad) / sizeof(pin_t)) -static pin_t dip_switch_pad[] = DIP_SWITCH_PINS; +#if defined(DIP_SWITCH_PINS) && defined(DIP_SWITCH_MATRIX_GRID) +# error "Both DIP_SWITCH_PINS and DIP_SWITCH_MATRIX_GRID are defined." +#endif + +#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 + +#ifdef DIP_SWITCH_MATRIX_GRID +typedef struct matrix_index_t { + uint8_t row; + uint8_t col; +} matrix_index_t; + +# define NUMBER_OF_DIP_SWITCHES (sizeof(dip_switch_pad) / sizeof(matrix_index_t)) +static matrix_index_t dip_switch_pad[] = DIP_SWITCH_MATRIX_GRID; +extern bool peek_matrix(uint8_t row_index, uint8_t col_index, bool read_raw); +static uint16_t scan_count; +#endif /* DIP_SWITCH_MATRIX_GRID */ + static bool dip_switch_state[NUMBER_OF_DIP_SWITCHES] = {0}; static bool last_dip_switch_state[NUMBER_OF_DIP_SWITCHES] = {0}; @@ -39,18 +58,43 @@ __attribute__((weak)) void dip_switch_update_mask_user(uint32_t state) {} __attribute__((weak)) void dip_switch_update_mask_kb(uint32_t state) { dip_switch_update_mask_user(state); } void dip_switch_init(void) { +#ifdef DIP_SWITCH_PINS for (uint8_t i = 0; i < NUMBER_OF_DIP_SWITCHES; i++) { setPinInputHigh(dip_switch_pad[i]); } dip_switch_read(true); +#endif +#ifdef DIP_SWITCH_MATRIX_GRID + scan_count = 0; +#endif } void dip_switch_read(bool forced) { bool has_dip_state_changed = false; uint32_t dip_switch_mask = 0; +#ifdef DIP_SWITCH_MATRIX_GRID + bool read_raw = false; + + if (scan_count < 500) { + scan_count ++; + if (scan_count == 10) { + read_raw = true; + forced = true; /* First reading of the dip switch */ + } else { + return; + } + } +#endif + for (uint8_t i = 0; i < NUMBER_OF_DIP_SWITCHES; i++) { +#ifdef DIP_SWITCH_PINS dip_switch_state[i] = !readPin(dip_switch_pad[i]); +#endif +#ifdef DIP_SWITCH_MATRIX_GRID + dip_switch_state[i] = peek_matrix(dip_switch_pad[i].row, dip_switch_pad[i].col, + read_raw); +#endif dip_switch_mask |= dip_switch_state[i] << i; if (last_dip_switch_state[i] != dip_switch_state[i] || forced) { has_dip_state_changed = true; diff --git a/quantum/matrix_common.c b/quantum/matrix_common.c index de62b8070565..e7d2dbb2945f 100644 --- a/quantum/matrix_common.c +++ b/quantum/matrix_common.c @@ -112,3 +112,8 @@ __attribute__((weak)) uint8_t matrix_scan(void) { matrix_scan_quantum(); return changed; } + +__attribute__((weak)) bool peek_matrix(uint8_t row_index, uint8_t col_index, bool raw) { + return 0 != ( (raw? raw_matrix[row_index]:matrix[row_index]) + & (MATRIX_ROW_SHIFTER << col_index)); +} From 355f075b5766da18129027128de9cdfbe674f6af Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Sat, 4 Jul 2020 15:01:25 +0000 Subject: [PATCH 148/154] format code according to conventions [skip ci] --- quantum/dip_switch.c | 17 ++++++++--------- quantum/matrix_common.c | 5 +---- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/quantum/dip_switch.c b/quantum/dip_switch.c index 879326d21f23..cda69bd0ef70 100644 --- a/quantum/dip_switch.c +++ b/quantum/dip_switch.c @@ -42,12 +42,12 @@ typedef struct matrix_index_t { # define NUMBER_OF_DIP_SWITCHES (sizeof(dip_switch_pad) / sizeof(matrix_index_t)) static matrix_index_t dip_switch_pad[] = DIP_SWITCH_MATRIX_GRID; -extern bool peek_matrix(uint8_t row_index, uint8_t col_index, bool read_raw); -static uint16_t scan_count; +extern bool peek_matrix(uint8_t row_index, uint8_t col_index, bool read_raw); +static uint16_t scan_count; #endif /* DIP_SWITCH_MATRIX_GRID */ -static bool dip_switch_state[NUMBER_OF_DIP_SWITCHES] = {0}; -static bool last_dip_switch_state[NUMBER_OF_DIP_SWITCHES] = {0}; +static bool dip_switch_state[NUMBER_OF_DIP_SWITCHES] = {0}; +static bool last_dip_switch_state[NUMBER_OF_DIP_SWITCHES] = {0}; __attribute__((weak)) void dip_switch_update_user(uint8_t index, bool active) {} @@ -74,13 +74,13 @@ void dip_switch_read(bool forced) { uint32_t dip_switch_mask = 0; #ifdef DIP_SWITCH_MATRIX_GRID - bool read_raw = false; + bool read_raw = false; if (scan_count < 500) { - scan_count ++; + scan_count++; if (scan_count == 10) { read_raw = true; - forced = true; /* First reading of the dip switch */ + forced = true; /* First reading of the dip switch */ } else { return; } @@ -92,8 +92,7 @@ void dip_switch_read(bool forced) { dip_switch_state[i] = !readPin(dip_switch_pad[i]); #endif #ifdef DIP_SWITCH_MATRIX_GRID - dip_switch_state[i] = peek_matrix(dip_switch_pad[i].row, dip_switch_pad[i].col, - read_raw); + dip_switch_state[i] = peek_matrix(dip_switch_pad[i].row, dip_switch_pad[i].col, read_raw); #endif dip_switch_mask |= dip_switch_state[i] << i; if (last_dip_switch_state[i] != dip_switch_state[i] || forced) { diff --git a/quantum/matrix_common.c b/quantum/matrix_common.c index e7d2dbb2945f..15f1e0e82e76 100644 --- a/quantum/matrix_common.c +++ b/quantum/matrix_common.c @@ -113,7 +113,4 @@ __attribute__((weak)) uint8_t matrix_scan(void) { return changed; } -__attribute__((weak)) bool peek_matrix(uint8_t row_index, uint8_t col_index, bool raw) { - return 0 != ( (raw? raw_matrix[row_index]:matrix[row_index]) - & (MATRIX_ROW_SHIFTER << col_index)); -} +__attribute__((weak)) bool peek_matrix(uint8_t row_index, uint8_t col_index, bool raw) { return 0 != ((raw ? raw_matrix[row_index] : matrix[row_index]) & (MATRIX_ROW_SHIFTER << col_index)); } From 29ebb99b1f5dff19a2c7dc3c93c7c95e9e9986be Mon Sep 17 00:00:00 2001 From: yanekm Date: Sat, 4 Jul 2020 18:50:01 -0400 Subject: [PATCH 149/154] fixed link to Eclipse instructions (#9647) --- docs/reference_glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference_glossary.md b/docs/reference_glossary.md index 4cdba024e469..1da27ff24fd8 100644 --- a/docs/reference_glossary.md +++ b/docs/reference_glossary.md @@ -41,7 +41,7 @@ A macro which has been recorded on the keyboard and which will be lost when the ## Eclipse An IDE that is popular with many C developers. -* [Eclipse Setup Instructions](eclipse.md) +* [Eclipse Setup Instructions](other_eclipse.md) ## Firmware The software that controls your MCU. From 83bc0b9e80ddbc3d494fb5fa348e601e90f08f01 Mon Sep 17 00:00:00 2001 From: paulgali Date: Sun, 5 Jul 2020 06:20:22 +0400 Subject: [PATCH 150/154] [Keyboard] Updated VIA Support for DP60 (#9508) * Updated VIA Support - Added LAYOUT_all Support for VIA compatibility - Updated default dp60\layouts\via\keymap.c to mmirror changes to LAYOUT_all - Rules.mk updated in both base and via directories. Co-authored-by: Ryan Co-authored-by: Joel Challis --- keyboards/dp60/config.h | 2 +- keyboards/dp60/dp60.h | 45 +++++++++++++++++++++++++++- keyboards/dp60/keymaps/via/keymap.c | 46 ++++++++++++++--------------- keyboards/dp60/keymaps/via/rules.mk | 1 + keyboards/dp60/rules.mk | 4 +-- 5 files changed, 71 insertions(+), 27 deletions(-) diff --git a/keyboards/dp60/config.h b/keyboards/dp60/config.h index 3875d303ea49..2bedf51970ba 100644 --- a/keyboards/dp60/config.h +++ b/keyboards/dp60/config.h @@ -11,7 +11,7 @@ #define PRODUCT_ID 0x00BE #define DEVICE_VER 0x0001 #define MANUFACTURER astro -#define PRODUCT Dumplings +#define PRODUCT DP60 #define DESCRIPTION 60% rgb keyboard with ble extension /* key matrix size */ diff --git a/keyboards/dp60/dp60.h b/keyboards/dp60/dp60.h index 32bbb6dc0c6f..a197ac2fa3a0 100644 --- a/keyboards/dp60/dp60.h +++ b/keyboards/dp60/dp60.h @@ -9,6 +9,49 @@ // This a shortcut to help you visually see your layout. // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array + // Matrix layout to accomodate all layouts. Good for VIA mapping correctly, and it doesnt exist yet + // + //┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──────┐ + //│0A││0B││0C││0D││0E││0F││0G││4H││0H││0I││0J││0K││0L││0M││0N│ │ 0N │ split backspace support + //└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘ └──────┘ + // 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0e + //┌────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌────┐ ┌────┐ + //│1A ││1B││1C││1D││1E││1F││1G││1H││1I││1J││1K││1L││1M││1N │ │ │ iso enter - see below + //└────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└────┘ └────┘ + // 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1e + //┌─────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌───────┐ ┌──┐┌──┐ + //│ 2A ││2B││2C││2D││2E││2F││2G││2H││2I││2J││2K││2L││ 2N │ │2M││2N│ iso enter + //└─────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└───────┘ └──┘└──┘ + // 20 22 23 24 25 26 27 28 29 2a 2b 2c 2e 2d 2e + //┌───────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌─────────┐ + //│3A │ 3B││3C││3D││3E││3F││3G││3H││3I││3J││3K││3L││ 3M │3N│ split shifts (left and right) + //└───────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└─────────┘ + // 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d + //┌───┐┌───┐┌───┐┌───────────────────────┐┌───┐┌───┐┌───┐┌───┐ + //│4A ││4B ││4C ││ 4G ││4K ││4L ││4M ││4N │ wkl/hhkb use 4L (k49), 4M (k4a) , 4N (k4b) + //└───┘└───┘└───┘└───────────────────────┘└───┘└───┘└───┘└───┘ + // 40 42 43 47 48 49 4a 4b + //end of mapping +// +//added k0d +//added k2d KC_NUMS for iso +//added k31 split l-shift, k3d split r-shift + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ +k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ +k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ +k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ +k40, k42, k43, k47, k48, k49, k4a, k4b \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e}, \ + {k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, k48, k49, k4a, k4b} \ +} + #define LAYOUT_60_ansi( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ @@ -28,7 +71,7 @@ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c,\ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ k40, k42, k43, k47, k48, k49, k4a, k4b \ ) \ { \ diff --git a/keyboards/dp60/keymaps/via/keymap.c b/keyboards/dp60/keymaps/via/keymap.c index 8227055766eb..1742f17b50c5 100644 --- a/keyboards/dp60/keymaps/via/keymap.c +++ b/keyboards/dp60/keymaps/via/keymap.c @@ -1,31 +1,31 @@ #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_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,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, TG(1), KC_RCTL), - - [1] = LAYOUT_60_ansi_split_bs_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_PSCR, - RESET, RGB_TOG,RGB_MOD,_______,_______,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, - _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME,KC_END,_______, - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______, _______, _______,_______,TG(0),_______), + [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_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,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_RGUI,KC_RALT, MO(1), KC_RCTL), - [2] = LAYOUT_60_ansi_split_bs_rshift( + [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, + RESET, _______,KC_UP,_______,_______,_______,_______,_______,KC_PAUS,KC_SLCK,KC_PSCR,KC_PGUP,_______,KC_INS, + _______, KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______, _______,_______,KC_HOME,KC_END,_______, _______, + _______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_PGDN,_______,_______, + _______,_______,_______, _______, _______,MO(2),TG(0),_______), + + [2] = LAYOUT_all( _______, _______,_______, _______,_______, _______,_______, _______,_______, _______,_______, _______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______, _______, _______,_______,_______,_______), + _______, _______,KC_VOLU,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + KC_MUTE, KC_MPRV,KC_VOLD,KC_MNXT,_______,_______,_______,_______, _______,_______,_______,_______,_______, _______, + _______, _______, RGB_TOG,RGB_MOD,RGB_RMOD,RGB_VAI,RGB_VAD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,_______,_______,_______, + _______,_______,_______, KC_MPLY, _______,_______,_______,_______), - [3] = LAYOUT_60_ansi_split_bs_rshift( + [3] = LAYOUT_all( _______, _______,_______, _______,_______, _______,_______, _______,_______, _______,_______, _______,_______,_______,_______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______,_______,_______, _______, _______,_______,_______,_______) -}; \ No newline at end of file + _______, _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______, _______, _______,_______,_______,_______) +}; diff --git a/keyboards/dp60/keymaps/via/rules.mk b/keyboards/dp60/keymaps/via/rules.mk index 36b7ba9cbc98..e4b4d91da9ae 100644 --- a/keyboards/dp60/keymaps/via/rules.mk +++ b/keyboards/dp60/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +RGBLIGHT_ENABLE = yes #enables underglow, but will not disable per key leds diff --git a/keyboards/dp60/rules.mk b/keyboards/dp60/rules.mk index 015e4fddb929..bcd6fb4c94ab 100644 --- a/keyboards/dp60/rules.mk +++ b/keyboards/dp60/rules.mk @@ -22,14 +22,14 @@ COMMAND_ENABLE = no # Commands for debug and configuration # 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 this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover +NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -#RGBLIGHT_ENABLE = yes # Use RGB underglow light +RGBLIGHT_ENABLE = no # Use RGB underglow light RGB_MATRIX_ENABLE = yes # Use RGB matrix LAYOUTS = 60_ansi 60_hhkb 60_iso 60_ansi_split_bs_rshift From ade3bdf7e746278057b51c11b2ac8cee366c391f Mon Sep 17 00:00:00 2001 From: siano Date: Sun, 5 Jul 2020 05:31:07 +0200 Subject: [PATCH 151/154] [Keyboard] XD87 Caps Lock LED refactor (#9585) --- keyboards/xd87/xd87.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/keyboards/xd87/xd87.c b/keyboards/xd87/xd87.c index e14480b054ae..a41b4f2dba01 100644 --- a/keyboards/xd87/xd87.c +++ b/keyboards/xd87/xd87.c @@ -36,16 +36,14 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return process_record_user(keycode, record); } -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - writePinLow(E2); - } else { - writePinHigh(E2); - } + if (res) { + writePin(E2, !led_state.caps_lock); + } - led_set_user(usb_led); + return res; } void led_init_ports(void) { From acb9cf12c46bfef7f542e44c06351aeced82bd89 Mon Sep 17 00:00:00 2001 From: Alabahuy Date: Sun, 5 Jul 2020 10:36:42 +0700 Subject: [PATCH 152/154] [Keyboard] RART67 : add support via (#9589) --- keyboards/rart/rart67/keymaps/via/keymap.c | 36 ++++++++++++++++++++++ keyboards/rart/rart67/keymaps/via/rules.mk | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 keyboards/rart/rart67/keymaps/via/keymap.c create mode 100644 keyboards/rart/rart67/keymaps/via/rules.mk diff --git a/keyboards/rart/rart67/keymaps/via/keymap.c b/keyboards/rart/rart67/keymaps/via/keymap.c new file mode 100644 index 000000000000..cfb8e06a320e --- /dev/null +++ b/keyboards/rart/rart67/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +#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_DEL, 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_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, _______, + RESET, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_P7, KC_P8, KC_P9, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, KC_P1, KC_P2, KC_P3, KC_VOLU, _______, + _______, _______, _______, _______, _______, KC_P0, KC_MPRV, KC_VOLD, KC_MNXT + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/rart/rart67/keymaps/via/rules.mk b/keyboards/rart/rart67/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/rart/rart67/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes From da5aed6beffeaf67eb6f05bbbe4ca75ecde2ebfb Mon Sep 17 00:00:00 2001 From: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Sat, 4 Jul 2020 23:51:37 -0400 Subject: [PATCH 153/154] [Keymap] Add Alice rev2 to my userspace (#9600) --- users/stanrc85/rules.mk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/users/stanrc85/rules.mk b/users/stanrc85/rules.mk index 83cda852d84b..5fa3737a2530 100644 --- a/users/stanrc85/rules.mk +++ b/users/stanrc85/rules.mk @@ -25,4 +25,10 @@ ifeq ($(strip $(KEYBOARD)), projectkb/alice/rev1) VIA_ENABLE = yes LTO_ENABLE = no VELOCIKEY_ENABLE=yes +endif +ifeq ($(strip $(KEYBOARD)), projectkb/alice/rev2) + SRC += rgblight_layers.c + VIA_ENABLE = yes + LTO_ENABLE = no + VELOCIKEY_ENABLE=yes endif \ No newline at end of file From 85e20a5cf433c2164e3d0a5c8de8cbd5dfc4c6fe Mon Sep 17 00:00:00 2001 From: Brennan Vincent Date: Sun, 5 Jul 2020 12:20:46 -0400 Subject: [PATCH 154/154] Fix typo in freebsd_install.sh (#9655) --- util/freebsd_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/freebsd_install.sh b/util/freebsd_install.sh index 09669024cc0c..f5c78b556fb2 100755 --- a/util/freebsd_install.sh +++ b/util/freebsd_install.sh @@ -29,7 +29,7 @@ if [ $(id -u) = 0 ]; then else if command -v sudo > /dev/null 2>&1; then sudo pkg update - sudp pkg install -y ${packages} + sudo pkg install -y ${packages} else echo "Make sure you run setup as root first to install base OS dependencies..." echo ""