From 05990c9bda0ddbc0e622f12e88bec271958c864e Mon Sep 17 00:00:00 2001 From: zvecr Date: Fri, 5 Jul 2019 18:31:16 +0100 Subject: [PATCH 001/115] Small fix to allow board to override split keyboard master check --- quantum/split_common/split_util.c | 1 + 1 file changed, 1 insertion(+) diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index 09a307b8ed7..d7ed6989f63 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -32,6 +32,7 @@ bool is_keyboard_left(void) { return is_keyboard_master(); } +__attribute__((weak)) bool is_keyboard_master(void) { #ifdef __AVR__ From d5b01bd34b3fc39ccbb01a916d0902d9574ed617 Mon Sep 17 00:00:00 2001 From: Ethan Madden Date: Thu, 18 Jul 2019 06:55:31 -0700 Subject: [PATCH 002/115] Add prime_e keymap (#6350) --- .../prime_e/keymaps/jetpacktuxedo/keymap.c | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 keyboards/primekb/prime_e/keymaps/jetpacktuxedo/keymap.c diff --git a/keyboards/primekb/prime_e/keymaps/jetpacktuxedo/keymap.c b/keyboards/primekb/prime_e/keymaps/jetpacktuxedo/keymap.c new file mode 100644 index 00000000000..134d09c6bef --- /dev/null +++ b/keyboards/primekb/prime_e/keymaps/jetpacktuxedo/keymap.c @@ -0,0 +1,79 @@ +/* Copyright 2018 Holten Campbell + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_DEL, + LT(2, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(2, KC_ENT), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, LT(3, KC_B), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), LT(1, KC_SPC), KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = 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_TRNS, + KC_TRNS, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + 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_TRNS, + KC_TRNS, KC_UNDS, KC_PLUS, KC_COLN, KC_DQUO, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_DQUO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +void matrix_init_user(void) { + // set CapsLock LED to output and low + setPinOutput(B1); + writePinLow(B1); + // set NumLock LED to output and low + setPinOutput(B2); + writePinLow(B2); + // set ScrollLock LED to output and low + setPinOutput(B3); + writePinLow(B3); +} + +//function for layer indicator LED +uint32_t layer_state_set_user(uint32_t state) +{ + if (state & (1<<1)) { + writePinHigh(B1); + } else { + writePinLow(B1); + } + if (state & (1<<2)) { + writePinHigh(B2); + } else { + writePinLow(B2); + } + if (state & (1<<3)) { + writePinHigh(B3); + } else { + writePinLow(B3); + } + return state; +} From 5b4187ad1bdad6ec40d4f98c5342a22ab68cfabd Mon Sep 17 00:00:00 2001 From: fauxpark Date: Fri, 19 Jul 2019 00:45:00 +1000 Subject: [PATCH 003/115] Correct backlight on state docs (#6358) * Correct backlight on state docs * Reword to make it less confusing --- docs/feature_backlight.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md index 26a5078ca09..64c663076ba 100644 --- a/docs/feature_backlight.md +++ b/docs/feature_backlight.md @@ -73,8 +73,10 @@ To change the behaviour of the backlighting, `#define` these in your `config.h`: ## 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, *low*. -Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case you must `#define BACKLIGHT_ON_STATE 1`, so that when the transistor is on, the pin is driven *high* instead. +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 From 171f7c561b8217ab4169c36e31fcdc05012c4add Mon Sep 17 00:00:00 2001 From: Fred Silberberg Date: Thu, 18 Jul 2019 07:45:48 -0700 Subject: [PATCH 004/115] Add more layouts for the ergodash (#6336) --- keyboards/ergodash/rev1/info.json | 373 +++++++++++++++++++++++++++++- keyboards/ergodash/rev1/rev1.h | 163 +++++++++---- 2 files changed, 487 insertions(+), 49 deletions(-) diff --git a/keyboards/ergodash/rev1/info.json b/keyboards/ergodash/rev1/info.json index bcfbda6d33b..de8b0c070e0 100644 --- a/keyboards/ergodash/rev1/info.json +++ b/keyboards/ergodash/rev1/info.json @@ -1,13 +1,366 @@ { - "keyboard_name": "ErgoDash rev2", - "url": "", - "maintainer": "qmk", - "width": 18, - "height": 6.25, - "layouts": { - "LAYOUT": { - "key_count": 70, - "layout": [{"label":"L00", "x":0, "y":0.375}, {"label":"L01", "x":1, "y":0.375}, {"label":"L02", "x":2, "y":0.125}, {"label":"L03", "x":3, "y":0}, {"label":"L04", "x":4, "y":0.125}, {"label":"L05", "x":5, "y":0.25}, {"label":"L06", "x":6, "y":0.75}, {"label":"R00", "x":11, "y":0.75}, {"label":"R01", "x":12, "y":0.25}, {"label":"R02", "x":13, "y":0.125}, {"label":"R03", "x":14, "y":0}, {"label":"R04", "x":15, "y":0.125}, {"label":"R05", "x":16, "y":0.375}, {"label":"R06", "x":17, "y":0.375}, {"label":"L10", "x":0, "y":1.375}, {"label":"L11", "x":1, "y":1.375}, {"label":"L12", "x":2, "y":1.125}, {"label":"L13", "x":3, "y":1}, {"label":"L14", "x":4, "y":1.125}, {"label":"L15", "x":5, "y":1.25}, {"label":"L16", "x":6, "y":1.75}, {"label":"R10", "x":11, "y":1.75}, {"label":"R11", "x":12, "y":1.25}, {"label":"R12", "x":13, "y":1.125}, {"label":"R13", "x":14, "y":1}, {"label":"R14", "x":15, "y":1.125}, {"label":"R15", "x":16, "y":1.375}, {"label":"R16", "x":17, "y":1.375}, {"label":"L20", "x":0, "y":2.375}, {"label":"L21", "x":1, "y":2.375}, {"label":"L22", "x":2, "y":2.125}, {"label":"L23", "x":3, "y":2}, {"label":"L24", "x":4, "y":2.125}, {"label":"L25", "x":5, "y":2.25}, {"label":"L26", "x":6, "y":2.75}, {"label":"R20", "x":11, "y":2.75}, {"label":"R21", "x":12, "y":2.25}, {"label":"R22", "x":13, "y":2.125}, {"label":"R23", "x":14, "y":2}, {"label":"R24", "x":15, "y":2.125}, {"label":"R25", "x":16, "y":2.375}, {"label":"R26", "x":17, "y":2.375}, {"label":"L30", "x":0, "y":3.375}, {"label":"L31", "x":1, "y":3.375}, {"label":"L32", "x":2, "y":3.125}, {"label":"L33", "x":3, "y":3}, {"label":"L34", "x":4, "y":3.125}, {"label":"L35", "x":5, "y":3.25}, {"label":"L36", "x":6.5, "y":4.25}, {"label":"R30", "x":10.5, "y":4.25}, {"label":"R31", "x":12, "y":3.25}, {"label":"R32", "x":13, "y":3.125}, {"label":"R33", "x":14, "y":3}, {"label":"R34", "x":15, "y":3.125}, {"label":"R35", "x":16, "y":3.375}, {"label":"R36", "x":17, "y":3.375}, {"label":"L40", "x":0, "y":4.375}, {"label":"L41", "x":1, "y":4.375}, {"label":"L42", "x":2, "y":4.125}, {"label":"L43", "x":3, "y":4}, {"label":"L44", "x":5.5, "y":5.25}, {"label":"L45", "x":6.5, "y":5.25}, {"label":"L46", "x":7.5, "y":4.25, "h":2}, {"label":"R40", "x":9.5, "y":4.25, "h":2}, {"label":"R41", "x":10.5, "y":5.25}, {"label":"R42", "x":11.5, "y":5.25}, {"label":"R43", "x":14, "y":4}, {"label":"R44", "x":15, "y":4.125}, {"label":"R45", "x":16, "y":4.375}, {"label":"R46", "x":17, "y":4.375}] + "keyboard_name": "ErgoDash rev1.2", + "url": "", + "maintainer": "qmk", + "width": 19, + "height": 8.375, + "layouts": { + "LAYOUT_4key": { + "layout": [ + {"y": 0.375, "x": 0.5, "label": "L00"}, + {"y": 0.375, "x": 1.5, "label": "L01"}, + {"y": 0.125, "x": 2.5, "label": "L02"}, + {"y": 0, "x": 3.5, "label": "L03"}, + {"y": 0.125, "x": 4.5, "label": "L04"}, + {"y": 0.25, "x": 5.5, "label": "L05"}, + {"y": 0.75, "x": 6.5, "label": "L06"}, + {"y": 0.75, "x": 12, "label": "R00"}, + {"y": 0.25, "x": 13, "label": "R01"}, + {"y": 0.125, "x": 14, "label": "R02"}, + {"y": 0, "x": 15, "label": "R03"}, + {"y": 0.125, "x": 16, "label": "R04"}, + {"y": 0.375, "x": 17, "label": "R05"}, + {"y": 0.375, "x": 18, "label": "R06"}, + {"y": 1.375, "x": 0.5, "label": "L10"}, + {"y": 1.375, "x": 1.5, "label": "L11"}, + {"y": 1.125, "x": 2.5, "label": "L12"}, + {"y": 1, "x": 3.5, "label": "L13"}, + {"y": 1.125, "x": 4.5, "label": "L14"}, + {"y": 1.25, "x": 5.5, "label": "L15"}, + {"y": 1.75, "x": 6.5, "label": "L16"}, + {"y": 1.75, "x": 12, "label": "R10"}, + {"y": 1.25, "x": 13, "label": "R11"}, + {"y": 1.125, "x": 14, "label": "R12"}, + {"y": 1, "x": 15, "label": "R13"}, + {"y": 1.125, "x": 16, "label": "R14"}, + {"y": 1.375, "x": 17, "label": "R15"}, + {"y": 1.375, "x": 18, "label": "R16"}, + {"y": 2.375, "x": 0.5, "label": "L20"}, + {"y": 2.375, "x": 1.5, "label": "L21"}, + {"y": 2.125, "x": 2.5, "label": "L22"}, + {"y": 2, "x": 3.5, "label": "L23"}, + {"y": 2.125, "x": 4.5, "label": "L24"}, + {"y": 2.25, "x": 5.5, "label": "L25"}, + {"y": 2.75, "x": 6.5, "label": "L26"}, + {"y": 2.75, "x": 12, "label": "R20"}, + {"y": 2.25, "x": 13, "label": "R21"}, + {"y": 2.125, "x": 14, "label": "R22"}, + {"y": 2, "x": 15, "label": "R23"}, + {"y": 2.125, "x": 16, "label": "R24"}, + {"y": 2.375, "x": 17, "label": "R25"}, + {"y": 2.375, "x": 18, "label": "R26"}, + {"y": 3.375, "x": 0.5, "label": "L30"}, + {"y": 3.375, "x": 1.5, "label": "L31"}, + {"y": 3.125, "x": 2.5, "label": "L32"}, + {"y": 3, "x": 3.5, "label": "L33"}, + {"y": 3.125, "x": 4.5, "label": "L34"}, + {"y": 3.25, "x": 5.5, "label": "L35"}, + {"y": 4, "x": 6.5, "label": "L36"}, + {"y": 4, "x": 12, "label": "R30"}, + {"y": 3.25, "x": 13, "label": "R31"}, + {"y": 3.125, "x": 14, "label": "R32"}, + {"y": 3, "x": 15, "label": "R33"}, + {"y": 3.125, "x": 16, "label": "R34"}, + {"y": 3.375, "x": 17, "label": "R35"}, + {"y": 3.375, "x": 18, "label": "R36"}, + {"y": 4.375, "x": 0.5, "label": "L40"}, + {"y": 4.375, "x": 1.5, "label": "L41"}, + {"y": 4.125, "x": 2.5, "label": "L42"}, + {"y": 4, "x": 3.5, "label": "L43"}, + {"y": 5, "x": 5.5, "label": "L44"}, + {"y": 5, "x": 6.5, "label": "L45"}, + {"h": 2, "y": 4, "x": 7.5, "label": "L46"}, + {"h": 2, "y": 4, "x": 11, "label": "R40"}, + {"y": 5, "x": 12, "label": "R41"}, + {"y": 5, "x": 13, "label": "R42"}, + {"y": 4, "x": 15, "label": "R43"}, + {"y": 4.125, "x": 16, "label": "R44"}, + {"y": 4.375, "x": 17, "label": "R45"}, + {"y": 4.375, "x": 18, "label": "R46"}] + }, + "LAYOUT_4key_2u_inner": { + "layout": [ + {"y": 0.375, "x": 0.5, "label": "L00"}, + {"y": 0.375, "x": 1.5, "label": "L01"}, + {"y": 0.125, "x": 2.5, "label": "L02"}, + {"y": 0, "x": 3.5, "label": "L03"}, + {"y": 0.125, "x": 4.5, "label": "L04"}, + {"y": 0.25, "x": 5.5, "label": "L05"}, + {"y": 0.75, "x": 6.5, "label": "L06"}, + {"y": 0.75, "x": 12, "label": "R00"}, + {"y": 0.25, "x": 13, "label": "R01"}, + {"y": 0.125, "x": 14, "label": "R02"}, + {"y": 0, "x": 15, "label": "R03"}, + {"y": 0.125, "x": 16, "label": "R04"}, + {"y": 0.375, "x": 17, "label": "R05"}, + {"y": 0.375, "x": 18, "label": "R06"}, + {"y": 1.375, "x": 0.5, "label": "L10"}, + {"y": 1.375, "x": 1.5, "label": "L11"}, + {"y": 1.125, "x": 2.5, "label": "L12"}, + {"y": 1, "x": 3.5, "label": "L13"}, + {"y": 1.125, "x": 4.5, "label": "L14"}, + {"y": 1.25, "x": 5.5, "label": "L15"}, + {"y": 1.75, "x": 6.5, "label": "L16"}, + {"y": 1.75, "x": 12, "label": "R10"}, + {"y": 1.25, "x": 13, "label": "R11"}, + {"y": 1.125, "x": 14, "label": "R12"}, + {"y": 1, "x": 15, "label": "R13"}, + {"y": 1.125, "x": 16, "label": "R14"}, + {"y": 1.375, "x": 17, "label": "R15"}, + {"y": 1.375, "x": 18, "label": "R16"}, + {"y": 2.375, "x": 0.5, "label": "L20"}, + {"y": 2.375, "x": 1.5, "label": "L21"}, + {"y": 2.125, "x": 2.5, "label": "L22"}, + {"y": 2, "x": 3.5, "label": "L23"}, + {"y": 2.125, "x": 4.5, "label": "L24"}, + {"y": 2.25, "x": 5.5, "label": "L25"}, + {"y": 2.75, "x": 6.5, "label": "L26"}, + {"y": 2.75, "x": 12, "label": "R20"}, + {"y": 2.25, "x": 13, "label": "R21"}, + {"y": 2.125, "x": 14, "label": "R22"}, + {"y": 2, "x": 15, "label": "R23"}, + {"y": 2.125, "x": 16, "label": "R24"}, + {"y": 2.375, "x": 17, "label": "R25"}, + {"y": 2.375, "x": 18, "label": "R26"}, + {"y": 3.375, "x": 0.5, "label": "L30"}, + {"y": 3.375, "x": 1.5, "label": "L31"}, + {"y": 3.125, "x": 2.5, "label": "L32"}, + {"y": 3, "x": 3.5, "label": "L33"}, + {"y": 3.125, "x": 4.5, "label": "L34"}, + {"y": 3.25, "x": 5.5, "label": "L35"}, + {"y": 4, "x": 7.5, "label": "L36"}, + {"y": 4, "x": 11, "label": "R30"}, + {"y": 3.25, "x": 13, "label": "R31"}, + {"y": 3.125, "x": 14, "label": "R32"}, + {"y": 3, "x": 15, "label": "R33"}, + {"y": 3.125, "x": 16, "label": "R34"}, + {"y": 3.375, "x": 17, "label": "R35"}, + {"y": 3.375, "x": 18, "label": "R36"}, + {"y": 4.375, "x": 0.5, "label": "L40"}, + {"y": 4.375, "x": 1.5, "label": "L41"}, + {"y": 4.125, "x": 2.5, "label": "L42"}, + {"y": 4, "x": 3.5, "label": "L43"}, + {"y": 5, "x": 5.5, "label": "L44"}, + {"h": 2, "y": 4, "x": 6.5, "label": "L45"}, + {"y": 5, "x": 7.5, "label": "L46"}, + {"y": 5, "x": 11, "label": "R40"}, + {"h": 2, "y": 4, "x": 12, "label": "R41"}, + {"y": 5, "x": 13, "label": "R42"}, + {"y": 4, "x": 15, "label": "R43"}, + {"y": 4.125, "x": 16, "label": "R44"}, + {"y": 4.375, "x": 17, "label": "R45"}, + {"y": 4.375, "x": 18, "label": "R46"}] + }, + "LAYOUT_3key_2us": { + "layout": [ + {"y": 0.375, "x": 0.5, "label": "L00"}, + {"y": 0.375, "x": 1.5, "label": "L01"}, + {"y": 0.125, "x": 2.5, "label": "L02"}, + {"y": 0, "x": 3.5, "label": "L03"}, + {"y": 0.125, "x": 4.5, "label": "L04"}, + {"y": 0.25, "x": 5.5, "label": "L05"}, + {"y": 0.75, "x": 6.5, "label": "L06"}, + {"y": 0.75, "x": 12, "label": "R00"}, + {"y": 0.25, "x": 13, "label": "R01"}, + {"y": 0.125, "x": 14, "label": "R02"}, + {"y": 0, "x": 15, "label": "R03"}, + {"y": 0.125, "x": 16, "label": "R04"}, + {"y": 0.375, "x": 17, "label": "R05"}, + {"y": 0.375, "x": 18, "label": "R06"}, + {"y": 1.375, "x": 0.5, "label": "L10"}, + {"y": 1.375, "x": 1.5, "label": "L11"}, + {"y": 1.125, "x": 2.5, "label": "L12"}, + {"y": 1, "x": 3.5, "label": "L13"}, + {"y": 1.125, "x": 4.5, "label": "L14"}, + {"y": 1.25, "x": 5.5, "label": "L15"}, + {"y": 1.75, "x": 6.5, "label": "L16"}, + {"y": 1.75, "x": 12, "label": "R10"}, + {"y": 1.25, "x": 13, "label": "R11"}, + {"y": 1.125, "x": 14, "label": "R12"}, + {"y": 1, "x": 15, "label": "R13"}, + {"y": 1.125, "x": 16, "label": "R14"}, + {"y": 1.375, "x": 17, "label": "R15"}, + {"y": 1.375, "x": 18, "label": "R16"}, + {"y": 2.375, "x": 0.5, "label": "L20"}, + {"y": 2.375, "x": 1.5, "label": "L21"}, + {"y": 2.125, "x": 2.5, "label": "L22"}, + {"y": 2, "x": 3.5, "label": "L23"}, + {"y": 2.125, "x": 4.5, "label": "L24"}, + {"y": 2.25, "x": 5.5, "label": "L25"}, + {"y": 2.75, "x": 6.5, "label": "L26"}, + {"y": 2.75, "x": 12, "label": "R20"}, + {"y": 2.25, "x": 13, "label": "R21"}, + {"y": 2.125, "x": 14, "label": "R22"}, + {"y": 2, "x": 15, "label": "R23"}, + {"y": 2.125, "x": 16, "label": "R24"}, + {"y": 2.375, "x": 17, "label": "R25"}, + {"y": 2.375, "x": 18, "label": "R26"}, + {"y": 3.375, "x": 0.5, "label": "L30"}, + {"y": 3.375, "x": 1.5, "label": "L31"}, + {"y": 3.125, "x": 2.5, "label": "L32"}, + {"y": 3, "x": 3.5, "label": "L33"}, + {"y": 3.125, "x": 4.5, "label": "L34"}, + {"y": 3.25, "x": 5.5, "label": "L35"}, + {"y": 3.25, "x": 13, "label": "R31"}, + {"y": 3.125, "x": 14, "label": "R32"}, + {"y": 3, "x": 15, "label": "R33"}, + {"y": 3.125, "x": 16, "label": "R34"}, + {"y": 3.375, "x": 17, "label": "R35"}, + {"y": 3.375, "x": 18, "label": "R36"}, + {"y": 4.375, "x": 0.5, "label": "L40"}, + {"y": 4.375, "x": 1.5, "label": "L41"}, + {"y": 4.125, "x": 2.5, "label": "L42"}, + {"y": 4, "x": 3.5, "label": "L43"}, + {"y": 5, "x": 5.5, "label": "L44"}, + {"h": 2, "y": 4, "x": 6.5, "label": "L45"}, + {"h": 2, "y": 4, "x": 7.5, "label": "L46"}, + {"h": 2, "y": 4, "x": 11, "label": "R40"}, + {"h": 2, "y": 4, "x": 12, "label": "R41"}, + {"y": 5, "x": 13, "label": "R42"}, + {"y": 4, "x": 15, "label": "R43"}, + {"y": 4.125, "x": 16, "label": "R44"}, + {"y": 4.375, "x": 17, "label": "R45"}, + {"y": 4.375, "x": 18, "label": "R46"}] + }, + "LAYOUT_3key_1us": { + "layout": [ + {"y": 0.375, "x": 0.5, "label": "L00"}, + {"y": 0.375, "x": 1.5, "label": "L01"}, + {"y": 0.125, "x": 2.5, "label": "L02"}, + {"y": 0, "x": 3.5, "label": "L03"}, + {"y": 0.125, "x": 4.5, "label": "L04"}, + {"y": 0.25, "x": 5.5, "label": "L05"}, + {"y": 0.75, "x": 6.5, "label": "L06"}, + {"y": 0.75, "x": 12, "label": "R00"}, + {"y": 0.25, "x": 13, "label": "R01"}, + {"y": 0.125, "x": 14, "label": "R02"}, + {"y": 0, "x": 15, "label": "R03"}, + {"y": 0.125, "x": 16, "label": "R04"}, + {"y": 0.375, "x": 17, "label": "R05"}, + {"y": 0.375, "x": 18, "label": "R06"}, + {"y": 1.375, "x": 0.5, "label": "L10"}, + {"y": 1.375, "x": 1.5, "label": "L11"}, + {"y": 1.125, "x": 2.5, "label": "L12"}, + {"y": 1, "x": 3.5, "label": "L13"}, + {"y": 1.125, "x": 4.5, "label": "L14"}, + {"y": 1.25, "x": 5.5, "label": "L15"}, + {"y": 1.75, "x": 6.5, "label": "L16"}, + {"y": 1.75, "x": 12, "label": "R10"}, + {"y": 1.25, "x": 13, "label": "R11"}, + {"y": 1.125, "x": 14, "label": "R12"}, + {"y": 1, "x": 15, "label": "R13"}, + {"y": 1.125, "x": 16, "label": "R14"}, + {"y": 1.375, "x": 17, "label": "R15"}, + {"y": 1.375, "x": 18, "label": "R16"}, + {"y": 2.375, "x": 0.5, "label": "L20"}, + {"y": 2.375, "x": 1.5, "label": "L21"}, + {"y": 2.125, "x": 2.5, "label": "L22"}, + {"y": 2, "x": 3.5, "label": "L23"}, + {"y": 2.125, "x": 4.5, "label": "L24"}, + {"y": 2.25, "x": 5.5, "label": "L25"}, + {"y": 2.75, "x": 6.5, "label": "L26"}, + {"y": 2.75, "x": 12, "label": "R20"}, + {"y": 2.25, "x": 13, "label": "R21"}, + {"y": 2.125, "x": 14, "label": "R22"}, + {"y": 2, "x": 15, "label": "R23"}, + {"y": 2.125, "x": 16, "label": "R24"}, + {"y": 2.375, "x": 17, "label": "R25"}, + {"y": 2.375, "x": 18, "label": "R26"}, + {"y": 3.375, "x": 0.5, "label": "L30"}, + {"y": 3.375, "x": 1.5, "label": "L31"}, + {"y": 3.125, "x": 2.5, "label": "L32"}, + {"y": 3, "x": 3.5, "label": "L33"}, + {"y": 3.125, "x": 4.5, "label": "L34"}, + {"y": 3.25, "x": 5.5, "label": "L35"}, + {"y": 4, "x": 6.5, "label": "L36"}, + {"y": 4, "x": 12, "label": "R30"}, + {"y": 3.25, "x": 13, "label": "R31"}, + {"y": 3.125, "x": 14, "label": "R32"}, + {"y": 3, "x": 15, "label": "R33"}, + {"y": 3.125, "x": 16, "label": "R34"}, + {"y": 3.375, "x": 17, "label": "R35"}, + {"y": 3.375, "x": 18, "label": "R36"}, + {"y": 4.375, "x": 0.5, "label": "L40"}, + {"y": 4.375, "x": 1.5, "label": "L41"}, + {"y": 4.125, "x": 2.5, "label": "L42"}, + {"y": 4, "x": 3.5, "label": "L43"}, + {"y": 5, "x": 5.5, "label": "L44"}, + {"y": 5, "x": 6.5, "label": "L45"}, + {"y": 5, "x": 12, "label": "R41"}, + {"y": 5, "x": 13, "label": "R42"}, + {"y": 4, "x": 15, "label": "R43"}, + {"y": 4.125, "x": 16, "label": "R44"}, + {"y": 4.375, "x": 17, "label": "R45"}, + {"y": 4.375, "x": 18, "label": "R46"}] + }, + "LAYOUT_2key": { + "layout": [ + {"y": 0.375, "x": 0.5, "label": "L00"}, + {"y": 0.375, "x": 1.5, "label": "L01"}, + {"y": 0.125, "x": 2.5, "label": "L02"}, + {"y": 0, "x": 3.5, "label": "L03"}, + {"y": 0.125, "x": 4.5, "label": "L04"}, + {"y": 0.25, "x": 5.5, "label": "L05"}, + {"y": 0.75, "x": 6.5, "label": "L06"}, + {"y": 0.75, "x": 12, "label": "R00"}, + {"y": 0.25, "x": 13, "label": "R01"}, + {"y": 0.125, "x": 14, "label": "R02"}, + {"y": 0, "x": 15, "label": "R03"}, + {"y": 0.125, "x": 16, "label": "R04"}, + {"y": 0.375, "x": 17, "label": "R05"}, + {"y": 0.375, "x": 18, "label": "R06"}, + {"y": 1.375, "x": 0.5, "label": "L10"}, + {"y": 1.375, "x": 1.5, "label": "L11"}, + {"y": 1.125, "x": 2.5, "label": "L12"}, + {"y": 1, "x": 3.5, "label": "L13"}, + {"y": 1.125, "x": 4.5, "label": "L14"}, + {"y": 1.25, "x": 5.5, "label": "L15"}, + {"y": 1.75, "x": 6.5, "label": "L16"}, + {"y": 1.75, "x": 12, "label": "R10"}, + {"y": 1.25, "x": 13, "label": "R11"}, + {"y": 1.125, "x": 14, "label": "R12"}, + {"y": 1, "x": 15, "label": "R13"}, + {"y": 1.125, "x": 16, "label": "R14"}, + {"y": 1.375, "x": 17, "label": "R15"}, + {"y": 1.375, "x": 18, "label": "R16"}, + {"y": 2.375, "x": 0.5, "label": "L20"}, + {"y": 2.375, "x": 1.5, "label": "L21"}, + {"y": 2.125, "x": 2.5, "label": "L22"}, + {"y": 2, "x": 3.5, "label": "L23"}, + {"y": 2.125, "x": 4.5, "label": "L24"}, + {"y": 2.25, "x": 5.5, "label": "L25"}, + {"y": 2.75, "x": 6.5, "label": "L26"}, + {"y": 2.75, "x": 12, "label": "R20"}, + {"y": 2.25, "x": 13, "label": "R21"}, + {"y": 2.125, "x": 14, "label": "R22"}, + {"y": 2, "x": 15, "label": "R23"}, + {"y": 2.125, "x": 16, "label": "R24"}, + {"y": 2.375, "x": 17, "label": "R25"}, + {"y": 2.375, "x": 18, "label": "R26"}, + {"y": 3.375, "x": 0.5, "label": "L30"}, + {"y": 3.375, "x": 1.5, "label": "L31"}, + {"y": 3.125, "x": 2.5, "label": "L32"}, + {"y": 3, "x": 3.5, "label": "L33"}, + {"y": 3.125, "x": 4.5, "label": "L34"}, + {"y": 3.25, "x": 5.5, "label": "L35"}, + {"y": 3.25, "x": 13, "label": "R31"}, + {"y": 3.125, "x": 14, "label": "R32"}, + {"y": 3, "x": 15, "label": "R33"}, + {"y": 3.125, "x": 16, "label": "R34"}, + {"y": 3.375, "x": 17, "label": "R35"}, + {"y": 3.375, "x": 18, "label": "R36"}, + {"y": 4.375, "x": 0.5, "label": "L40"}, + {"y": 4.375, "x": 1.5, "label": "L41"}, + {"y": 4.125, "x": 2.5, "label": "L42"}, + {"y": 4, "x": 3.5, "label": "L43"}, + {"y": 5, "x": 5.5, "label": "L44"}, + {"h": 2, "y": 4, "x": 6.5, "label": "L45"}, + {"h": 2, "y": 4, "x": 12, "label": "R41"}, + {"y": 5, "x": 13, "label": "R42"}, + {"y": 4, "x": 15, "label": "R43"}, + {"y": 4.125, "x": 16, "label": "R44"}, + {"y": 4.375, "x": 17, "label": "R45"}, + {"y": 4.375, "x": 18, "label": "R46"}] + } } - } } diff --git a/keyboards/ergodash/rev1/rev1.h b/keyboards/ergodash/rev1/rev1.h index 55135adca6d..f494a3558a7 100644 --- a/keyboards/ergodash/rev1/rev1.h +++ b/keyboards/ergodash/rev1/rev1.h @@ -10,8 +10,8 @@ #ifdef USE_I2C #include #ifdef __AVR__ - #include - #include + #include + #include #endif #endif @@ -20,47 +20,132 @@ #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, L06, R00, R01, R02, R03, R04, R05, R06, \ - 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, \ - L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ - L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05, L06 }, \ - { L10, L11, L12, L13, L14, L15, L16 }, \ - { L20, L21, L22, L23, L24, L25, L26 }, \ - { L30, L31, L32, L33, L34, L35, L36 }, \ - { L40, L41, L42, L43, L44, L45, L46 }, \ - { R06, R05, R04, R03, R02, R01, R00 }, \ - { R16, R15, R14, R13, R12, R11, R10 }, \ - { R26, R25, R24, R23, R22, R21, R20 }, \ - { R36, R35, R34, R33, R32, R31, R30 }, \ - { R46, R45, R44, R43, R42, R41, R40 } \ - } +#define LAYOUT_4key( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + 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, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R06, R05, R04, R03, R02, R01, R00 }, \ + { R16, R15, R14, R13, R12, R11, R10 }, \ + { R26, R25, R24, R23, R22, R21, R20 }, \ + { R36, R35, R34, R33, R32, R31, R30 }, \ + { R46, R45, R44, R43, R42, R41, R40 } \ + } + +// Just defined for configurator support, the matrix is identical to LAYOUT_4key +#define LAYOUT_4key_2u_inner( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + 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, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R06, R05, R04, R03, R02, R01, R00 }, \ + { R16, R15, R14, R13, R12, R11, R10 }, \ + { R26, R25, R24, R23, R22, R21, R20 }, \ + { R36, R35, R34, R33, R32, R31, R30 }, \ + { R46, R45, R44, R43, R42, R41, R40 } \ + } + +#define LAYOUT_3key_2us( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + 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, \ + L30, L31, L32, L33, L34, L35, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, KC_NO }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R06, R05, R04, R03, R02, R01, R00 }, \ + { R16, R15, R14, R13, R12, R11, R10 }, \ + { R26, R25, R24, R23, R22, R21, R20 }, \ + { R36, R35, R34, R33, R32, R31, KC_NO }, \ + { R46, R45, R44, R43, R42, R41, R40 } \ + } + + +#define LAYOUT_3key_1us( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + 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, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, R41, R42, R43, R44, R45, R46 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, KC_NO }, \ + { R06, R05, R04, R03, R02, R01, R00 }, \ + { R16, R15, R14, R13, R12, R11, R10 }, \ + { R26, R25, R24, R23, R22, R21, R20 }, \ + { R36, R35, R34, R33, R32, R31, R30 }, \ + { R46, R45, R44, R43, R42, R41, KC_NO } \ + } + +#define LAYOUT_2key( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + 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, \ + L30, L31, L32, L33, L34, L35, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, R41, R42, R43, R44, R45, R46 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, KC_NO }, \ + { L40, L41, L42, L43, L44, L45, KC_NO }, \ + { R06, R05, R04, R03, R02, R01, R00 }, \ + { R16, R15, R14, R13, R12, R11, R10 }, \ + { R26, R25, R24, R23, R22, R21, R20 }, \ + { R36, R35, R34, R33, R32, R31, KC_NO }, \ + { R46, R45, R44, R43, R42, R41, KC_NO } \ + } + +#define LAYOUT LAYOUT_4key + #else // Keymap with right side flipped // (TRRS jack on both halves are to the right) #define LAYOUT( \ - L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ - 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, \ - L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ - L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05, L06 }, \ - { L10, L11, L12, L13, L14, L15, L16 }, \ - { L20, L21, L22, L23, L24, L25, L26 }, \ - { L30, L31, L32, L33, L34, L35, L36 }, \ - { L40, L41, L42, L43, L44, L45, L46 }, \ - { R00, R01, R02, R03, R04, R05, R06 }, \ - { R10, R11, R12, R13, R14, R15, R16 }, \ - { R20, R21, R22, R23, R24, R25, R26 }, \ - { R30, R31, R32, R33, R34, R35, R36 }, \ - { R40, R41, R42, R43, R44, R45, R46 } \ - } + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + 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, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R00, R01, R02, R03, R04, R05, R06 }, \ + { R10, R11, R12, R13, R14, R15, R16 }, \ + { R20, R21, R22, R23, R24, R25, R26 }, \ + { R30, R31, R32, R33, R34, R35, R36 }, \ + { R40, R41, R42, R43, R44, R45, R46 } \ + } #endif #endif From 00c6892b3f8abc7d9b298d77cb965c9c242dd953 Mon Sep 17 00:00:00 2001 From: Joao Maia Date: Thu, 18 Jul 2019 20:31:40 +0100 Subject: [PATCH 005/115] [Keyboard] Add 6macro keyboard (#6362) * Initial commit for 6macro firmware * Updated layout documentation * Removed unused commented code --- keyboards/handwired/6macro/6macro.c | 16 ++++ keyboards/handwired/6macro/6macro.h | 35 ++++++++ keyboards/handwired/6macro/config.h | 70 ++++++++++++++++ keyboards/handwired/6macro/info.json | 13 +++ .../handwired/6macro/keymaps/default/config.h | 18 +++++ .../handwired/6macro/keymaps/default/keymap.c | 56 +++++++++++++ .../6macro/keymaps/default/readme.md | 15 ++++ .../handwired/6macro/keymaps/osu/config.h | 18 +++++ .../handwired/6macro/keymaps/osu/keymap.c | 56 +++++++++++++ .../handwired/6macro/keymaps/osu/readme.md | 15 ++++ keyboards/handwired/6macro/readme.md | 15 ++++ keyboards/handwired/6macro/rules.mk | 81 +++++++++++++++++++ 12 files changed, 408 insertions(+) create mode 100644 keyboards/handwired/6macro/6macro.c create mode 100644 keyboards/handwired/6macro/6macro.h create mode 100644 keyboards/handwired/6macro/config.h create mode 100644 keyboards/handwired/6macro/info.json create mode 100644 keyboards/handwired/6macro/keymaps/default/config.h create mode 100644 keyboards/handwired/6macro/keymaps/default/keymap.c create mode 100644 keyboards/handwired/6macro/keymaps/default/readme.md create mode 100644 keyboards/handwired/6macro/keymaps/osu/config.h create mode 100644 keyboards/handwired/6macro/keymaps/osu/keymap.c create mode 100644 keyboards/handwired/6macro/keymaps/osu/readme.md create mode 100644 keyboards/handwired/6macro/readme.md create mode 100644 keyboards/handwired/6macro/rules.mk diff --git a/keyboards/handwired/6macro/6macro.c b/keyboards/handwired/6macro/6macro.c new file mode 100644 index 00000000000..0a62bedf162 --- /dev/null +++ b/keyboards/handwired/6macro/6macro.c @@ -0,0 +1,16 @@ +/* Copyright 2019 joaofbmaia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "6macro.h" diff --git a/keyboards/handwired/6macro/6macro.h b/keyboards/handwired/6macro/6macro.h new file mode 100644 index 00000000000..c1d50051283 --- /dev/null +++ b/keyboards/handwired/6macro/6macro.h @@ -0,0 +1,35 @@ +/* Copyright 2019 joaofbmaia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 LAYOUT( \ + k00, k01, k02, \ + k10, k11, k12 \ +) \ +{ \ + { k00, k01, k02 }, \ + { k10, k11, k12 }, \ +} diff --git a/keyboards/handwired/6macro/config.h b/keyboards/handwired/6macro/config.h new file mode 100644 index 00000000000..7919c3c71ff --- /dev/null +++ b/keyboards/handwired/6macro/config.h @@ -0,0 +1,70 @@ +/* +Copyright 2019 joaofbmaia + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0x0037 +#define DEVICE_VER 0x0001 +#define MANUFACTURER joaofbmaia +#define PRODUCT 6macro +#define DESCRIPTION 6macro + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 + +/* pinout - DON'T CHANGE */ +#define MATRIX_ROW_PINS { B3, B4 } +#define MATRIX_COL_PINS { B0, B1, B2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN D2 +#define RGBLED_NUM 10 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 +#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 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 \ No newline at end of file diff --git a/keyboards/handwired/6macro/info.json b/keyboards/handwired/6macro/info.json new file mode 100644 index 00000000000..52bd03a1dd8 --- /dev/null +++ b/keyboards/handwired/6macro/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "6macro", + "url": "", + "maintainer": "joaofbmaia", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}] + } + } + } + \ No newline at end of file diff --git a/keyboards/handwired/6macro/keymaps/default/config.h b/keyboards/handwired/6macro/keymaps/default/config.h new file mode 100644 index 00000000000..64ba57443f8 --- /dev/null +++ b/keyboards/handwired/6macro/keymaps/default/config.h @@ -0,0 +1,18 @@ +/* Copyright 2019 joaofbmaia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + diff --git a/keyboards/handwired/6macro/keymaps/default/keymap.c b/keyboards/handwired/6macro/keymaps/default/keymap.c new file mode 100644 index 00000000000..365dbf7b05a --- /dev/null +++ b/keyboards/handwired/6macro/keymaps/default/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2019 joaofbmaia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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] = { + + /* LAYER 0 + * ,-----------------------. + * | F13 | F14 | F15/FN| Hold for FN + * |-------+-------+-------| + * | F16 | F17 | F18 | + * `-------+-------+-------' + */ + [0] = LAYOUT( + KC_F13, KC_F14, LT(1, KC_F15), \ + KC_F16, KC_F17, KC_F18 \ + ), + + /* LAYER 1 + * ,-----------------------. + * |RGB_TOG|RGBMOD+| | + * |-------+-------+-------| + * |RGBHUE+|RGBBRI+|Spec FN| Hold along with previous to access special funtions (RESET) + * `-------+-------+-------' + */ + [1] = LAYOUT( + RGB_TOG, RGB_MOD, KC_TRNS, \ + RGB_HUI, RGB_VAI, MO(2) \ + ), + + /* LAYER 2 + * ,-----------------------. + * | RESET |RGBMOD-| | + * |-------+-------+-------| + * |RGBHUE-|RGBBRI-| | + * `-------+-------+-------' + */ + [2] = LAYOUT( + RESET, RGB_RMOD, KC_NO, \ + RGB_HUD, RGB_VAD, KC_TRNS \ + ) + +}; diff --git a/keyboards/handwired/6macro/keymaps/default/readme.md b/keyboards/handwired/6macro/keymaps/default/readme.md new file mode 100644 index 00000000000..dd42a8fc62a --- /dev/null +++ b/keyboards/handwired/6macro/keymaps/default/readme.md @@ -0,0 +1,15 @@ +Layer 0: + +![Layer 0](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer0_default.png) + +Layer 1: + +![Layer 1](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer1.png) + +Layer 2: + +![Layer 2](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer2.png) + +# Default 6macro Layout + +This is the default layout. Layer 0 is mappped to function keys 13-18. Top right key switches to layer above when held. Upper layers are for RGB control. \ No newline at end of file diff --git a/keyboards/handwired/6macro/keymaps/osu/config.h b/keyboards/handwired/6macro/keymaps/osu/config.h new file mode 100644 index 00000000000..64ba57443f8 --- /dev/null +++ b/keyboards/handwired/6macro/keymaps/osu/config.h @@ -0,0 +1,18 @@ +/* Copyright 2019 joaofbmaia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + diff --git a/keyboards/handwired/6macro/keymaps/osu/keymap.c b/keyboards/handwired/6macro/keymaps/osu/keymap.c new file mode 100644 index 00000000000..ffed7d909f5 --- /dev/null +++ b/keyboards/handwired/6macro/keymaps/osu/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2019 joaofbmaia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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] = { + + /* LAYER 0 + * ,-----------------------. + * | ESC | ~ | SPC/FN| Hold for FN + * |-------+-------+-------| + * | C | Z | X | + * `-------+-------+-------' + */ + [0] = LAYOUT( + KC_ESC, KC_GRAVE, LT(1, KC_SPC), \ + KC_C, KC_Z, KC_X \ + ), + + /* LAYER 1 + * ,-----------------------. + * |RGB_TOG|RGBMOD+| | + * |-------+-------+-------| + * |RGBHUE+|RGBBRI+|Spec FN| Hold along with previous to access special funtions (RESET) + * `-------+-------+-------' + */ + [1] = LAYOUT( + RGB_TOG, RGB_MOD, KC_TRNS, \ + RGB_HUI, RGB_VAI, MO(2) \ + ), + + /* LAYER 2 + * ,-----------------------. + * | RESET |RGBMOD-| | + * |-------+-------+-------| + * |RGBHUE-|RGBBRI-| | + * `-------+-------+-------' + */ + [2] = LAYOUT( + RESET, RGB_RMOD, KC_NO, \ + RGB_HUD, RGB_VAD, KC_TRNS \ + ) + +}; diff --git a/keyboards/handwired/6macro/keymaps/osu/readme.md b/keyboards/handwired/6macro/keymaps/osu/readme.md new file mode 100644 index 00000000000..0de5d6bf2e0 --- /dev/null +++ b/keyboards/handwired/6macro/keymaps/osu/readme.md @@ -0,0 +1,15 @@ +Layer 0: + +![Layer 0](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer0_osu.png) + +Layer 1: + +![Layer 1](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer1.png) + +Layer 2: + +![Layer 2](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer2.png) + +# OSU 6macro Layout + +This layout is for the game OSU. Layer 0 is mappped as shown above. Top right key switches to layer above when held. Upper layers are for RGB control. \ No newline at end of file diff --git a/keyboards/handwired/6macro/readme.md b/keyboards/handwired/6macro/readme.md new file mode 100644 index 00000000000..3fbd917c805 --- /dev/null +++ b/keyboards/handwired/6macro/readme.md @@ -0,0 +1,15 @@ +# 6macro + +![6macro photo](https://raw.githubusercontent.com/joaofbmaia/6macro/master/photo.jpg) +![6macro photo with RGB](https://raw.githubusercontent.com/joaofbmaia/6macro/master/photo_rgb.jpg) + +This is a 6-key keyboard intended for macros or as a dedicated controller for games with few bindings. + +Keyboard Maintainer: [joaofbmaia](https://github.com/joaofbmaia) +Hardware: https://github.com/joaofbmaia/6macro + +Make example for this keyboard (after setting up your build environment): + + make handwired/6macro: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/handwired/6macro/rules.mk b/keyboards/handwired/6macro/rules.mk new file mode 100644 index 00000000000..fc886fb9afa --- /dev/null +++ b/keyboards/handwired/6macro/rules.mk @@ -0,0 +1,81 @@ +# MCU name +MCU = atmega32u2 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +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 +# 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 +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 +#RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500) +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = yes # 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 (+400) From 455f15528c59b18b97fc334042db8ec1f50a9b00 Mon Sep 17 00:00:00 2001 From: jotix <47826561+jotix@users.noreply.github.com> Date: Thu, 18 Jul 2019 23:27:09 -0300 Subject: [PATCH 006/115] Jotix (#6355) * add unicode_map * add unicode_map * numpad change --- layouts/community/ortho_4x12/jotix/keymap.c | 52 ++++-- layouts/community/ortho_4x12/jotix/readme.md | 2 +- layouts/community/ortho_4x12/jotix/rules.mk | 1 + layouts/community/ortho_4x12/jotix/unicode.c | 185 +++++++++++++++++++ 4 files changed, 228 insertions(+), 12 deletions(-) create mode 100644 layouts/community/ortho_4x12/jotix/rules.mk create mode 100644 layouts/community/ortho_4x12/jotix/unicode.c diff --git a/layouts/community/ortho_4x12/jotix/keymap.c b/layouts/community/ortho_4x12/jotix/keymap.c index c6655afa525..d1e8b39589e 100644 --- a/layouts/community/ortho_4x12/jotix/keymap.c +++ b/layouts/community/ortho_4x12/jotix/keymap.c @@ -1,14 +1,19 @@ #include QMK_KEYBOARD_H +#include "unicode.c" enum layers { _QWERTY, _LOWER, _RAISE, + _UNI_LCK }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define UNI_LCK MO(_UNI_LCK) #define TGLOWER TG(_LOWER) +#define TGRAISE TG(_RAISE) +#define SHRAISE LM(_RAISE, MOD_LSFT) static bool is_ctl_pressed; static bool is_esc_pressed; @@ -22,33 +27,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ KC_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN, KC_ENT, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM, KC_DOT, KC_UP ,KC_SLSH, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - KC_LCTL,KC_LGUI,KC_LALT,TGLOWER, LOWER , KC_SPC, KC_SPC, RAISE ,KC_RALT,KC_LEFT,KC_DOWN,KC_RGHT + KC_LCTL,KC_LGUI,KC_LALT,UNI_LCK, LOWER , KC_SPC, KC_SPC, RAISE ,SHRAISE,KC_LEFT,KC_DOWN,KC_RGHT // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), [_LOWER] = LAYOUT_ortho_4x12 ( // ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ - KC_GRV, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,_______, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 ,_______, KC_INS, KC_P7 , KC_P8 , KC_P9 ,KC_PMNS,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______, KC_F1 , KC_F2 , KC_F3, KC_F4 ,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______, + _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 ,KC_HOME,KC_PGUP, KC_P4 , KC_P5 , KC_P6 ,KC_PPLS,KC_PENT, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 ,_______,KC_MINS, KC_EQL,_______,_______,_______,_______, + _______, KC_F9 , KC_F10, KC_F11, KC_F12, KC_END,KC_PGDN, KC_P1 , KC_P2 , KC_P3 ,KC_PAST,KC_PSLS, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ + _______,_______,_______,_______,_______,_______,_______,_______, KC_P0 ,KC_PDOT,KC_LPRN,KC_RPRN // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), [_RAISE] = LAYOUT_ortho_4x12 ( // ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ - KC_TILD,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, KC_DEL, + 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_CAPS, KC_F9 , KC_F10, KC_F11, KC_F12,_______,KC_LCBR,KC_RCBR,KC_PIPE,KC_DQUO,_______,_______, + KC_CAPS,_______,_______,_______,_______,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,_______,_______,_______,_______,_______,KC_UNDS,KC_PLUS,KC_HOME,KC_PGUP,KC_VOLU,_______, + _______,_______,_______,_______,_______,_______,KC_MINS, KC_EQL,_______,_______,KC_VOLU,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,_______,_______,_______,_______,_______,_______,_______, KC_END,KC_PGDN,KC_VOLD,KC_MUTE + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_VOLD,KC_MUTE +// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ +), + +[_UNI_LCK] = LAYOUT_ortho_4x12 ( +// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ + UN_ESC, UN_Q , UN_W , UN_E , UN_R , UN_T , UN_Y , UN_U , UN_I , UN_O , UN_P ,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______, UN_A , UN_S , UN_D , UN_F , UN_G , UN_H , UN_J , UN_K , UN_L ,UN_SCLN,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______, UN_Z , UN_X , UN_C , UN_V , UN_B , UN_N , UN_M ,UN_COMM, UN_DOT, UN_UP ,UN_SLSH, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + UC_M_LN,UC_M_WI,UC_M_OS,_______,TGLOWER,_______,_______,TGRAISE,_______,UN_LEFT,UN_DOWN,UN_RGHT // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), @@ -65,6 +82,10 @@ uint32_t layer_state_set_user(uint32_t state) { writePinLow(JOTANCK_LED1); writePinHigh(JOTANCK_LED2); break; + case _UNI_LCK: + writePinHigh(JOTANCK_LED1); + writePinHigh(JOTANCK_LED2); + break; default: writePinLow(JOTANCK_LED1); writePinLow(JOTANCK_LED2); @@ -74,6 +95,16 @@ uint32_t layer_state_set_user(uint32_t state) { return state; } +void led_set_user(uint8_t usb_led) { + if (!(IS_LED_ON(usb_led, USB_LED_NUM_LOCK))) { + tap_code(KC_NUMLOCK); + } +} + +void keyboard_post_init_user(void) { + set_unicode_input_mode(UC_LNX); +} + bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_LCTL: @@ -88,7 +119,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; return true; } - void matrix_scan_user(void) { if (is_ctl_pressed && is_esc_pressed && is_bspc_pressed) { reset_keyboard(); diff --git a/layouts/community/ortho_4x12/jotix/readme.md b/layouts/community/ortho_4x12/jotix/readme.md index ec1fb7ba9bf..dda5b81defb 100644 --- a/layouts/community/ortho_4x12/jotix/readme.md +++ b/layouts/community/ortho_4x12/jotix/readme.md @@ -1,6 +1,6 @@ # Jotix ortho 4x12 keymap -![keymap](https://i.imgur.com/CpZCcuy.png) +![keymap](https://i.imgur.com/hfCyDRD.png) Tested on: diff --git a/layouts/community/ortho_4x12/jotix/rules.mk b/layouts/community/ortho_4x12/jotix/rules.mk new file mode 100644 index 00000000000..0517619ed13 --- /dev/null +++ b/layouts/community/ortho_4x12/jotix/rules.mk @@ -0,0 +1 @@ +UNICODEMAP_ENABLE = yes \ No newline at end of file diff --git a/layouts/community/ortho_4x12/jotix/unicode.c b/layouts/community/ortho_4x12/jotix/unicode.c new file mode 100644 index 00000000000..eaa0da1ac43 --- /dev/null +++ b/layouts/community/ortho_4x12/jotix/unicode.c @@ -0,0 +1,185 @@ +enum unicode_names { + A_ACUTE, + A_ACUTEC, + E_ACUTE, + E_ACUTEC, + I_ACUTE, + I_ACUTEC, + O_ACUTE, + O_ACUTEC, + U_ACUTE, + U_ACUTEC, + U_DIERESIS, + U_DIERESISC, + N_TILDE, + N_TILDEC, + OPEN_EXCML, + OPEN_QUEST, + EURO, + POUND, + LEFT_ARROW, + DOWN_ARROW, + UP_ARROW, + RIGHT_ARROW, + LEFT_DARROW, + DOWN_DARROW, + UP_DARROW, + RIGHT_DAROW, + LEFT_DQUOT, + RGHT_DQUOT, + DEGREE, + DEGREE_CELCIUS, + SUPER_1, + SUPER_2, + SUPER_3, + ONE_HALF, + PER_MILLE, + PER_THOUS, + PILCROW, + COPYRIGHT, + REGISTERED, + MICRO, + MIDDLE_DOT, + BOX_CORNER_1, + BOX_CORNER_2, + BOX_CORNER_3, + BOX_CORNER_4, + BOX_HORIZONTAL, + BOX_VERTICAL, + BOX_CROSS, + BOX_UNION_1, + BOX_UNION_2, + BOX_UNION_3, + BOX_UNION_4, + DBOX_CORNER_1, + DBOX_CORNER_2, + DBOX_CORNER_3, + DBOX_CORNER_4, + DBOX_HORIZONT, + DBOX_VERTICAL, + DBOX_CROSS, + DBOX_UNION_1, + DBOX_UNION_2, + DBOX_UNION_3, + DBOX_UNION_4, + LESS_EQUAL, + MORE_EQUAL, + DIVISION, + SQUARE_ROOT, + CUBE_ROOT, + SPADE_SUIT, + TREBOL_SUIT, + HEART_SUIT, + DIAMOND_SUIT, +}; + +const uint32_t PROGMEM unicode_map[] = { + [A_ACUTE] = 0x00E1, + [A_ACUTEC] = 0x00C1, + [E_ACUTE] = 0x00E9, + [E_ACUTEC] = 0x00C9, + [I_ACUTE] = 0x00ED, + [I_ACUTEC] = 0x00CD, + [O_ACUTE] = 0x00F3, + [O_ACUTEC] = 0x00D3, + [U_ACUTE] = 0x00FA, + [U_ACUTEC] = 0x00DA, + [U_DIERESIS] = 0x00FC, + [U_DIERESISC] = 0x00DC, + [N_TILDE] = 0x00F1, + [N_TILDEC] = 0x00D1, + [OPEN_EXCML] = 0x00A1, + [OPEN_QUEST] = 0x00BF, + [EURO] = 0x20AC, + [POUND] = 0x00A3, + [LEFT_ARROW] = 0x2190, + [DOWN_ARROW] = 0x2193, + [UP_ARROW] = 0x2191, + [RIGHT_ARROW] = 0x2192, + [LEFT_DARROW] = 0x21E6, + [DOWN_DARROW] = 0x21D3, + [UP_DARROW] = 0x21D1, + [RIGHT_DAROW] = 0x21D2, + [LEFT_DQUOT] = 0x00AB, + [RGHT_DQUOT] = 0x00BB, + [DEGREE] = 0x00B0, + [DEGREE_CELCIUS]= 0x2103, + [SUPER_1] = 0x00B9, + [SUPER_2] = 0x00B2, + [SUPER_3] = 0x00B3, + [ONE_HALF] = 0x00BD, + [PER_MILLE] = 0x0609, + [PER_THOUS] = 0x060A, + [PILCROW] = 0x00B6, + [COPYRIGHT] = 0x00A9, + [REGISTERED] = 0x00AE, + [MICRO] = 0x00B5, + [MIDDLE_DOT] = 0x00B7, + [BOX_CORNER_1] = 0x250C, + [BOX_CORNER_2] = 0x2510, + [BOX_CORNER_3] = 0x2514, + [BOX_CORNER_4] = 0x2518, + [BOX_HORIZONTAL]= 0x2500, + [BOX_VERTICAL] = 0x2502, + [BOX_CROSS] = 0x253C, + [BOX_UNION_1] = 0x2524, + [BOX_UNION_2] = 0x252C, + [BOX_UNION_3] = 0x2534, + [BOX_UNION_4] = 0x251C, + [DBOX_CORNER_1] = 0x2554, + [DBOX_CORNER_2] = 0x2557, + [DBOX_CORNER_3] = 0x255A, + [DBOX_CORNER_4] = 0x255D, + [DBOX_HORIZONT] = 0x2550, + [DBOX_VERTICAL] = 0x2551, + [DBOX_CROSS] = 0x256C, + [DBOX_UNION_1] = 0x2563, + [DBOX_UNION_2] = 0x2566, + [DBOX_UNION_3] = 0x2569, + [DBOX_UNION_4] = 0x2560, + [LESS_EQUAL] = 0x2264, + [MORE_EQUAL] = 0x2265, + [DIVISION] = 0x00F7, + [SQUARE_ROOT] = 0x221A, + [CUBE_ROOT] = 0x221B, + [SPADE_SUIT] = 0x2660, + [TREBOL_SUIT] = 0x2663, + [HEART_SUIT] = 0x2664, + [DIAMOND_SUIT] = 0x2665 +}; + +#define UN_ESC XP(DEGREE, DEGREE_CELCIUS) +#define UN_Q XP(OPEN_EXCML, SUPER_1) +#define UN_W XP(SUPER_2, SUPER_3) +#define UN_E XP(E_ACUTE, E_ACUTEC) +#define UN_R XP(EURO, ONE_HALF) +#define UN_T XP(PER_MILLE, PER_THOUS) +#define UN_Y XP(U_DIERESIS, U_DIERESISC) +#define UN_U XP(U_ACUTE, U_ACUTEC) +#define UN_I XP(I_ACUTE, I_ACUTEC) +#define UN_O XP(O_ACUTE, O_ACUTEC) +#define UN_P XP(POUND, PILCROW) +#define UN_A XP(A_ACUTE, A_ACUTEC) +#define UN_S XP(BOX_CORNER_1, DBOX_CORNER_1) +#define UN_D XP(BOX_CORNER_2, DBOX_CORNER_2) +#define UN_F XP(BOX_CORNER_3, DBOX_CORNER_3) +#define UN_G XP(BOX_CORNER_4, DBOX_CORNER_4) +#define UN_H XP(BOX_UNION_1, DBOX_UNION_1) +#define UN_J XP(BOX_UNION_2, DBOX_UNION_2) +#define UN_K XP(BOX_UNION_3, DBOX_UNION_3) +#define UN_L XP(BOX_UNION_4, DBOX_UNION_4) +#define UN_SCLN XP(BOX_HORIZONTAL, DBOX_HORIZONT) +#define UN_Z XP(BOX_VERTICAL, DBOX_VERTICAL) +#define UN_X XP(BOX_CROSS, DBOX_CROSS) +#define UN_C XP(COPYRIGHT, REGISTERED) +#define UN_V XP(SPADE_SUIT, TREBOL_SUIT) +#define UN_B XP(HEART_SUIT, DIAMOND_SUIT) +#define UN_N XP(N_TILDE, N_TILDEC) +#define UN_M XP(MICRO, MIDDLE_DOT) +#define UN_COMM XP(LESS_EQUAL, LEFT_DQUOT) +#define UN_DOT XP(MORE_EQUAL, RGHT_DQUOT) +#define UN_SLSH XP(OPEN_QUEST, DIVISION) +#define UN_LEFT XP(LEFT_ARROW, LEFT_DARROW) +#define UN_DOWN XP(DOWN_ARROW, DOWN_DARROW) +#define UN_UP XP(UP_ARROW, UP_DARROW) +#define UN_RGHT XP(RIGHT_ARROW, RIGHT_DAROW) \ No newline at end of file From 918fb7f8da42ef9e3afa73b9d640f74e0112ea32 Mon Sep 17 00:00:00 2001 From: trinity1561 <47289299+trinity1561@users.noreply.github.com> Date: Thu, 18 Jul 2019 23:04:01 -0400 Subject: [PATCH 007/115] Print Screen and Pause placement swap (#5981) * Update x11.h The original json file that was given by the designer was incorrect. The Print Screen and Pause button is swapped. * Update space65.c Fixing the Caps Lock LED. * Revert "Update space65.c" This reverts commit 1f5de1abaefadd2e54259999a29bab501da5f67a. --- keyboards/alf/x11/x11.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/alf/x11/x11.h b/keyboards/alf/x11/x11.h index 53f3a3e34d1..399ca206364 100644 --- a/keyboards/alf/x11/x11.h +++ b/keyboards/alf/x11/x11.h @@ -26,7 +26,7 @@ * represents the switch matrix. */ #define LAYOUT( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K60, K61, K62, \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K62, K61, K60, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K5A, K63, K65, K67, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4C, K64, K66, K68, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ From b12b26946d19830a64d9643ddf2944303ac1f6d0 Mon Sep 17 00:00:00 2001 From: mechmerlin Date: Thu, 18 Jul 2019 19:24:02 -0700 Subject: [PATCH 008/115] simple readme fix --- keyboards/singa/readme.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/keyboards/singa/readme.md b/keyboards/singa/readme.md index 4400717c800..faeb816ec11 100644 --- a/keyboards/singa/readme.md +++ b/keyboards/singa/readme.md @@ -20,6 +20,8 @@ Flashing ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods. +**Reset Key:** Hold down the key located at `K00`, commonly programmed as `Esc` while plugging in the keyboard. + Windows: 1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash). 2. Place your keyboard into reset. @@ -41,9 +43,10 @@ macOS: brew install python3 pip3 install pyusb brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb + ``` 4. Place your keyboard into reset. 5. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file. -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. +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 d417b0cc7d2ec231950f596e7604ba27879ee411 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Fri, 19 Jul 2019 15:05:25 +1000 Subject: [PATCH 009/115] Tidy up ALF X1.1 (#6367) * Tidy up ALF X1.1 * Correct x positions * 4 spaces * Remove a stray TRNS key --- keyboards/alf/x11/info.json | 209 +++++++++++---------- keyboards/alf/x11/keymaps/default/keymap.c | 75 ++------ keyboards/alf/x11/x11.c | 59 +++--- keyboards/alf/x11/x11.h | 26 +-- 4 files changed, 169 insertions(+), 200 deletions(-) diff --git a/keyboards/alf/x11/info.json b/keyboards/alf/x11/info.json index ca794f56ce7..54f2da66d12 100644 --- a/keyboards/alf/x11/info.json +++ b/keyboards/alf/x11/info.json @@ -1,103 +1,112 @@ { - "keyboard_name": "QMK80", - "url": "", - "maintainer": "qmk", - "width": 18.25, - "height": 6.5, - "layouts": { - "LAYOUT": { - "key_count": 88, - "layout": [ - {"label":"K00", "x":0, "y":0}, - {"label":"K01", "x":2, "y":0}, - {"label":"K02", "x":3, "y":0}, - {"label":"K03", "x":4, "y":0}, - {"label":"K04", "x":5, "y":0}, - {"label":"K05", "x":6.5, "y":0}, - {"label":"K06", "x":7.5, "y":0}, - {"label":"K07", "x":8.5, "y":0}, - {"label":"K08", "x":9.5, "y":0}, - {"label":"K09", "x":11, "y":0}, - {"label":"K0A", "x":12, "y":0}, - {"label":"K0B", "x":13, "y":0}, - {"label":"K0C", "x":14, "y":0}, - {"label":"K60", "x":15.25, "y":0}, - {"label":"K61", "x":16.25, "y":0}, - {"label":"K62", "x":17.25, "y":0}, - {"label":"K10", "x":0, "y":1.5}, - {"label":"K11", "x":1, "y":1.5}, - {"label":"K12", "x":2, "y":1.5}, - {"label":"K13", "x":3, "y":1.5}, - {"label":"K14", "x":4, "y":1.5}, - {"label":"K15", "x":5, "y":1.5}, - {"label":"K16", "x":6, "y":1.5}, - {"label":"K17", "x":7, "y":1.5}, - {"label":"K18", "x":8, "y":1.5}, - {"label":"K19", "x":9, "y":1.5}, - {"label":"K1A", "x":10, "y":1.5}, - {"label":"K1B", "x":11, "y":1.5}, - {"label":"K1C", "x":12, "y":1.5}, - {"label":"K5A", "x":13, "y":1.5, "w":2}, - {"label":"K63", "x":15.25, "y":1.5}, - {"label":"K65", "x":16.25, "y":1.5}, - {"label":"K67", "x":17.25, "y":1.5}, - {"label":"K20", "x":0, "y":2.5, "w":1.5}, - {"label":"K21", "x":1.5, "y":2.5}, - {"label":"K22", "x":2.5, "y":2.5}, - {"label":"K23", "x":3.5, "y":2.5}, - {"label":"K24", "x":4.5, "y":2.5}, - {"label":"K25", "x":5.5, "y":2.5}, - {"label":"K26", "x":6.5, "y":2.5}, - {"label":"K27", "x":7.5, "y":2.5}, - {"label":"K28", "x":8.5, "y":2.5}, - {"label":"K29", "x":9.5, "y":2.5}, - {"label":"K2A", "x":10.5, "y":2.5}, - {"label":"K2B", "x":11.5, "y":2.5}, - {"label":"K2C", "x":12.5, "y":2.5}, - {"label":"K4C", "x":13.5, "y":2.5, "w":1.5}, - {"label":"K64", "x":15.25, "y":2.5}, - {"label":"K66", "x":16.25, "y":2.5}, - {"label":"K68", "x":17.25, "y":2.5}, - {"label":"K30", "x":0, "y":3.5, "w":1.75}, - {"label":"K31", "x":1.75, "y":3.5}, - {"label":"K32", "x":2.75, "y":3.5}, - {"label":"K33", "x":3.75, "y":3.5}, - {"label":"K34", "x":4.75, "y":3.5}, - {"label":"K35", "x":5.75, "y":3.5}, - {"label":"K36", "x":6.75, "y":3.5}, - {"label":"K37", "x":7.75, "y":3.5}, - {"label":"K38", "x":8.75, "y":3.5}, - {"label":"K39", "x":9.75, "y":3.5}, - {"label":"K3A", "x":10.75, "y":3.5}, - {"label":"K3B", "x":11.75, "y":3.5}, - {"label":"K3C", "x":12.75, "y":3.5, "w":2.25}, - {"label":"K40", "x":0, "y":4.5, "w":2.25}, - {"label":"K41", "x":2.25, "y":4.5}, - {"label":"K42", "x":3.25, "y":4.5}, - {"label":"K43", "x":4.25, "y":4.5}, - {"label":"K44", "x":5.25, "y":4.5}, - {"label":"K45", "x":6.25, "y":4.5}, - {"label":"K46", "x":7.25, "y":4.5}, - {"label":"K47", "x":8.25, "y":4.5}, - {"label":"K48", "x":9.25, "y":4.5}, - {"label":"K49", "x":10.25, "y":4.5}, - {"label":"K4A", "x":11.25, "y":4.5}, - {"label":"K4B", "x":12.25, "y":4.5, "w":1.75}, - {"label":"K69", "x":14, "y":4.5}, - {"label":"K58", "x":16.25, "y":4.5}, - {"label":"K50", "x":0, "y":5.5, "w":1.25}, - {"label":"K51", "x":1.25, "y":5.5, "w":1.25}, - {"label":"K52", "x":2.5, "y":5.5, "w":1.25}, - {"label":"K53", "x":3.75, "y":5.5, "w":6.25}, - {"label":"K54", "x":10, "y":5.5, "w":1.25}, - {"label":"K55", "x":11.25, "y":5.5, "w":1.25}, - {"label":"K56", "x":12.5, "y":5.5, "w":1.25}, - {"label":"K57", "x":13.75, "y":5.5, "w":1.25}, - {"label":"K6A", "x":15.25, "y":5.5}, - {"label":"K59", "x":16.25, "y":5.5}, - {"label":"K6B", "x":17.25, "y":5.5} - ] - } + "keyboard_name": "x11", + "url": "", + "maintainer": "qmk", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT": { + "key_count": 88, + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":2, "y":0}, + {"label":"K02", "x":3, "y":0}, + {"label":"K03", "x":4, "y":0}, + {"label":"K04", "x":5, "y":0}, + {"label":"K05", "x":6.5, "y":0}, + {"label":"K06", "x":7.5, "y":0}, + {"label":"K07", "x":8.5, "y":0}, + {"label":"K08", "x":9.5, "y":0}, + {"label":"K09", "x":11, "y":0}, + {"label":"K0A", "x":12, "y":0}, + {"label":"K0B", "x":13, "y":0}, + {"label":"K0C", "x":14, "y":0}, + + {"label":"K62", "x":15.25, "y":0}, + {"label":"K61", "x":16.25, "y":0}, + {"label":"K60", "x":17.25, "y":0}, + + {"label":"K10", "x":0, "y":1.5}, + {"label":"K11", "x":1, "y":1.5}, + {"label":"K12", "x":2, "y":1.5}, + {"label":"K13", "x":3, "y":1.5}, + {"label":"K14", "x":4, "y":1.5}, + {"label":"K15", "x":5, "y":1.5}, + {"label":"K16", "x":6, "y":1.5}, + {"label":"K17", "x":7, "y":1.5}, + {"label":"K18", "x":8, "y":1.5}, + {"label":"K19", "x":9, "y":1.5}, + {"label":"K1A", "x":10, "y":1.5}, + {"label":"K1B", "x":11, "y":1.5}, + {"label":"K1C", "x":12, "y":1.5}, + {"label":"K5A", "x":13, "y":1.5, "w":2}, + + {"label":"K63", "x":15.25, "y":1.5}, + {"label":"K65", "x":16.25, "y":1.5}, + {"label":"K67", "x":17.25, "y":1.5}, + + {"label":"K20", "x":0, "y":2.5, "w":1.5}, + {"label":"K21", "x":1.5, "y":2.5}, + {"label":"K22", "x":2.5, "y":2.5}, + {"label":"K23", "x":3.5, "y":2.5}, + {"label":"K24", "x":4.5, "y":2.5}, + {"label":"K25", "x":5.5, "y":2.5}, + {"label":"K26", "x":6.5, "y":2.5}, + {"label":"K27", "x":7.5, "y":2.5}, + {"label":"K28", "x":8.5, "y":2.5}, + {"label":"K29", "x":9.5, "y":2.5}, + {"label":"K2A", "x":10.5, "y":2.5}, + {"label":"K2B", "x":11.5, "y":2.5}, + {"label":"K2C", "x":12.5, "y":2.5}, + {"label":"K4C", "x":13.5, "y":2.5, "w":1.5}, + + {"label":"K64", "x":15.25, "y":2.5}, + {"label":"K66", "x":16.25, "y":2.5}, + {"label":"K68", "x":17.25, "y":2.5}, + + {"label":"K30", "x":0, "y":3.5, "w":1.75}, + {"label":"K31", "x":1.75, "y":3.5}, + {"label":"K32", "x":2.75, "y":3.5}, + {"label":"K33", "x":3.75, "y":3.5}, + {"label":"K34", "x":4.75, "y":3.5}, + {"label":"K35", "x":5.75, "y":3.5}, + {"label":"K36", "x":6.75, "y":3.5}, + {"label":"K37", "x":7.75, "y":3.5}, + {"label":"K38", "x":8.75, "y":3.5}, + {"label":"K39", "x":9.75, "y":3.5}, + {"label":"K3A", "x":10.75, "y":3.5}, + {"label":"K3B", "x":11.75, "y":3.5}, + {"label":"K3C", "x":12.75, "y":3.5, "w":2.25}, + + {"label":"K40", "x":0, "y":4.5, "w":2.25}, + {"label":"K41", "x":2.25, "y":4.5}, + {"label":"K42", "x":3.25, "y":4.5}, + {"label":"K43", "x":4.25, "y":4.5}, + {"label":"K44", "x":5.25, "y":4.5}, + {"label":"K45", "x":6.25, "y":4.5}, + {"label":"K46", "x":7.25, "y":4.5}, + {"label":"K47", "x":8.25, "y":4.5}, + {"label":"K48", "x":9.25, "y":4.5}, + {"label":"K49", "x":10.25, "y":4.5}, + {"label":"K4A", "x":11.25, "y":4.5}, + {"label":"K4B", "x":12.25, "y":4.5, "w":1.75}, + {"label":"K69", "x":14, "y":4.5}, + + {"label":"K58", "x":16.25, "y":4.5}, + + {"label":"K50", "x":0, "y":5.5, "w":1.25}, + {"label":"K51", "x":1.25, "y":5.5, "w":1.25}, + {"label":"K52", "x":2.5, "y":5.5, "w":1.25}, + {"label":"K53", "x":3.75, "y":5.5, "w":6.25}, + {"label":"K54", "x":10, "y":5.5, "w":1.25}, + {"label":"K55", "x":11.25, "y":5.5, "w":1.25}, + {"label":"K56", "x":12.5, "y":5.5, "w":1.25}, + {"label":"K57", "x":13.75, "y":5.5, "w":1.25}, + + {"label":"K6A", "x":15.25, "y":5.5}, + {"label":"K59", "x":16.25, "y":5.5}, + {"label":"K6B", "x":17.25, "y":5.5} + ] } } - \ No newline at end of file +} diff --git a/keyboards/alf/x11/keymaps/default/keymap.c b/keyboards/alf/x11/keymaps/default/keymap.c index cd97dd0a2b4..f0747d34505 100644 --- a/keyboards/alf/x11/keymaps/default/keymap.c +++ b/keyboards/alf/x11/keymaps/default/keymap.c @@ -15,64 +15,23 @@ */ #include QMK_KEYBOARD_H -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - QMKBEST = SAFE_RANGE, - QMKURL -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - KC_PSCR, KC_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, MO(1), KC_UP, KC_LCTL, \ - KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - [1] = LAYOUT( \ - KC_TRNS, KC_TRNS, KC_TRNS, 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, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_MPLY, KC_MSTP, RGB_TOG, RGB_MOD, \ - RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_VAD, RGB_SAD \ - ), + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_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, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; - -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/alf/x11/x11.c b/keyboards/alf/x11/x11.c index b91de016e28..9699918d5b2 100644 --- a/keyboards/alf/x11/x11.c +++ b/keyboards/alf/x11/x11.c @@ -16,48 +16,49 @@ #include "x11.h" void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - setPinOutput(C6); - setPinOutput(E6); - setPinOutput(C7); - matrix_init_user(); + // put your keyboard start-up code here + // runs once when the firmware starts up + + setPinOutput(C6); + setPinOutput(E6); + setPinOutput(C7); + matrix_init_user(); } void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) + // put your looping keyboard code here + // runs every cycle (a lot) - matrix_scan_user(); + 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 + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware - return process_record_user(keycode, 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 + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - writePinLow(C6); - } else { - writePinHigh(C6); - } + if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + writePinLow(C6); + } else { + writePinHigh(C6); + } - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { - writePinLow(E6); - } else { - writePinHigh(E6); - } + if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { + writePinLow(E6); + } else { + writePinHigh(E6); + } - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { - writePinLow(C7); - } else { - writePinHigh(C7); - } + if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { + writePinLow(C7); + } else { + writePinHigh(C7); + } - led_set_user(usb_led); + led_set_user(usb_led); } diff --git a/keyboards/alf/x11/x11.h b/keyboards/alf/x11/x11.h index 399ca206364..2a1d886fddd 100644 --- a/keyboards/alf/x11/x11.h +++ b/keyboards/alf/x11/x11.h @@ -26,18 +26,18 @@ * represents the switch matrix. */ #define LAYOUT( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K62, K61, K60, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K5A, K63, K65, K67, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4C, K64, K66, K68, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K69, K58, \ - K50, K51, K52, K53, K54, K55, K56, K57, K6A, K59, K6B \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K62, K61, K60, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K5A, K63, K65, K67, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4C, K64, K66, K68, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K69, K58, \ + K50, K51, K52, K53, K54, K55, K56, K57, K6A, K59, K6B \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ - { 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 }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C }, \ - { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO }, \ - { K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, KC_NO }, \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ + { 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 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO }, \ + { K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, KC_NO }, \ } From e040028f1bf0d3c213667148455e9894cdf2c5ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20=C4=90or=C4=91evi=C4=87?= Date: Fri, 19 Jul 2019 17:47:04 +0200 Subject: [PATCH 010/115] Change xprintf() calls in rgblight.c to dprintf() (#6363) --- quantum/rgblight.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index 75e4ef0d869..f569d6b9e3f 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -167,7 +167,6 @@ void eeconfig_update_rgblight(uint32_t val) { } void eeconfig_update_rgblight_default(void) { - //dprintf("eeconfig_update_rgblight_default\n"); rgblight_config.enable = 1; rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT; rgblight_config.hue = 0; @@ -179,7 +178,7 @@ void eeconfig_update_rgblight_default(void) { } void eeconfig_debug_rgblight(void) { - dprintf("rgblight_config eprom\n"); + dprintf("rgblight_config EEPROM:\n"); dprintf("rgblight_config.enable = %d\n", rgblight_config.enable); dprintf("rghlight_config.mode = %d\n", rgblight_config.mode); dprintf("rgblight_config.hue = %d\n", rgblight_config.hue); @@ -308,9 +307,9 @@ void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) { RGBLIGHT_SPLIT_SET_CHANGE_MODE; if (write_to_eeprom) { eeconfig_update_rgblight(rgblight_config.raw); - xprintf("rgblight mode [EEPROM]: %u\n", rgblight_config.mode); + dprintf("rgblight mode [EEPROM]: %u\n", rgblight_config.mode); } else { - xprintf("rgblight mode [NOEEPROM]: %u\n", rgblight_config.mode); + dprintf("rgblight mode [NOEEPROM]: %u\n", rgblight_config.mode); } if( is_static_effect(rgblight_config.mode) ) { #ifdef RGBLIGHT_USE_TIMER @@ -337,7 +336,7 @@ void rgblight_mode_noeeprom(uint8_t mode) { void rgblight_toggle(void) { - xprintf("rgblight toggle [EEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable); + dprintf("rgblight toggle [EEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable); if (rgblight_config.enable) { rgblight_disable(); } @@ -347,7 +346,7 @@ void rgblight_toggle(void) { } void rgblight_toggle_noeeprom(void) { - xprintf("rgblight toggle [NOEEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable); + dprintf("rgblight toggle [NOEEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable); if (rgblight_config.enable) { rgblight_disable_noeeprom(); } @@ -360,20 +359,20 @@ void rgblight_enable(void) { rgblight_config.enable = 1; // No need to update EEPROM here. rgblight_mode() will do that, actually //eeconfig_update_rgblight(rgblight_config.raw); - xprintf("rgblight enable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); + dprintf("rgblight enable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); rgblight_mode(rgblight_config.mode); } void rgblight_enable_noeeprom(void) { rgblight_config.enable = 1; - xprintf("rgblight enable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); + dprintf("rgblight enable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); rgblight_mode_noeeprom(rgblight_config.mode); } void rgblight_disable(void) { rgblight_config.enable = 0; eeconfig_update_rgblight(rgblight_config.raw); - xprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); + dprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); #ifdef RGBLIGHT_USE_TIMER rgblight_timer_disable(); #endif @@ -384,7 +383,7 @@ void rgblight_disable(void) { void rgblight_disable_noeeprom(void) { rgblight_config.enable = 0; - xprintf("rgblight disable [noEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); + dprintf("rgblight disable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); #ifdef RGBLIGHT_USE_TIMER rgblight_timer_disable(); #endif @@ -471,7 +470,6 @@ void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) { if (rgblight_config.enable) { LED_TYPE tmp_led; sethsv(hue, sat, val, &tmp_led); - // dprintf("rgblight set hue [MEMORY]: %u,%u,%u\n", inmem_config.hue, inmem_config.sat, inmem_config.val); rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); } } @@ -543,9 +541,9 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w rgblight_config.val = val; if (write_to_eeprom) { eeconfig_update_rgblight(rgblight_config.raw); - xprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); + dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); } else { - xprintf("rgblight set hsv [NOEEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); + dprintf("rgblight set hsv [NOEEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); } } } @@ -866,7 +864,6 @@ void rgblight_task(void) { uint16_t oldpos16; if (tick_flag) { tick_flag = false; - //dprintf("rgblight animation tick\n"); if (timer_elapsed(report_last_timer) >= 30000) { report_last_timer = timer_read(); dprintf("rgblight animation tick report to slave\n"); @@ -874,15 +871,11 @@ void rgblight_task(void) { } } oldpos16 = animation_status.pos16; - //dprintf("call effect function\n"); #endif animation_status.last_timer += interval_time; effect_func(&animation_status); #if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) - //dprintf("pos16, oldpos16 = %d %d\n", - // animation_status.pos16,oldpos16); if (animation_status.pos16 == 0 && oldpos16 != 0) { - //dprintf("flag on\n"); tick_flag = true; } #endif From b1fc3f35c69078aabdacfdf5e93c165147b553f5 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 19 Jul 2019 10:39:20 -0700 Subject: [PATCH 011/115] Melody96 Configurator updates and minor refactoring (#6365) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add Configurator layout data for LAYOUT_hotswap * Add LAYOUT_std60_split_num0 Requested by 李小安#9728 on QMK Discord. Standard 60% ANSI layout for the alphanumeric region, with a split-0 Numpad. Includes a sample keymap. * Update Docs links on readme * Change melody96.h to use #pragma once include guard * Change config.h to use #pragma once include guard * Add readme for default_std60_split_num0 keymap --- keyboards/melody96/config.h | 5 +-- keyboards/melody96/info.json | 8 +++- .../keymaps/default_std60_split_num0/keymap.c | 40 +++++++++++++++++++ .../default_std60_split_num0/readme.md | 39 ++++++++++++++++++ keyboards/melody96/melody96.h | 40 +++++++++++++++++-- keyboards/melody96/readme.md | 2 +- 6 files changed, 125 insertions(+), 9 deletions(-) create mode 100644 keyboards/melody96/keymaps/default_std60_split_num0/keymap.c create mode 100644 keyboards/melody96/keymaps/default_std60_split_num0/readme.md diff --git a/keyboards/melody96/config.h b/keyboards/melody96/config.h index 201b1ad07f9..8ab88653f3f 100644 --- a/keyboards/melody96/config.h +++ b/keyboards/melody96/config.h @@ -1,5 +1,4 @@ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" @@ -46,5 +45,3 @@ #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 #endif - -#endif diff --git a/keyboards/melody96/info.json b/keyboards/melody96/info.json index e2a31c9f34a..f69ae267909 100644 --- a/keyboards/melody96/info.json +++ b/keyboards/melody96/info.json @@ -7,6 +7,12 @@ "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Scroll Lock", "x":14, "y":0}, {"label":"Pause", "x":15, "y":0}, {"label":"Insert", "x":16, "y":0}, {"label":"Home", "x":17, "y":0}, {"label":"PgUp", "x":18, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Num Lock", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"x":18, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Win", "x":11, "y":5}, {"x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"x":18, "y":5}] + }, + "LAYOUT_hotswap": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"Home", "x":13, "y":0}, {"label":"End", "x":14, "y":0}, {"label":"PgUp", "x":15, "y":0}, {"label":"PgDn", "x":16, "y":0}, {"label":"Media Play", "x":17, "y":0}, {"label":"Pause", "x":18, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Num Lock", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":2, "h":2}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"Up", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"GUI", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"Left", "x":13, "y":5}, {"label":"Down", "x":14, "y":5}, {"label":"Right", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":4, "h":2}] + }, + "LAYOUT_std60_split_num0": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Home", "x":14, "y":0}, {"label":"End", "x":15, "y":0}, {"label":"PgUp", "x":16, "y":0}, {"label":"PgDn", "x":17, "y":0}, {"label":"Delete", "x":18, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Num Lock", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":2, "h":2}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":2.75}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"GUI", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Fn", "x":11.25, "y":5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5, "w":1.25}, {"label":"0", "x":15, "y":5}, {"label":"00", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":4, "h":2}] } } -} \ No newline at end of file +} diff --git a/keyboards/melody96/keymaps/default_std60_split_num0/keymap.c b/keyboards/melody96/keymaps/default_std60_split_num0/keymap.c new file mode 100644 index 00000000000..25881d3f80e --- /dev/null +++ b/keyboards/melody96/keymaps/default_std60_split_num0/keymap.c @@ -0,0 +1,40 @@ +#include QMK_KEYBOARD_H + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + KC_P00 = SAFE_RANGE +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_std60_split_num0( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_DEL, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_P0, KC_P00, KC_PDOT, KC_PENT + ), + + [0] = LAYOUT_std60_split_num0( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_P00: + if (record->event.pressed) { + SEND_STRING("00"); + } + break; + } + return true; +} diff --git a/keyboards/melody96/keymaps/default_std60_split_num0/readme.md b/keyboards/melody96/keymaps/default_std60_split_num0/readme.md new file mode 100644 index 00000000000..d20a179aa94 --- /dev/null +++ b/keyboards/melody96/keymaps/default_std60_split_num0/readme.md @@ -0,0 +1,39 @@ +# default_std60_split_num0 + +A modified default keymap for use with the LAYOUT_std60_split_num0 macro. + +## Base Layer + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Prt│Hm │End│PUp│PDn│Del│ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ +│` ~│1 !│2 @│3 #│4 $│5 %│6 ^│7 &│8 *│9 (│0 )│- _│= +│ Bksp │NLk│ / │ * │ - │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤ +│ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │[ {│] }│ \ | │7 │8 │9 │ + │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤ │ +│CapsLk│ A │ S │ D │ F │ G │ H │ J │ K │ L │; :│' "│ Enter │4 │5 │6 │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┼───┼───┼───┼───┤ +│ Shift │ Z │ X │ C │ V │ B │ N │ M │, <│. >│/ ?│ Shift │1 │2 │3 │Ent│ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┼───┼───┼───┤ │ +│Ctrl│GUI │Alt │Space │Alt │Fn │Menu│Ctrl│0 │00 │ . │ │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┴───┴───┴───┴───┘ +``` + +## Function Layer + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│RST│ │ │ │ │ │ │ │ │ │ │ │ │Mut│VDn│VUp│ │ │ │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤ +│ │RTg│ │RMd│RH+│RH-│RS+│RS-│RV+│RV-│ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤ │ +│BLTogg│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┼───┼───┼───┼───┤ +│ │ │ │BL-│BTg│BL+│ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┼───┼───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┴───┴───┴───┴───┘ +``` diff --git a/keyboards/melody96/melody96.h b/keyboards/melody96/melody96.h index d846fa28da1..37a6a85b09d 100644 --- a/keyboards/melody96/melody96.h +++ b/keyboards/melody96/melody96.h @@ -1,5 +1,4 @@ -#ifndef MELODY96_H -#define MELODY96_H +#pragma once #include "quantum.h" @@ -64,4 +63,39 @@ { K110, K111, K112, K113, K114, K115, K116, K117, K118 } \ } -#endif +/* LAYOUT_std60_split_num0 + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Prt│Pau│Hm │End│PUp│PDn│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ + * │` ~│1 !│2 @│3 #│4 $│5 %│6 ^│7 &│8 *│9 (│0 )│- _│= +│ Bksp │NLk│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │[ {│] }│ \ | │7 │8 │9 │ + │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤ │ + * │CapsLk│ A │ S │ D │ F │ G │ H │ J │ K │ L │; :│' "│ Enter │4 │5 │6 │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┼───┼───┼───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │, <│. >│/ ?│ Shift │1 │2 │3 │Ent│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┼───┼───┼───┤ │ + * │Ctrl│GUI │Alt │Space │Alt │GUI │Menu│Ctrl│0 │00 │ . │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┴───┴───┴───┴───┘ + */ +#define LAYOUT_std60_split_num0( \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, KB8, KB7, KB5, KB4, KB3, KB6, KB2, KB1, KB0, K63, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, KA8, KA7, KA5, KA4, KA6, KA2, KA1, KA0, K64, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K98, K97, K95, K94, K84, K96, K92, K91, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K88, K87, K85, K93, K86, K82, K81, K80, \ + K10, K12, K13, K14, K15, K16, K17, K18, K78, K77, K75, K74, K76, K72, K71, \ + K00, K01, K02, K06, K08, K07, K04, K03, K66, K62, K61, K60 \ +) { \ + { K00, K01, K02, K03, K04, KC_NO, K06, K07, K08 }, \ + { K10, KC_NO, 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, K55, K56, K57, K58 }, \ + { K60, K61, K62, K63, K64, KC_NO, K66, KC_NO, KC_NO }, \ + { KC_NO, K71, K72, KC_NO, K74, K75, K76, K77, K78 }, \ + { K80, K81, K82, KC_NO, K84, K85, K86, K87, K88 }, \ + { KC_NO, K91, K92, K93, K94, K95, K96, K97, K98 }, \ + { KA0, KA1, KA2, KC_NO, KA4, KA5, KA6, KA7, KA8 }, \ + { KB0, KB1, KB2, KB3, KB4, KB5, KB6, KB7, KB8 } \ +} diff --git a/keyboards/melody96/readme.md b/keyboards/melody96/readme.md index 73cc13262b3..2d472b32769 100644 --- a/keyboards/melody96/readme.md +++ b/keyboards/melody96/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make melody96:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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 001a6c24aeadce25118a979cf87ebe6bee5674a4 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 19 Jul 2019 13:23:16 -0700 Subject: [PATCH 012/115] [Docs] Clarify Zadig usage in FAQ Docs (#6360) * Rewrite Zadig section to be more clear * Wordsmithing Co-Authored-By: MechMerlin <30334081+mechmerlin@users.noreply.github.com> --- docs/faq_build.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/docs/faq_build.md b/docs/faq_build.md index 23d6a67021a..bcf017a9b2a 100644 --- a/docs/faq_build.md +++ b/docs/faq_build.md @@ -49,15 +49,13 @@ Pro Micro (Atmega32u4), make sure to include `CONFIG_USB_ACM=y`. Other devices m ## Unknown Device for DFU Bootloader -If you're using Windows to flash your keyboard, and you are running into issues, check the Device Manager. If you see an "Unknown Device" when the keyboard is in "bootloader mode", then you may have a driver issue. +Issues encountered when flashing keyboards on Windows are most often due to having the wrong drivers installed for the bootloader. -Re-running the installation script for MSYS2 may help (eg run `./util/qmk_install.sh` from MSYS2/WSL) or reinstalling the QMK Toolbox may fix the issue. +Re-running the installation script for MSYS2 may help (eg run `util/qmk_install.sh` from MSYS2/WSL) or reinstalling the QMK Toolbox may fix the issue. Alternatively, you can download and run the [`qmk_driver_installer`](https://github.com/qmk/qmk_driver_installer) package. -If that doesn't work, then you may need to grab the [Zadig Utility](https://zadig.akeo.ie/). Download this, find the device in question, and select the `WinUSB` option, and hit "Reinstall driver". Once you've done that, try flashing your board, again. If that doesn't work, try all of the options, until one works. +If that doesn't work, then you may need to grab the [Zadig Utility](https://zadig.akeo.ie/). Download this, and run it on the system. Then, you will need to reset your board into bootloader mode. After that, locate the device in question. If the device doesn't show up in the list (or nothing shows up in the list), you may need to enable the `List all devices` option in the `Options` menu. -?> There isn't a best option for which driver should be used here. Some options work better on some systems than others. libUSB and WinUSB seem to be the best options here. - -If the bootloader doesn't show up in the list for devices, you may need to enable the "List all devices" option in the `Options` menu, and then find the bootloader in question. +From here, you will need to know what type of controller the board is using. You may see it listed in the Device Manager as `ATmega32U4` device (which is an AVR board), or an `STM32` device (Which is an ARM board). For AVR boards, use `libusb-win32` for the driver. For ARM boards, use the `WinUSB` driver. Once the correct driver type has been selected, click on the `Replace Driver` button, unplug your board, plug it back in, and reset it again. ## WINAVR is Obsolete From 6b1db7da23c8fed2953c9d826c6a129d17aa1af3 Mon Sep 17 00:00:00 2001 From: noroadsleft Date: Sat, 20 Jul 2019 11:06:18 -0700 Subject: [PATCH 013/115] Fix Numbrero Handwired make example in readme --- keyboards/handwired/numbrero/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/handwired/numbrero/readme.md b/keyboards/handwired/numbrero/readme.md index 42f005dbe23..931c601274f 100644 --- a/keyboards/handwired/numbrero/readme.md +++ b/keyboards/handwired/numbrero/readme.md @@ -8,6 +8,6 @@ Hardware Availability: The Board Podcast Slack Make example for this keyboard (after setting up your build environment): - make handwired/numbrero/numbrero:default + make handwired/numbrero: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 a2e91ebec910d31a9f32cc56924ef3d6f0291e72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20=C4=90or=C4=91evi=C4=87?= Date: Sat, 20 Jul 2019 22:21:40 +0200 Subject: [PATCH 014/115] Update IS_COMMAND definitions to use MOD_MASK_SHIFT (#6348) * Update IS_COMMAND definition in templates to use MOD_MASK_SHIFT * Update IS_COMMAND in docs * Update IS_COMMAND default definition in tmk_core * Update table in Command docs based on suggestion Co-Authored-By: fauxpark --- docs/config_options.md | 2 +- docs/feature_command.md | 66 +++++++++++++++--------------- quantum/template/avr/config.h | 2 +- quantum/template/ps2avrgb/config.h | 2 +- tmk_core/common/command.h | 2 +- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/docs/config_options.md b/docs/config_options.md index 3012dcdcff5..01c0e3ee8ca 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -89,7 +89,7 @@ This is a C header file that is one of the first things included, and will persi * mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap * `#define LOCKING_RESYNC_ENABLE` * tries to keep switch state consistent with keyboard LED state -* `#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))` +* `#define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)` * key combination that allows the use of magic commands (useful for debugging) * `#define USB_MAX_POWER_CONSUMPTION` * sets the maximum power (in mA) over USB for the device (default: 500) diff --git a/docs/feature_command.md b/docs/feature_command.md index deabedc1c3f..a4ce3f5aea0 100644 --- a/docs/feature_command.md +++ b/docs/feature_command.md @@ -16,36 +16,36 @@ To use Command, hold down the key combination defined by the `IS_COMMAND()` macr If you would like to change the key assignments for Command, `#define` these in your `config.h` at either the keyboard or keymap level. All keycode assignments here must omit the `KC_` prefix. -|Define |Default |Description | -|------------------------------------|---------------------------------------------------------------------------|------------------------------------------------| -|`IS_COMMAND()` |(get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))|The key combination to activate Command | -|`MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS` |`true` |Set default layer with the Function row | -|`MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS` |`true` |Set default layer with the number keys | -|`MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM`|`false` |Set default layer with `MAGIC_KEY_LAYER0..9` | -|`MAGIC_KEY_DEBUG` |`D` |Toggle debugging over serial | -|`MAGIC_KEY_DEBUG_MATRIX` |`X` |Toggle key matrix debugging | -|`MAGIC_KEY_DEBUG_KBD` |`K` |Toggle keyboard debugging | -|`MAGIC_KEY_DEBUG_MOUSE` |`M` |Toggle mouse debugging | -|`MAGIC_KEY_CONSOLE` |`C` |Enable the Command console | -|`MAGIC_KEY_VERSION` |`V` |Print the running QMK version to the console | -|`MAGIC_KEY_STATUS` |`S` |Print the current keyboard status to the console| -|`MAGIC_KEY_HELP` |`H` |Print Command help to the console | -|`MAGIC_KEY_HELP_ALT` |`SLASH` |Print Command help to the console (alternate) | -|`MAGIC_KEY_LAYER0` |`0` |Make layer 0 the default layer | -|`MAGIC_KEY_LAYER0_ALT` |`GRAVE` |Make layer 0 the default layer (alternate) | -|`MAGIC_KEY_LAYER1` |`1` |Make layer 1 the default layer | -|`MAGIC_KEY_LAYER2` |`2` |Make layer 2 the default layer | -|`MAGIC_KEY_LAYER3` |`3` |Make layer 3 the default layer | -|`MAGIC_KEY_LAYER4` |`4` |Make layer 4 the default layer | -|`MAGIC_KEY_LAYER5` |`5` |Make layer 5 the default layer | -|`MAGIC_KEY_LAYER6` |`6` |Make layer 6 the default layer | -|`MAGIC_KEY_LAYER7` |`7` |Make layer 7 the default layer | -|`MAGIC_KEY_LAYER8` |`8` |Make layer 8 the default layer | -|`MAGIC_KEY_LAYER9` |`9` |Make layer 9 the default layer | -|`MAGIC_KEY_BOOTLOADER` |`B` |Jump to bootloader | -|`MAGIC_KEY_BOOTLOADER_ALT` |`ESC` |Jump to bootloader (alternate) | -|`MAGIC_KEY_LOCK` |`CAPS` |Lock the keyboard so nothing can be typed | -|`MAGIC_KEY_EEPROM` |`E` |Print stored EEPROM config to the console | -|`MAGIC_KEY_EEPROM_CLEAR` |`BSPACE` |Clear the EEPROM | -|`MAGIC_KEY_NKRO` |`N` |Toggle N-Key Rollover (NKRO) | -|`MAGIC_KEY_SLEEP_LED` |`Z` |Toggle LED when computer is sleeping | +|Define |Default |Description | +|------------------------------------|--------------------------------|------------------------------------------------| +|`IS_COMMAND()` |`(get_mods() == MOD_MASK_SHIFT)`|The key combination to activate Command | +|`MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS` |`true` |Set default layer with the Function row | +|`MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS` |`true` |Set default layer with the number keys | +|`MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM`|`false` |Set default layer with `MAGIC_KEY_LAYER0..9` | +|`MAGIC_KEY_DEBUG` |`D` |Toggle debugging over serial | +|`MAGIC_KEY_DEBUG_MATRIX` |`X` |Toggle key matrix debugging | +|`MAGIC_KEY_DEBUG_KBD` |`K` |Toggle keyboard debugging | +|`MAGIC_KEY_DEBUG_MOUSE` |`M` |Toggle mouse debugging | +|`MAGIC_KEY_CONSOLE` |`C` |Enable the Command console | +|`MAGIC_KEY_VERSION` |`V` |Print the running QMK version to the console | +|`MAGIC_KEY_STATUS` |`S` |Print the current keyboard status to the console| +|`MAGIC_KEY_HELP` |`H` |Print Command help to the console | +|`MAGIC_KEY_HELP_ALT` |`SLASH` |Print Command help to the console (alternate) | +|`MAGIC_KEY_LAYER0` |`0` |Make layer 0 the default layer | +|`MAGIC_KEY_LAYER0_ALT` |`GRAVE` |Make layer 0 the default layer (alternate) | +|`MAGIC_KEY_LAYER1` |`1` |Make layer 1 the default layer | +|`MAGIC_KEY_LAYER2` |`2` |Make layer 2 the default layer | +|`MAGIC_KEY_LAYER3` |`3` |Make layer 3 the default layer | +|`MAGIC_KEY_LAYER4` |`4` |Make layer 4 the default layer | +|`MAGIC_KEY_LAYER5` |`5` |Make layer 5 the default layer | +|`MAGIC_KEY_LAYER6` |`6` |Make layer 6 the default layer | +|`MAGIC_KEY_LAYER7` |`7` |Make layer 7 the default layer | +|`MAGIC_KEY_LAYER8` |`8` |Make layer 8 the default layer | +|`MAGIC_KEY_LAYER9` |`9` |Make layer 9 the default layer | +|`MAGIC_KEY_BOOTLOADER` |`B` |Jump to bootloader | +|`MAGIC_KEY_BOOTLOADER_ALT` |`ESC` |Jump to bootloader (alternate) | +|`MAGIC_KEY_LOCK` |`CAPS` |Lock the keyboard so nothing can be typed | +|`MAGIC_KEY_EEPROM` |`E` |Print stored EEPROM config to the console | +|`MAGIC_KEY_EEPROM_CLEAR` |`BSPACE` |Clear the EEPROM | +|`MAGIC_KEY_NKRO` |`N` |Toggle N-Key Rollover (NKRO) | +|`MAGIC_KEY_SLEEP_LED` |`Z` |Toggle LED when computer is sleeping | diff --git a/quantum/template/avr/config.h b/quantum/template/avr/config.h index fc65bb59766..0fc7cf9cb91 100644 --- a/quantum/template/avr/config.h +++ b/quantum/template/avr/config.h @@ -136,7 +136,7 @@ along with this program. If not, see . /* 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))) +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) /* control how magic key switches layers */ //#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true diff --git a/quantum/template/ps2avrgb/config.h b/quantum/template/ps2avrgb/config.h index 320d71fcbc5..9117bf1f917 100644 --- a/quantum/template/ps2avrgb/config.h +++ b/quantum/template/ps2avrgb/config.h @@ -47,7 +47,7 @@ along with this program. If not, see . /* 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))) +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) /* Bootmagic Lite key configuration */ // #define BOOTMAGIC_LITE_ROW 0 diff --git a/tmk_core/common/command.h b/tmk_core/common/command.h index e7c7b0ea1d2..e6e67fae4ad 100644 --- a/tmk_core/common/command.h +++ b/tmk_core/common/command.h @@ -35,7 +35,7 @@ bool command_proc(uint8_t code); #endif #ifndef IS_COMMAND -#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) +#define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) #endif #ifndef MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS From c6442998208a3e06695ac670ad0786100aee7040 Mon Sep 17 00:00:00 2001 From: jotix <47826561+jotix@users.noreply.github.com> Date: Sat, 20 Jul 2019 17:25:20 -0300 Subject: [PATCH 015/115] [Keyboard] leds in default keymap (#6357) --- .../jotanck/keymaps/default/keymap.c | 52 +++++++++++++++---- keyboards/handwired/jotanck/readme.md | 2 + 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/keyboards/handwired/jotanck/keymaps/default/keymap.c b/keyboards/handwired/jotanck/keymaps/default/keymap.c index 3eb01a65815..44f993db60c 100644 --- a/keyboards/handwired/jotanck/keymaps/default/keymap.c +++ b/keyboards/handwired/jotanck/keymaps/default/keymap.c @@ -13,11 +13,14 @@ extern keymap_config_t keymap_config; #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 @@ -73,20 +76,47 @@ 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 */ -[_ADJUST] = LAYOUT_ortho_4x12 ( - _______, RESET, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), + }; uint32_t layer_state_set_user(uint32_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); + #ifdef JOTANCK_LEDS + switch (biton32(state)) { + case _LOWER: + writePinHigh(JOTANCK_LED1); + writePinLow(JOTANCK_LED2); + break; + case _RAISE: + writePinLow(JOTANCK_LED1); + writePinHigh(JOTANCK_LED2); + break; + default: + writePinLow(JOTANCK_LED1); + writePinLow(JOTANCK_LED2); + break; + }; + #endif + return state; } -void matrix_init_user(void) { +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(); + } } diff --git a/keyboards/handwired/jotanck/readme.md b/keyboards/handwired/jotanck/readme.md index e9dd8240301..3ceea1ef4c1 100644 --- a/keyboards/handwired/jotanck/readme.md +++ b/keyboards/handwired/jotanck/readme.md @@ -35,4 +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 + 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 7afae46ea6075a5410d230fb8c35eaacd1872ba2 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat, 20 Jul 2019 13:30:38 -0700 Subject: [PATCH 016/115] [Keyboard] Grid 600 Type 05 "PRESS" Cover Module (#6368) * add grid600 type 5 press cover module * Update keyboards/grid600/press/keymaps/default/keymap.c Co-Authored-By: fauxpark * remove unused custom keycode enum --- keyboards/grid600/press/config.h | 78 ++++++++++++++++++ keyboards/grid600/press/info.json | 12 +++ .../grid600/press/keymaps/default/config.h | 19 +++++ .../grid600/press/keymaps/default/keymap.c | 34 ++++++++ .../grid600/press/keymaps/default/readme.md | 1 + keyboards/grid600/press/press.c | 16 ++++ keyboards/grid600/press/press.h | 32 ++++++++ keyboards/grid600/press/readme.md | 18 +++++ keyboards/grid600/press/rules.mk | 80 +++++++++++++++++++ keyboards/grid600/readme.md | 7 ++ 10 files changed, 297 insertions(+) create mode 100644 keyboards/grid600/press/config.h create mode 100644 keyboards/grid600/press/info.json create mode 100644 keyboards/grid600/press/keymaps/default/config.h create mode 100644 keyboards/grid600/press/keymaps/default/keymap.c create mode 100644 keyboards/grid600/press/keymaps/default/readme.md create mode 100644 keyboards/grid600/press/press.c create mode 100644 keyboards/grid600/press/press.h create mode 100644 keyboards/grid600/press/readme.md create mode 100644 keyboards/grid600/press/rules.mk create mode 100644 keyboards/grid600/readme.md diff --git a/keyboards/grid600/press/config.h b/keyboards/grid600/press/config.h new file mode 100644 index 00000000000..7c934570054 --- /dev/null +++ b/keyboards/grid600/press/config.h @@ -0,0 +1,78 @@ +/* +Copyright 2019 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 0xFEED +#define PRODUCT_ID 0x7539 +#define DEVICE_VER 0x0005 +#define MANUFACTURER Grid +#define PRODUCT PRESS +#define DESCRIPTION Top module for Grid 600 + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 4 + +/* + * 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 { F0 } +#define MATRIX_COL_PINS { F1, F4, F5, F6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + + +#define RGB_DI_PIN B6 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 4 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + #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 +/*== 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 diff --git a/keyboards/grid600/press/info.json b/keyboards/grid600/press/info.json new file mode 100644 index 00000000000..131b094af55 --- /dev/null +++ b/keyboards/grid600/press/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Grid 600 Type 05 PRESS Cover Module", + "url": "", + "maintainer": "qmk", + "width": 4, + "height": 1, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}] + } + } +} \ No newline at end of file diff --git a/keyboards/grid600/press/keymaps/default/config.h b/keyboards/grid600/press/keymaps/default/config.h new file mode 100644 index 00000000000..60dd02a9d0e --- /dev/null +++ b/keyboards/grid600/press/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 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 + +// place overrides here diff --git a/keyboards/grid600/press/keymaps/default/keymap.c b/keyboards/grid600/press/keymaps/default/keymap.c new file mode 100644 index 00000000000..f253c692150 --- /dev/null +++ b/keyboards/grid600/press/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2019 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( /* Base */ + KC_G, KC_R, KC_I, KC_D + ), +}; + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/grid600/press/keymaps/default/readme.md b/keyboards/grid600/press/keymaps/default/readme.md new file mode 100644 index 00000000000..b29ee678683 --- /dev/null +++ b/keyboards/grid600/press/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for grid diff --git a/keyboards/grid600/press/press.c b/keyboards/grid600/press/press.c new file mode 100644 index 00000000000..33935deca4a --- /dev/null +++ b/keyboards/grid600/press/press.c @@ -0,0 +1,16 @@ +/* Copyright 2019 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 "press.h" \ No newline at end of file diff --git a/keyboards/grid600/press/press.h b/keyboards/grid600/press/press.h new file mode 100644 index 00000000000..ca9eac9d193 --- /dev/null +++ b/keyboards/grid600/press/press.h @@ -0,0 +1,32 @@ +/* Copyright 2019 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" + +/* 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( \ + K00, K01, K02, K03 \ +) { \ + { K00, K01, K02, K03 } \ +} diff --git a/keyboards/grid600/press/readme.md b/keyboards/grid600/press/readme.md new file mode 100644 index 00000000000..4113b372e9f --- /dev/null +++ b/keyboards/grid600/press/readme.md @@ -0,0 +1,18 @@ +# Grid 600 Type 05 "PRESS" Cover Module + +Cover module for Grid 600 Keyboard with 4 keys. + +Code for the module was originally located at [gridishere's QMK fork](https://github.com/gridishere/qmk_firmware/tree/master/keyboards/grid/gridmod5). + +Please keep in mind that this is actually a separate keyboard from the one installed in the Grid 600. +Functionality such as layer changes and light modifications triggered on one PCB will not affect the other. + +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +Hardware Supported: Grid 600 Type 05 "PRESS" cover module. +Hardware Availability: [zFrontier](https://en.zfrontier.com/products/grid600s) + +Make example for this keyboard (after setting up your build environment): + + make grid600/press: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/grid600/press/rules.mk b/keyboards/grid600/press/rules.mk new file mode 100644 index 00000000000..1fcf3841bec --- /dev/null +++ b/keyboards/grid600/press/rules.mk @@ -0,0 +1,80 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +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 +# 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 +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +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 (+2400 to 4200, depending on config) +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 (+400) diff --git a/keyboards/grid600/readme.md b/keyboards/grid600/readme.md new file mode 100644 index 00000000000..f7fa6a085b1 --- /dev/null +++ b/keyboards/grid600/readme.md @@ -0,0 +1,7 @@ +# Grid 600 Cover Modules + +The Grid 600 is a tray mount 60% case supporting most standard 60% PCBs. + +A unique feature of the Grid 600 is that it has five different cover modules that not only include USB C pass through, but also have functions such as RGB or additional macro keys. + +This is a collection of some of the programmable modules available for this enclosure. \ No newline at end of file From 0da743d80ba9c8dc913f46f91e16354883ac27ac Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 20 Jul 2019 21:35:30 +0100 Subject: [PATCH 017/115] [Keyboard] Refactor handwired/splittest to support multiple boards (#6373) * Refactor splittest to support multiple dev boards * Refactor splittest to support multiple dev boards - revert change to number of RGB led * Refactor splittest to support multiple dev boards - update docs * Refactor splittest to support multiple dev boards - correct docs * Refactor splittest to support multiple dev boards - update teensy master logic --- keyboards/handwired/splittest/config.h | 7 --- .../handwired/splittest/promicro/config.h | 28 +++++++++ .../handwired/splittest/promicro/readme.md | 11 ++++ .../handwired/splittest/promicro/rules.mk | 58 +++++++++++++++++++ keyboards/handwired/splittest/readme.md | 14 ++--- keyboards/handwired/splittest/rules.mk | 46 +-------------- .../handwired/splittest/teensy_2/config.h | 31 ++++++++++ .../handwired/splittest/teensy_2/readme.md | 11 ++++ .../handwired/splittest/teensy_2/rules.mk | 58 +++++++++++++++++++ .../handwired/splittest/teensy_2/teensy_2.c | 14 +++++ 10 files changed, 217 insertions(+), 61 deletions(-) create mode 100644 keyboards/handwired/splittest/promicro/config.h create mode 100644 keyboards/handwired/splittest/promicro/readme.md create mode 100644 keyboards/handwired/splittest/promicro/rules.mk create mode 100644 keyboards/handwired/splittest/teensy_2/config.h create mode 100644 keyboards/handwired/splittest/teensy_2/readme.md create mode 100644 keyboards/handwired/splittest/teensy_2/rules.mk create mode 100644 keyboards/handwired/splittest/teensy_2/teensy_2.c diff --git a/keyboards/handwired/splittest/config.h b/keyboards/handwired/splittest/config.h index a502d12382d..56574f75296 100644 --- a/keyboards/handwired/splittest/config.h +++ b/keyboards/handwired/splittest/config.h @@ -33,12 +33,6 @@ along with this program. If not, see . #define MATRIX_ROWS 2 #define MATRIX_COLS 1 -// wiring of each half -#define MATRIX_ROW_PINS { B3 } -#define MATRIX_COL_PINS { B6 } -#define SPLIT_HAND_PIN F6 -#define SOFT_SERIAL_PIN D1 - /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST @@ -51,7 +45,6 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE /* ws2812 RGB LED */ -#define RGB_DI_PIN D3 #define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 12 #define RGBLED_SPLIT { 6, 6 } diff --git a/keyboards/handwired/splittest/promicro/config.h b/keyboards/handwired/splittest/promicro/config.h new file mode 100644 index 00000000000..c2a9c6002e6 --- /dev/null +++ b/keyboards/handwired/splittest/promicro/config.h @@ -0,0 +1,28 @@ +/* Copyright 2019 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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" + +// wiring of each half +#define MATRIX_ROW_PINS { B3 } +#define MATRIX_COL_PINS { B6 } +#define SPLIT_HAND_PIN F6 +#define SOFT_SERIAL_PIN D1 + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 diff --git a/keyboards/handwired/splittest/promicro/readme.md b/keyboards/handwired/splittest/promicro/readme.md new file mode 100644 index 00000000000..64a6f4c2494 --- /dev/null +++ b/keyboards/handwired/splittest/promicro/readme.md @@ -0,0 +1,11 @@ +# Pro Micro splittest + +To trigger keypress, short together pins *B3* and *B6* (marked on the PCB as *14* and *10*). + +## Wiring +- Add switches to both Pro Micros across B3 and B6 pins +- Add pull-up resistor to left side between VCC and F6 +- Add pull-down resistors to right side between GND and F6 +- Connect the following pins on both sides together: D0, D1, GND, VCC +- Add I2C 4.7kOhm resistors between D0 and VCC, and D1 and VCC +- Wire Di of RGB strip for each half to D3 diff --git a/keyboards/handwired/splittest/promicro/rules.mk b/keyboards/handwired/splittest/promicro/rules.mk new file mode 100644 index 00000000000..dc6f1962373 --- /dev/null +++ b/keyboards/handwired/splittest/promicro/rules.mk @@ -0,0 +1,58 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = caterina + + +# 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 +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 diff --git a/keyboards/handwired/splittest/readme.md b/keyboards/handwired/splittest/readme.md index 3dbff32ed40..33dbc6e805d 100644 --- a/keyboards/handwired/splittest/readme.md +++ b/keyboards/handwired/splittest/readme.md @@ -4,7 +4,10 @@ Split Tester A two-switch tester built using two Pro Micros, mainly intended to test RGB on split keyboards. Seen here: https://www.instagram.com/p/BvCPNzynwrV/ Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro +Hardware Supported: Pro Micro, Teensy 2.0 +Hardware Availability: + +**See each individual board for pin infomation** Make example for this keyboard (after setting up your build environment): @@ -15,12 +18,3 @@ Example of flashing this keyboard: make handwired/splittest:default:avrdude 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). - -Wiring ------- -- Add switches to both Pro Micros across B3 and B6 pins -- Add pull-up resistor to left side between VCC and F6 -- Add pull-down resistors to right side between GND and F6 -- Connect the following pins on both sides together: D0, D1, GND, VCC -- Add I2C 4.7kOhm resistors between D0 and VCC, and D1 and VCC -- Wire Di of RGB strip for each half to D2 diff --git a/keyboards/handwired/splittest/rules.mk b/keyboards/handwired/splittest/rules.mk index 9512c0f6482..2aa484db0bb 100644 --- a/keyboards/handwired/splittest/rules.mk +++ b/keyboards/handwired/splittest/rules.mk @@ -1,47 +1,3 @@ -# MCU name -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Bootloader -# This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded -# automatically (+60). See bootloader.mk for all options. -BOOTLOADER = caterina - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - # Build Options # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically @@ -63,3 +19,5 @@ RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SPLIT_KEYBOARD = yes + +DEFAULT_FOLDER = handwired/splittest/promicro diff --git a/keyboards/handwired/splittest/teensy_2/config.h b/keyboards/handwired/splittest/teensy_2/config.h new file mode 100644 index 00000000000..3d0b0346edf --- /dev/null +++ b/keyboards/handwired/splittest/teensy_2/config.h @@ -0,0 +1,31 @@ +/* Copyright 2019 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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" + +// wiring of each half +#define MATRIX_ROW_PINS { F5 } +#define MATRIX_COL_PINS { F7 } +#define SPLIT_HAND_PIN F0 +#define SOFT_SERIAL_PIN D1 + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 + +// required for teensy slave otherwise it "locks up" during startup +#define NO_USB_STARTUP_CHECK diff --git a/keyboards/handwired/splittest/teensy_2/readme.md b/keyboards/handwired/splittest/teensy_2/readme.md new file mode 100644 index 00000000000..ed5f845d201 --- /dev/null +++ b/keyboards/handwired/splittest/teensy_2/readme.md @@ -0,0 +1,11 @@ +# Teensy 2.0 splittest + +To trigger keypress, short together pins *F5* and *F7* + +## Wiring +- Add switches to both Teensy 2s across F5 and F7 pins +- Add pull-up resistor to left side between VCC and F0 +- Add pull-down resistors to right side between GND and F0 +- Connect the following pins on both sides together: D0, D1, GND, VCC +- Add I2C 4.7kOhm resistors between D0 and VCC, and D1 and VCC +- Wire Di of RGB strip for each half to D3 diff --git a/keyboards/handwired/splittest/teensy_2/rules.mk b/keyboards/handwired/splittest/teensy_2/rules.mk new file mode 100644 index 00000000000..3fb7c7e5a7e --- /dev/null +++ b/keyboards/handwired/splittest/teensy_2/rules.mk @@ -0,0 +1,58 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = halfkay + + +# 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 +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 diff --git a/keyboards/handwired/splittest/teensy_2/teensy_2.c b/keyboards/handwired/splittest/teensy_2/teensy_2.c new file mode 100644 index 00000000000..bcc2a437bdc --- /dev/null +++ b/keyboards/handwired/splittest/teensy_2/teensy_2.c @@ -0,0 +1,14 @@ +#include QMK_KEYBOARD_H + +bool is_keyboard_master(void) { + // TODO: replace this override once USB host detection is implemented + // SPLIT_HAND_PIN Combined with MASTER_LEFT or MASTER_RIGHT, gives a crude + // way to force teensy to run as slave/master + setPinInput(SPLIT_HAND_PIN); + +#if defined(MASTER_RIGHT) + return !readPin(SPLIT_HAND_PIN); +#else + return readPin(SPLIT_HAND_PIN); +#endif +} From cf2ffadbcdaecd5e480f7e03c8015a06869616e4 Mon Sep 17 00:00:00 2001 From: Sid Carter Date: Sat, 20 Jul 2019 16:36:14 -0400 Subject: [PATCH 018/115] [Keymap] Add Colemak to existing fc660c keymap (#6374) * consistent enums * add colemak to another layer for fun * update readme * consistent enums * add colemak to another layer for fun * update readme --- keyboards/fc660c/keymaps/siroleo/README.md | 1 + keyboards/fc660c/keymaps/siroleo/keymap.c | 71 +++++++++++++++++++--- 2 files changed, 62 insertions(+), 10 deletions(-) diff --git a/keyboards/fc660c/keymaps/siroleo/README.md b/keyboards/fc660c/keymaps/siroleo/README.md index 91dd9ed3b1b..f174c7f3ebd 100644 --- a/keyboards/fc660c/keymaps/siroleo/README.md +++ b/keyboards/fc660c/keymaps/siroleo/README.md @@ -6,3 +6,4 @@ Emulates original keymap with modifications for: - Grave key(s) - Reset on the function layer - Mouse keys ala Tada68 +- A layer for playing with Colemak diff --git a/keyboards/fc660c/keymaps/siroleo/keymap.c b/keyboards/fc660c/keymaps/siroleo/keymap.c index a2d859f152d..37113367132 100644 --- a/keyboards/fc660c/keymaps/siroleo/keymap.c +++ b/keyboards/fc660c/keymaps/siroleo/keymap.c @@ -16,6 +16,21 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H +enum siroleo_layers +{ + _QWERTY, + _COLEMAK, + _FNM +}; + +enum siroleo_keycodes +{ + QWERTY = SAFE_RANGE, + COLEMAK +}; + +#define FNM MO(_FNM) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* BASE layer: Default Layer * ,--------------------------------------------------------------------------------------------------. @@ -30,12 +45,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Alt | Gui | Space | Fn | Ctrl | Alt | Left| Down|Right| * `--------------------------------------------------------------------------------------------------´ */ - [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_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_GRV ,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, - KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, - KC_LCTL,KC_LALT,KC_LGUI, KC_SPC, MO(1),KC_RCTL,KC_RALT, KC_LEFT,KC_DOWN,KC_RGHT + [_QWERTY] = 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_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_GRV , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, KC_UP, + KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, FNM,KC_RCTL,KC_RALT, KC_LEFT,KC_DOWN,KC_RGHT + ), + /* Colemak Layer + * ,--------------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | | ` | + * |-----------------------------------------------------------------------------------------+ +-----+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | | Del | + * |-----------------------------------------------------------------------------------------+ +-----+ + * | ` | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |--------------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | + * +--------------------------------------------------------------------------------------------+-----+ + * | Ctrl | Alt | Gui | Space | Fn | Ctrl | Alt | Left| Down|Right| + * `--------------------------------------------------------------------------------------------------´ + */ + [_COLEMAK] = 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_BSPC, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, + KC_GRV , KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O ,KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, KC_UP, + KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, FNM,KC_RCTL,KC_RALT, KC_LEFT,KC_DOWN,KC_RGHT ), /* FN layer * ,--------------------------------------------------------------------------------------------------. @@ -50,11 +85,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | Reset | | | | | | MsL | MsD | MsR | * `--------------------------------------------------------------------------------------------------´ */ - [1] = LAYOUT( + [_FNM] = 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_MUTE, KC_VOLU, - _______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS,_______,_______,_______, KC_VOLD, - _______,_______,_______,_______,_______,_______,_______,_______,KC_HOME,KC_PGUP,_______,_______, _______, + _______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS,_______,_______, RESET, KC_VOLD, + _______,_______,_______, QWERTY,COLEMAK,_______,_______,_______,KC_HOME,KC_PGUP,_______,_______, _______, _______,_______,_______,_______,_______,_______,_______,_______,KC_END, KC_PGDN,_______,KC_BTN1, KC_MS_U, - _______, RESET,_______, _______, MO(1), _______,_______, KC_MS_L,KC_MS_D,KC_MS_R + _______,_______,_______, _______, _______,_______,_______, KC_MS_L,KC_MS_D,KC_MS_R ) }; + +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; +} \ No newline at end of file From b3cdc7ef70dd4bbf7d458a90c75c4d72f97e340e Mon Sep 17 00:00:00 2001 From: trinity1561 <47289299+trinity1561@users.noreply.github.com> Date: Sat, 20 Jul 2019 16:37:42 -0400 Subject: [PATCH 019/115] [Keyboard] Update space65.c to fix caps lock LED (#6375) --- keyboards/gray_studio/space65/space65.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/keyboards/gray_studio/space65/space65.c b/keyboards/gray_studio/space65/space65.c index f9f2224ab81..74a86a202d0 100644 --- a/keyboards/gray_studio/space65/space65.c +++ b/keyboards/gray_studio/space65/space65.c @@ -19,6 +19,7 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up + setPinOutput(E6); matrix_init_user(); } @@ -39,9 +40,9 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { 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_CAPS_LOCK)) { - writePinHigh(E6); - } else { writePinLow(E6); + } else { + writePinHigh(E6); } led_set_user(usb_led); From d686c0ea43d6a9db7768da64ee54c3ba25c018f7 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 20 Jul 2019 13:49:28 -0700 Subject: [PATCH 020/115] [Keyboard] Snagpad Configurator bugfix and readme refactor (#6381) * Update snagpad.h White-space changes only. Making this file easier to read. * Update info.json Refactor: - add labels - debug linting (one key object per line) - reorder keys for LAYOUT_numpad_5x4 (fixes QMK Configurator assigning keys to incorrect positions) * Update readme.md Refactor to conform to QMK template. Updated link to The Board Podcast (old link was Error 404). --- keyboards/snagpad/info.json | 49 +++++++++++++++++++++++++++++++++---- keyboards/snagpad/readme.md | 24 +++++++++--------- keyboards/snagpad/snagpad.h | 40 +++++++++++++++--------------- 3 files changed, 76 insertions(+), 37 deletions(-) diff --git a/keyboards/snagpad/info.json b/keyboards/snagpad/info.json index f6b19ee81ee..6e3ab601a0a 100644 --- a/keyboards/snagpad/info.json +++ b/keyboards/snagpad/info.json @@ -7,11 +7,50 @@ "height": 5, "layouts": { - "LAYOUT_ortho_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":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}] - }, + "LAYOUT_ortho_5x4": { + "layout": [ + {"label":"Num Lock", "x":0, "y":0}, + {"label":"/", "x":1, "y":0}, + {"label":"*", "x":2, "y":0}, + {"label":"-", "x":3, "y":0}, + {"label":"7", "x":0, "y":1}, + {"label":"8", "x":1, "y":1}, + {"label":"9", "x":2, "y":1}, + {"label":"+", "x":3, "y":1}, + {"label":"4", "x":0, "y":2}, + {"label":"5", "x":1, "y":2}, + {"label":"6", "x":2, "y":2}, + {"label":"+", "x":3, "y":2}, + {"label":"1", "x":0, "y":3}, + {"label":"2", "x":1, "y":3}, + {"label":"3", "x":2, "y":3}, + {"label":"Enter", "x":3, "y":3}, + {"label":"0", "x":0, "y":4}, + {"label":"0", "x":1, "y":4}, + {"label":".", "x":2, "y":4}, + {"label":"Enter", "x":3, "y":4} + ] + }, "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":3, "y":1, "h":2}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3, "h":2}, {"x":0, "y":4, "w":2}, {"x":2, "y":4}] - } + "layout": [ + {"label":"Num Lock", "x":0, "y":0}, + {"label":"/", "x":1, "y":0}, + {"label":"*", "x":2, "y":0}, + {"label":"-", "x":3, "y":0}, + {"label":"7", "x":0, "y":1}, + {"label":"8", "x":1, "y":1}, + {"label":"9", "x":2, "y":1}, + {"label":"4", "x":0, "y":2}, + {"label":"5", "x":1, "y":2}, + {"label":"6", "x":2, "y":2}, + {"label":"+", "x":3, "y":1, "h":2}, + {"label":"1", "x":0, "y":3}, + {"label":"2", "x":1, "y":3}, + {"label":"3", "x":2, "y":3}, + {"label":"0", "x":0, "y":4, "w":2}, + {"label":".", "x":2, "y":4}, + {"label":"Enter", "x":3, "y":3, "h":2} + ] + } } } diff --git a/keyboards/snagpad/readme.md b/keyboards/snagpad/readme.md index eeafceba9a7..b59bd758860 100644 --- a/keyboards/snagpad/readme.md +++ b/keyboards/snagpad/readme.md @@ -1,21 +1,21 @@ # Snagpad -QMK for Snagpad -This PCB can be used as a standard numpad, or a ortho 5x4 macropad. +A five-row PCB that can be built as a standard numpad or an ortholinear 5x4 macropad. Can be built as single PCB with custom case, or as two PCB style with standoffs. Requires a Pro Micro. -For QMK Configurator, the info.json is utilised. -- For 2U keys on numpad, the first 1u row/column key assignment is the same as the 2u position. +Keyboard Maintainer: [Flehrad](https://github.com/flehrad) +Hardware Supported: Snagpad PCB, Pro Micro +Hardware Availability: [GitHub](https://github.com/flehrad/Snagpad) -Build requires a pro micro. +Make example for this keyboard (after setting up your build environment): -Can be built as single PCB with custom case, or as two PCB style with standoffs. + make snagpad:default -If you like this simple PCB and want to make a donation, you can at https://paypal.me/theboardpodcast +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). + +If you like this simple PCB and want to make a donation, you can do so at https://paypal.me/theboardpodcast. Check out our: -YouTube (https://www.youtube.com/channel/UCg98oJZNffR9nDLJNkorjqw) - -Podcast (www.libsyn.com/theboardpodcast) - -Patreon (www.patreon.com/theboardpodcast) +- [YouTube](https://www.youtube.com/channel/UCg98oJZNffR9nDLJNkorjqw) +- [Podcast](https://podcasts.apple.com/au/podcast/theboard-mechanical-keyboard/id1147089749?mt=2) +- [Patreon](https://www.patreon.com/theboardpodcast) diff --git a/keyboards/snagpad/snagpad.h b/keyboards/snagpad/snagpad.h index d6a62ddf7ef..f1e5e34e62a 100644 --- a/keyboards/snagpad/snagpad.h +++ b/keyboards/snagpad/snagpad.h @@ -3,28 +3,28 @@ #include "quantum.h" #define LAYOUT_ortho_5x4( \ - K00, K01, K02, K03, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23, \ - K30, K31, K32, K33, \ - K40, K41, K42, K43 \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43 \ ) { \ - { K00, K01, K02, K03 }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, K33 }, \ - { K40, K41, K42, K43 } \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 }, \ + { K40, K41, K42, K43 } \ } #define LAYOUT_numpad_5x4( \ - K00, K01, K02, K03, \ - K10, K11, K12, \ - K20, K21, K22, K13, \ - K30, K31, K32, \ - K40, K42, K33 \ + K00, K01, K02, K03, \ + K10, K11, K12, \ + K20, K21, K22, K13, \ + K30, K31, K32, \ + K40, K42, K33 \ ) { \ - { K00, K01, K02, K03 }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, KC_NO }, \ - { K30, K31, K32, K33 }, \ - { K40, KC_NO, K42, KC_NO } \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, KC_NO }, \ + { K30, K31, K32, K33 }, \ + { K40, KC_NO, K42, KC_NO } \ } From bffbb4b42d3167125f54b5aeb7a30fef44ff5dbe Mon Sep 17 00:00:00 2001 From: Wilba Date: Sun, 21 Jul 2019 21:46:22 +1000 Subject: [PATCH 021/115] Refactoring wilba.tech PCBs, updating Rama Works U80-A (#6272) * Added WT65-B, WT75-B, minor fixes * Update keyboards/wilba_tech/wt65_b/config.h Co-Authored-By: Drashna Jaelre * Update keyboards/wilba_tech/wt65_b/readme.md Co-Authored-By: fauxpark * Update keyboards/wilba_tech/wt75_b/config.h Co-Authored-By: Drashna Jaelre * Change DEBOUNCING_DELAY to DEBOUNCE * Change DEBOUNCING_DELAY to DEBOUNCE * Move Zeal60/Zeal65 files to keyboards/wilba_tech * Change DEBOUNCING_DELAY to DEBOUNCE * Refactoring zeal60 code to wilba_tech * Moved Rama Works PCBs to wilba_tech * Rename Rama Works files * Cleanup info.json * Cleanup readme.md * Cleanup USB device strings * U80-A RGB matrix, IS31FL3731 driver changes * Fixed #include from keyboards/zeal60 --- drivers/issi/is31fl3731.c | 36 +- drivers/issi/is31fl3731.h | 4 +- .../satisfaction75/satisfaction75.c | 6 +- keyboards/cannonkeys/stm32f072/keyboard.c | 4 +- keyboards/hs60/v2/keymaps/ansi_via/rules.mk | 4 +- .../hs60/v2/keymaps/default_via/rules.mk | 4 +- keyboards/hs60/v2/keymaps/goatmaster/rules.mk | 4 +- keyboards/hs60/v2/keymaps/hhkb_via/rules.mk | 4 +- keyboards/hs60/v2/keymaps/iso_andys8/rules.mk | 4 +- keyboards/hs60/v2/keymaps/stanrc85/rules.mk | 4 +- .../hs60/v2/keymaps/win_osx_dual/rules.mk | 4 +- keyboards/hs60/v2/rules.mk | 4 +- keyboards/hs60/v2/v2.h | 4 +- keyboards/keebio/iris/iris.h | 2 +- keyboards/nk65/keymaps/default_via/rules.mk | 4 +- keyboards/nk65/nk65.h | 4 +- keyboards/nk65/rules.mk | 4 +- keyboards/rama/readme.md | 11 - keyboards/rama/u80_a/keymaps/default/keymap.c | 37 -- .../rama_works_koyu}/config.h | 6 +- .../rama_works_koyu}/info.json | 6 +- .../rama_works_koyu}/keymaps/default/keymap.c | 0 .../rama_works_koyu/rama_works_koyu.c} | 0 .../rama_works_koyu/rama_works_koyu.h} | 4 +- .../rama_works_koyu}/readme.md | 8 +- .../rama_works_koyu}/rules.mk | 4 +- .../rama_works_m10_b}/config.h | 6 +- .../rama_works_m10_b}/info.json | 6 +- .../keymaps/default/config.h | 0 .../keymaps/default/keymap.c | 0 .../keymaps/default/readme.md | 0 .../rama_works_m10_b}/keymaps/knops/config.h | 0 .../rama_works_m10_b}/keymaps/knops/keymap.c | 0 .../rama_works_m10_b}/keymaps/knops/readme.md | 0 .../rama_works_m10_b/rama_works_m10_b.c} | 0 .../rama_works_m10_b/rama_works_m10_b.h} | 0 .../rama_works_m10_b}/readme.md | 8 +- .../rama_works_m10_b}/rules.mk | 0 .../rama_works_m60_a}/config.h | 6 +- .../rama_works_m60_a}/info.json | 6 +- .../keymaps/default/keymap.c | 0 .../rama_works_m60_a}/keymaps/proto/config.h | 0 .../rama_works_m60_a}/keymaps/proto/keymap.c | 0 .../rama_works_m60_a/rama_works_m60_a.c} | 0 .../rama_works_m60_a/rama_works_m60_a.h} | 4 +- .../rama_works_m60_a}/readme.md | 8 +- .../rama_works_m60_a}/rules.mk | 4 +- .../rama_works_m6_a}/config.h | 6 +- .../rama_works_m6_a}/info.json | 6 +- .../rama_works_m6_a}/keymaps/default/keymap.c | 0 .../keymaps/default/readme.md | 0 .../rama_works_m6_a}/keymaps/knops/config.h | 0 .../rama_works_m6_a}/keymaps/knops/keymap.c | 0 .../rama_works_m6_a}/keymaps/knops/readme.md | 0 .../rama_works_m6_a}/keymaps/krusli/README.md | 0 .../rama_works_m6_a}/keymaps/krusli/keymap.c | 0 .../rama_works_m6_a}/keymaps/naut/config.h | 0 .../rama_works_m6_a}/keymaps/naut/keymap.c | 0 .../rama_works_m6_a}/keymaps/naut/readme.md | 0 .../rama_works_m6_a/rama_works_m6_a.c} | 0 .../rama_works_m6_a/rama_works_m6_a.h} | 0 .../rama_works_m6_a}/readme.md | 8 +- .../rama_works_m6_a}/rules.mk | 2 +- .../rama_works_m6_b}/config.h | 6 +- .../rama_works_m6_b}/info.json | 6 +- .../rama_works_m6_b}/keymaps/default/keymap.c | 0 .../rama_works_m6_b/rama_works_m6_b.c} | 0 .../rama_works_m6_b/rama_works_m6_b.h} | 0 .../rama_works_m6_b}/readme.md | 8 +- .../rama_works_m6_b}/rules.mk | 4 +- .../rama_works_u80_a}/config.h | 76 +++- .../rama_works_u80_a}/info.json | 4 +- .../rama_works_u80_a/keymaps/default/keymap.c | 37 ++ .../rama_works_u80_a/rama_works_u80_a.c} | 0 .../rama_works_u80_a/rama_works_u80_a.h} | 14 +- .../rama_works_u80_a}/readme.md | 8 +- .../rama_works_u80_a}/rules.mk | 10 +- .../zeal60_api.h => wilba_tech/via_api.h} | 4 +- .../via_keycodes.h} | 6 +- keyboards/wilba_tech/wt_main.c | 125 +++++- .../wt_rgb_backlight.c} | 276 ++++++++++++- .../wt_rgb_backlight.h} | 0 .../wt_rgb_backlight_api.h} | 2 +- .../wt_rgb_backlight_keycodes.h} | 2 +- keyboards/{ => wilba_tech}/zeal60/config.h | 0 keyboards/{ => wilba_tech}/zeal60/info.json | 4 +- .../keymaps/ansi_split_bs_rshift/config.h | 0 .../keymaps/ansi_split_bs_rshift/keymap.c | 0 .../zeal60/keymaps/crd/config.h | 0 .../zeal60/keymaps/crd/keymap.c | 0 .../zeal60/keymaps/default/config.h | 0 .../zeal60/keymaps/default/keymap.c | 0 .../zeal60/keymaps/hhkb/config.h | 0 .../zeal60/keymaps/hhkb/keymap.c | 0 .../zeal60/keymaps/iso/config.h | 0 .../zeal60/keymaps/iso/keymap.c | 0 .../zeal60/keymaps/ryanmaclean/config.h | 0 .../zeal60/keymaps/ryanmaclean/keymap.c | 0 .../zeal60/keymaps/tusing/Makefile | 0 .../zeal60/keymaps/tusing/README.md | 0 .../zeal60/keymaps/tusing/config.h | 0 .../zeal60/keymaps/tusing/keymap.c | 0 keyboards/{ => wilba_tech}/zeal60/readme.md | 2 +- keyboards/{ => wilba_tech}/zeal60/rules.mk | 3 +- keyboards/wilba_tech/zeal60/zeal60.c | 18 + keyboards/{ => wilba_tech}/zeal60/zeal60.h | 4 +- keyboards/{ => wilba_tech}/zeal65/config.h | 0 keyboards/{ => wilba_tech}/zeal65/info.json | 4 +- .../zeal65/keymaps/default/config.h | 0 .../zeal65/keymaps/default/keymap.c | 0 .../zeal65/keymaps/split_bs/config.h | 0 .../zeal65/keymaps/split_bs/keymap.c | 0 keyboards/{ => wilba_tech}/zeal65/readme.md | 2 +- keyboards/{ => wilba_tech}/zeal65/rules.mk | 4 +- keyboards/{ => wilba_tech}/zeal65/zeal65.c | 0 keyboards/{ => wilba_tech}/zeal65/zeal65.h | 4 +- keyboards/zeal60/zeal60.c | 376 ------------------ quantum/rgb_matrix_drivers.c | 6 +- 118 files changed, 655 insertions(+), 606 deletions(-) delete mode 100644 keyboards/rama/readme.md delete mode 100644 keyboards/rama/u80_a/keymaps/default/keymap.c rename keyboards/{rama/koyu => wilba_tech/rama_works_koyu}/config.h (97%) rename keyboards/{rama/koyu => wilba_tech/rama_works_koyu}/info.json (95%) rename keyboards/{rama/koyu => wilba_tech/rama_works_koyu}/keymaps/default/keymap.c (100%) rename keyboards/{rama/koyu/koyu.c => wilba_tech/rama_works_koyu/rama_works_koyu.c} (100%) rename keyboards/{rama/koyu/koyu.h => wilba_tech/rama_works_koyu/rama_works_koyu.h} (95%) rename keyboards/{rama/koyu => wilba_tech/rama_works_koyu}/readme.md (84%) rename keyboards/{rama/koyu => wilba_tech/rama_works_koyu}/rules.mk (97%) rename keyboards/{rama/m10_b => wilba_tech/rama_works_m10_b}/config.h (98%) rename keyboards/{rama/m10_b => wilba_tech/rama_works_m10_b}/info.json (80%) rename keyboards/{rama/m10_b => wilba_tech/rama_works_m10_b}/keymaps/default/config.h (100%) rename keyboards/{rama/m10_b => wilba_tech/rama_works_m10_b}/keymaps/default/keymap.c (100%) rename keyboards/{rama/m10_b => wilba_tech/rama_works_m10_b}/keymaps/default/readme.md (100%) rename keyboards/{rama/m10_b => wilba_tech/rama_works_m10_b}/keymaps/knops/config.h (100%) rename keyboards/{rama/m10_b => wilba_tech/rama_works_m10_b}/keymaps/knops/keymap.c (100%) rename keyboards/{rama/m10_b => wilba_tech/rama_works_m10_b}/keymaps/knops/readme.md (100%) rename keyboards/{rama/m10_b/m10_b.c => wilba_tech/rama_works_m10_b/rama_works_m10_b.c} (100%) rename keyboards/{rama/m10_b/m10_b.h => wilba_tech/rama_works_m10_b/rama_works_m10_b.h} (100%) rename keyboards/{rama/m10_b => wilba_tech/rama_works_m10_b}/readme.md (55%) rename keyboards/{rama/m10_b => wilba_tech/rama_works_m10_b}/rules.mk (100%) rename keyboards/{rama/m60_a => wilba_tech/rama_works_m60_a}/config.h (97%) rename keyboards/{rama/m60_a => wilba_tech/rama_works_m60_a}/info.json (95%) rename keyboards/{rama/m60_a => wilba_tech/rama_works_m60_a}/keymaps/default/keymap.c (100%) rename keyboards/{rama/m60_a => wilba_tech/rama_works_m60_a}/keymaps/proto/config.h (100%) rename keyboards/{rama/m60_a => wilba_tech/rama_works_m60_a}/keymaps/proto/keymap.c (100%) rename keyboards/{rama/m60_a/m60_a.c => wilba_tech/rama_works_m60_a/rama_works_m60_a.c} (100%) rename keyboards/{rama/m60_a/m60_a.h => wilba_tech/rama_works_m60_a/rama_works_m60_a.h} (93%) rename keyboards/{rama/m60_a => wilba_tech/rama_works_m60_a}/readme.md (77%) rename keyboards/{rama/m60_a => wilba_tech/rama_works_m60_a}/rules.mk (97%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/config.h (97%) rename keyboards/{rama/m6_b => wilba_tech/rama_works_m6_a}/info.json (74%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/keymaps/default/keymap.c (100%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/keymaps/default/readme.md (100%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/keymaps/knops/config.h (100%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/keymaps/knops/keymap.c (100%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/keymaps/knops/readme.md (100%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/keymaps/krusli/README.md (100%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/keymaps/krusli/keymap.c (100%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/keymaps/naut/config.h (100%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/keymaps/naut/keymap.c (100%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/keymaps/naut/readme.md (100%) rename keyboards/{rama/m6_a/m6_a.c => wilba_tech/rama_works_m6_a/rama_works_m6_a.c} (100%) rename keyboards/{rama/m6_a/m6_a.h => wilba_tech/rama_works_m6_a/rama_works_m6_a.h} (100%) rename keyboards/{rama/m6_b => wilba_tech/rama_works_m6_a}/readme.md (65%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_a}/rules.mk (98%) rename keyboards/{rama/m6_b => wilba_tech/rama_works_m6_b}/config.h (98%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_b}/info.json (74%) rename keyboards/{rama/m6_b => wilba_tech/rama_works_m6_b}/keymaps/default/keymap.c (100%) rename keyboards/{rama/m6_b/m6_b.c => wilba_tech/rama_works_m6_b/rama_works_m6_b.c} (100%) rename keyboards/{rama/m6_b/m6_b.h => wilba_tech/rama_works_m6_b/rama_works_m6_b.h} (100%) rename keyboards/{rama/m6_a => wilba_tech/rama_works_m6_b}/readme.md (65%) rename keyboards/{rama/m6_b => wilba_tech/rama_works_m6_b}/rules.mk (97%) rename keyboards/{rama/u80_a => wilba_tech/rama_works_u80_a}/config.h (70%) rename keyboards/{rama/u80_a => wilba_tech/rama_works_u80_a}/info.json (97%) create mode 100644 keyboards/wilba_tech/rama_works_u80_a/keymaps/default/keymap.c rename keyboards/{rama/u80_a/u80_a.c => wilba_tech/rama_works_u80_a/rama_works_u80_a.c} (100%) rename keyboards/{rama/u80_a/u80_a.h => wilba_tech/rama_works_u80_a/rama_works_u80_a.h} (76%) rename keyboards/{rama/u80_a => wilba_tech/rama_works_u80_a}/readme.md (75%) rename keyboards/{rama/u80_a => wilba_tech/rama_works_u80_a}/rules.mk (93%) rename keyboards/{zeal60/zeal60_api.h => wilba_tech/via_api.h} (96%) rename keyboards/{zeal60/zeal60_keycodes.h => wilba_tech/via_keycodes.h} (94%) rename keyboards/{zeal60/rgb_backlight.c => wilba_tech/wt_rgb_backlight.c} (87%) rename keyboards/{zeal60/rgb_backlight.h => wilba_tech/wt_rgb_backlight.h} (100%) rename keyboards/{zeal60/rgb_backlight_api.h => wilba_tech/wt_rgb_backlight_api.h} (97%) rename keyboards/{zeal60/rgb_backlight_keycodes.h => wilba_tech/wt_rgb_backlight_keycodes.h} (96%) rename keyboards/{ => wilba_tech}/zeal60/config.h (100%) rename keyboards/{ => wilba_tech}/zeal60/info.json (99%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/ansi_split_bs_rshift/config.h (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/ansi_split_bs_rshift/keymap.c (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/crd/config.h (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/crd/keymap.c (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/default/config.h (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/default/keymap.c (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/hhkb/config.h (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/hhkb/keymap.c (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/iso/config.h (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/iso/keymap.c (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/ryanmaclean/config.h (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/ryanmaclean/keymap.c (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/tusing/Makefile (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/tusing/README.md (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/tusing/config.h (100%) rename keyboards/{ => wilba_tech}/zeal60/keymaps/tusing/keymap.c (100%) rename keyboards/{ => wilba_tech}/zeal60/readme.md (98%) rename keyboards/{ => wilba_tech}/zeal60/rules.mk (97%) create mode 100644 keyboards/wilba_tech/zeal60/zeal60.c rename keyboards/{ => wilba_tech}/zeal60/zeal60.h (97%) rename keyboards/{ => wilba_tech}/zeal65/config.h (100%) rename keyboards/{ => wilba_tech}/zeal65/info.json (98%) rename keyboards/{ => wilba_tech}/zeal65/keymaps/default/config.h (100%) rename keyboards/{ => wilba_tech}/zeal65/keymaps/default/keymap.c (100%) rename keyboards/{ => wilba_tech}/zeal65/keymaps/split_bs/config.h (100%) rename keyboards/{ => wilba_tech}/zeal65/keymaps/split_bs/keymap.c (100%) rename keyboards/{ => wilba_tech}/zeal65/readme.md (95%) rename keyboards/{ => wilba_tech}/zeal65/rules.mk (97%) rename keyboards/{ => wilba_tech}/zeal65/zeal65.c (100%) rename keyboards/{ => wilba_tech}/zeal65/zeal65.h (95%) delete mode 100644 keyboards/zeal60/zeal60.c diff --git a/drivers/issi/is31fl3731.c b/drivers/issi/is31fl3731.c index c9155f5a373..30c7dd0530c 100644 --- a/drivers/issi/is31fl3731.c +++ b/drivers/issi/is31fl3731.c @@ -71,10 +71,10 @@ uint8_t g_twi_transfer_buffer[20]; // buffers and the transfers in IS31FL3731_write_pwm_buffer() but it's // probably not worth the extra complexity. uint8_t g_pwm_buffer[DRIVER_COUNT][144]; -bool g_pwm_buffer_update_required = false; +bool g_pwm_buffer_update_required[DRIVER_COUNT] = { false }; uint8_t g_led_control_registers[DRIVER_COUNT][18] = { { 0 }, { 0 } }; -bool g_led_control_registers_update_required = false; +bool g_led_control_registers_update_required[DRIVER_COUNT] = { false }; // This is the bit pattern in the LED control registers // (for matrix A, add one to register for matrix B) @@ -204,7 +204,7 @@ void IS31FL3731_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ) g_pwm_buffer[led.driver][led.r - 0x24] = red; g_pwm_buffer[led.driver][led.g - 0x24] = green; g_pwm_buffer[led.driver][led.b - 0x24] = blue; - g_pwm_buffer_update_required = true; + g_pwm_buffer_update_required[led.driver] = true; } } @@ -220,12 +220,12 @@ void IS31FL3731_set_led_control_register( uint8_t index, bool red, bool green, b { is31_led led = g_is31_leds[index]; - uint8_t control_register_r = (led.r - 0x24) / 8; - uint8_t control_register_g = (led.g - 0x24) / 8; - uint8_t control_register_b = (led.b - 0x24) / 8; - uint8_t bit_r = (led.r - 0x24) % 8; - uint8_t bit_g = (led.g - 0x24) % 8; - uint8_t bit_b = (led.b - 0x24) % 8; + uint8_t control_register_r = (led.r - 0x24) / 8; + uint8_t control_register_g = (led.g - 0x24) / 8; + uint8_t control_register_b = (led.b - 0x24) / 8; + uint8_t bit_r = (led.r - 0x24) % 8; + uint8_t bit_g = (led.g - 0x24) % 8; + uint8_t bit_b = (led.b - 0x24) % 8; if ( red ) { g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r); @@ -243,28 +243,26 @@ void IS31FL3731_set_led_control_register( uint8_t index, bool red, bool green, b g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b); } - g_led_control_registers_update_required = true; + g_led_control_registers_update_required[led.driver] = true; } -void IS31FL3731_update_pwm_buffers( uint8_t addr1, uint8_t addr2 ) +void IS31FL3731_update_pwm_buffers( uint8_t addr, uint8_t index ) { - if ( g_pwm_buffer_update_required ) + if ( g_pwm_buffer_update_required[index] ) { - IS31FL3731_write_pwm_buffer( addr1, g_pwm_buffer[0] ); - IS31FL3731_write_pwm_buffer( addr2, g_pwm_buffer[1] ); + IS31FL3731_write_pwm_buffer( addr, g_pwm_buffer[index] ); } - g_pwm_buffer_update_required = false; + g_pwm_buffer_update_required[index] = false; } -void IS31FL3731_update_led_control_registers( uint8_t addr1, uint8_t addr2 ) +void IS31FL3731_update_led_control_registers( uint8_t addr, uint8_t index ) { - if ( g_led_control_registers_update_required ) + if ( g_led_control_registers_update_required[index] ) { for ( int i=0; i<18; i++ ) { - IS31FL3731_write_register(addr1, i, g_led_control_registers[0][i] ); - IS31FL3731_write_register(addr2, i, g_led_control_registers[1][i] ); + IS31FL3731_write_register( addr, i, g_led_control_registers[index][i] ); } } } diff --git a/drivers/issi/is31fl3731.h b/drivers/issi/is31fl3731.h index f354a12db2b..968638f86af 100644 --- a/drivers/issi/is31fl3731.h +++ b/drivers/issi/is31fl3731.h @@ -44,8 +44,8 @@ void IS31FL3731_set_led_control_register( uint8_t index, bool red, bool green, b // (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 IS31FL3731_update_pwm_buffers( uint8_t addr1, uint8_t addr2 ); -void IS31FL3731_update_led_control_registers( uint8_t addr1, uint8_t addr2 ); +void IS31FL3731_update_pwm_buffers( uint8_t addr, uint8_t index ); +void IS31FL3731_update_led_control_registers( uint8_t addr, uint8_t index ); #define C1_1 0x24 #define C1_2 0x25 diff --git a/keyboards/cannonkeys/satisfaction75/satisfaction75.c b/keyboards/cannonkeys/satisfaction75/satisfaction75.c index 0e788b29b78..531bf047466 100644 --- a/keyboards/cannonkeys/satisfaction75/satisfaction75.c +++ b/keyboards/cannonkeys/satisfaction75/satisfaction75.c @@ -17,8 +17,8 @@ #include "tmk_core/common/eeprom.h" // HACK -#include "keyboards/zeal60/zeal60_api.h" // Temporary hack -#include "keyboards/zeal60/zeal60_keycodes.h" // Temporary hack +#include "keyboards/wilba_tech/via_api.h" // Temporary hack +#include "keyboards/wilba_tech/via_keycodes.h" // Temporary hack /* Artificial delay added to get media keys to work in the encoder*/ @@ -72,7 +72,7 @@ void eeprom_set_valid(bool valid) void eeprom_reset(void) { - // Set the Zeal60 specific EEPROM state as invalid. + // Set the VIA specific EEPROM state as invalid. eeprom_set_valid(false); // Set the TMK/QMK EEPROM state as invalid. eeconfig_disable(); diff --git a/keyboards/cannonkeys/stm32f072/keyboard.c b/keyboards/cannonkeys/stm32f072/keyboard.c index c0c3a74fb9b..9520398d05f 100644 --- a/keyboards/cannonkeys/stm32f072/keyboard.c +++ b/keyboards/cannonkeys/stm32f072/keyboard.c @@ -12,8 +12,8 @@ #include "tmk_core/common/eeprom.h" // HACK -#include "keyboards/zeal60/zeal60_api.h" // Temporary hack -#include "keyboards/zeal60/zeal60_keycodes.h" // Temporary hack +#include "keyboards/wilba_tech/via_api.h" // Temporary hack +#include "keyboards/wilba_tech/via_keycodes.h" // Temporary hack backlight_config_t kb_backlight_config = { diff --git a/keyboards/hs60/v2/keymaps/ansi_via/rules.mk b/keyboards/hs60/v2/keymaps/ansi_via/rules.mk index deb4fc889b9..b8311f5e7f0 100644 --- a/keyboards/hs60/v2/keymaps/ansi_via/rules.mk +++ b/keyboards/hs60/v2/keymaps/ansi_via/rules.mk @@ -1,6 +1,6 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/issi/is31fl3733.c \ quantum/color.c \ drivers/arm/i2c_master.c diff --git a/keyboards/hs60/v2/keymaps/default_via/rules.mk b/keyboards/hs60/v2/keymaps/default_via/rules.mk index deb4fc889b9..b8311f5e7f0 100644 --- a/keyboards/hs60/v2/keymaps/default_via/rules.mk +++ b/keyboards/hs60/v2/keymaps/default_via/rules.mk @@ -1,6 +1,6 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/issi/is31fl3733.c \ quantum/color.c \ drivers/arm/i2c_master.c diff --git a/keyboards/hs60/v2/keymaps/goatmaster/rules.mk b/keyboards/hs60/v2/keymaps/goatmaster/rules.mk index deb4fc889b9..b8311f5e7f0 100644 --- a/keyboards/hs60/v2/keymaps/goatmaster/rules.mk +++ b/keyboards/hs60/v2/keymaps/goatmaster/rules.mk @@ -1,6 +1,6 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/issi/is31fl3733.c \ quantum/color.c \ drivers/arm/i2c_master.c diff --git a/keyboards/hs60/v2/keymaps/hhkb_via/rules.mk b/keyboards/hs60/v2/keymaps/hhkb_via/rules.mk index deb4fc889b9..b8311f5e7f0 100644 --- a/keyboards/hs60/v2/keymaps/hhkb_via/rules.mk +++ b/keyboards/hs60/v2/keymaps/hhkb_via/rules.mk @@ -1,6 +1,6 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/issi/is31fl3733.c \ quantum/color.c \ drivers/arm/i2c_master.c diff --git a/keyboards/hs60/v2/keymaps/iso_andys8/rules.mk b/keyboards/hs60/v2/keymaps/iso_andys8/rules.mk index deb4fc889b9..b8311f5e7f0 100644 --- a/keyboards/hs60/v2/keymaps/iso_andys8/rules.mk +++ b/keyboards/hs60/v2/keymaps/iso_andys8/rules.mk @@ -1,6 +1,6 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/issi/is31fl3733.c \ quantum/color.c \ drivers/arm/i2c_master.c diff --git a/keyboards/hs60/v2/keymaps/stanrc85/rules.mk b/keyboards/hs60/v2/keymaps/stanrc85/rules.mk index 8d993916918..69592d06c75 100644 --- a/keyboards/hs60/v2/keymaps/stanrc85/rules.mk +++ b/keyboards/hs60/v2/keymaps/stanrc85/rules.mk @@ -1,6 +1,6 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/issi/is31fl3733.c \ quantum/color.c \ drivers/arm/i2c_master.c diff --git a/keyboards/hs60/v2/keymaps/win_osx_dual/rules.mk b/keyboards/hs60/v2/keymaps/win_osx_dual/rules.mk index 05193af4bbc..1dc96d04be9 100644 --- a/keyboards/hs60/v2/keymaps/win_osx_dual/rules.mk +++ b/keyboards/hs60/v2/keymaps/win_osx_dual/rules.mk @@ -1,6 +1,6 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/issi/is31fl3733.c \ quantum/color.c \ drivers/arm/i2c_master.c diff --git a/keyboards/hs60/v2/rules.mk b/keyboards/hs60/v2/rules.mk index 64948c2e9a7..77a254d24cc 100644 --- a/keyboards/hs60/v2/rules.mk +++ b/keyboards/hs60/v2/rules.mk @@ -1,6 +1,6 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/issi/is31fl3733.c \ quantum/color.c \ drivers/arm/i2c_master.c diff --git a/keyboards/hs60/v2/v2.h b/keyboards/hs60/v2/v2.h index 0a35acdea72..da32c3026a8 100644 --- a/keyboards/hs60/v2/v2.h +++ b/keyboards/hs60/v2/v2.h @@ -18,8 +18,8 @@ #define XXX KC_NO #include "quantum.h" -#include "../../zeal60/rgb_backlight_keycodes.h" -#include "../../zeal60/zeal60_keycodes.h" +#include "../../wilba_tech/wt_rgb_backlight_keycodes.h" +#include "../../wilba_tech/via_keycodes.h" // This a shortcut to help you visually see your layout. diff --git a/keyboards/keebio/iris/iris.h b/keyboards/keebio/iris/iris.h index ec78efc220d..949405d55fe 100644 --- a/keyboards/keebio/iris/iris.h +++ b/keyboards/keebio/iris/iris.h @@ -11,7 +11,7 @@ #endif #include "quantum.h" -#include "../../zeal60/zeal60_keycodes.h" +#include "../../wilba_tech/via_keycodes.h" // Used to create a keymap using only KC_ prefixed keys #define LAYOUT_kc( \ diff --git a/keyboards/nk65/keymaps/default_via/rules.mk b/keyboards/nk65/keymaps/default_via/rules.mk index deb4fc889b9..b8311f5e7f0 100755 --- a/keyboards/nk65/keymaps/default_via/rules.mk +++ b/keyboards/nk65/keymaps/default_via/rules.mk @@ -1,6 +1,6 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/issi/is31fl3733.c \ quantum/color.c \ drivers/arm/i2c_master.c diff --git a/keyboards/nk65/nk65.h b/keyboards/nk65/nk65.h index e45360541c4..49725a7e64e 100755 --- a/keyboards/nk65/nk65.h +++ b/keyboards/nk65/nk65.h @@ -18,8 +18,8 @@ #define XXX KC_NO #include "quantum.h" -#include "../zeal60/rgb_backlight_keycodes.h" -#include "../zeal60/zeal60_keycodes.h" +#include "../wilba_tech/wt_rgb_backlight_keycodes.h" +#include "../wilba_tech/via_keycodes.h" // This a shortcut to help you visually see your layout. diff --git a/keyboards/nk65/rules.mk b/keyboards/nk65/rules.mk index 94672278056..ca0a8e58557 100755 --- a/keyboards/nk65/rules.mk +++ b/keyboards/nk65/rules.mk @@ -1,6 +1,6 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/issi/is31fl3733.c \ quantum/color.c \ drivers/arm/i2c_master.c diff --git a/keyboards/rama/readme.md b/keyboards/rama/readme.md deleted file mode 100644 index c7ddf6d111d..00000000000 --- a/keyboards/rama/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# RAMA - -Firmware for keyboards designed by [RAMA WORKS](https://rama.works) - -[RAMA M6-A](https://rama.works/m6a) - -[RAMA M60-A](https://rama.works/#/m60-a/) - -[RAMA U80-A](https://rama.works/#/tkl-a/) - -[RAMA M10-B](https://www.massdrop.com/buy/rama-m10-a?mode=guest_open) diff --git a/keyboards/rama/u80_a/keymaps/default/keymap.c b/keyboards/rama/u80_a/keymaps/default/keymap.c deleted file mode 100644 index 036a57b689f..00000000000 --- a/keyboards/rama/u80_a/keymaps/default/keymap.c +++ /dev/null @@ -1,37 +0,0 @@ -#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_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, 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), - - [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), - - [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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/rama/koyu/config.h b/keyboards/wilba_tech/rama_works_koyu/config.h similarity index 97% rename from keyboards/rama/koyu/config.h rename to keyboards/wilba_tech/rama_works_koyu/config.h index 4fa8c3d8ad9..7fcfe08be03 100644 --- a/keyboards/rama/koyu/config.h +++ b/keyboards/wilba_tech/rama_works_koyu/config.h @@ -21,9 +21,9 @@ #define VENDOR_ID 0x5241 // "RW" #define PRODUCT_ID 0x4B59 // "KY" #define DEVICE_VER 0x0001 -#define MANUFACTURER RAMA.WORKS -#define PRODUCT RAMA KOYU -#define DESCRIPTION RAMA KOYU Keyboard +#define MANUFACTURER RAMA WORKS +#define PRODUCT RAMA WORKS KOYU +#define DESCRIPTION RAMA WORKS KOYU diff --git a/keyboards/rama/koyu/info.json b/keyboards/wilba_tech/rama_works_koyu/info.json similarity index 95% rename from keyboards/rama/koyu/info.json rename to keyboards/wilba_tech/rama_works_koyu/info.json index 4b6edc7bfa8..430bc6fed8e 100644 --- a/keyboards/rama/koyu/info.json +++ b/keyboards/wilba_tech/rama_works_koyu/info.json @@ -1,8 +1,8 @@ { - "keyboard_name": "KOYU", - "url": "", + "keyboard_name": "RAMA WORKS KOYU", + "url": "http://rama.works", "maintainer": "Wilba", - "bootloader": "DFU", + "bootloader": "atmel-dfu", "width": 16, "height": 5, "layouts": { diff --git a/keyboards/rama/koyu/keymaps/default/keymap.c b/keyboards/wilba_tech/rama_works_koyu/keymaps/default/keymap.c similarity index 100% rename from keyboards/rama/koyu/keymaps/default/keymap.c rename to keyboards/wilba_tech/rama_works_koyu/keymaps/default/keymap.c diff --git a/keyboards/rama/koyu/koyu.c b/keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.c similarity index 100% rename from keyboards/rama/koyu/koyu.c rename to keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.c diff --git a/keyboards/rama/koyu/koyu.h b/keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.h similarity index 95% rename from keyboards/rama/koyu/koyu.h rename to keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.h index c2aaa0273a6..f51bc5c6137 100644 --- a/keyboards/rama/koyu/koyu.h +++ b/keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.h @@ -17,8 +17,8 @@ #pragma once #include "quantum.h" -#include "../../zeal60/rgb_backlight_keycodes.h" -#include "../../zeal60/zeal60_keycodes.h" +#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" +#include "keyboards/wilba_tech/via_keycodes.h" #define ____ KC_NO diff --git a/keyboards/rama/koyu/readme.md b/keyboards/wilba_tech/rama_works_koyu/readme.md similarity index 84% rename from keyboards/rama/koyu/readme.md rename to keyboards/wilba_tech/rama_works_koyu/readme.md index c249bf11b62..11fa3bacf6e 100644 --- a/keyboards/rama/koyu/readme.md +++ b/keyboards/wilba_tech/rama_works_koyu/readme.md @@ -1,6 +1,6 @@ -# RAMA KOYU +# RAMA WORKS KOYU -![RAMA KOYU](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/t/5b8bd6e6b8a045c95eac2003/1535891375794/RW-KOYU-A-RENDER-04-TOP.1335.jpg?format=1500w) +![RAMA WORKS KOYU](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/t/5b8bd6e6b8a045c95eac2003/1535891375794/RW-KOYU-A-RENDER-04-TOP.1335.jpg?format=1500w) The 'wait' for something isn't the most conscious desire, but that anticipation creates nostalgia. @@ -13,11 +13,11 @@ This is the sound of Rama Works. Never too busy-a feeling of delightful modern w [More info at RAMA WORKS](https://rama.works/koyu/) Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) -Hardware Supported: RAMA KOYU PCB +Hardware Supported: RAMA WORKS KOYU PCB Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/) Make example for this keyboard (after setting up your build environment): - make rama/koyu:default + make wilba_tech/rama_works_koyu: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/rama/koyu/rules.mk b/keyboards/wilba_tech/rama_works_koyu/rules.mk similarity index 97% rename from keyboards/rama/koyu/rules.mk rename to keyboards/wilba_tech/rama_works_koyu/rules.mk index 5e470769d60..9839602247b 100644 --- a/keyboards/rama/koyu/rules.mk +++ b/keyboards/wilba_tech/rama_works_koyu/rules.mk @@ -1,8 +1,8 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ drivers/issi/is31fl3731.c \ drivers/avr/i2c_master.c diff --git a/keyboards/rama/m10_b/config.h b/keyboards/wilba_tech/rama_works_m10_b/config.h similarity index 98% rename from keyboards/rama/m10_b/config.h rename to keyboards/wilba_tech/rama_works_m10_b/config.h index 32d1d21ed35..0c800968f42 100644 --- a/keyboards/rama/m10_b/config.h +++ b/keyboards/wilba_tech/rama_works_m10_b/config.h @@ -24,9 +24,9 @@ along with this program. If not, see . #define VENDOR_ID 0x5241 // "RW" #define PRODUCT_ID 0x00AB // 10-B #define DEVICE_VER 0x0001 -#define MANUFACTURER RAMA.WORKS -#define PRODUCT RAMA M10-B -#define DESCRIPTION RAMA M10-B +#define MANUFACTURER RAMA WORKS +#define PRODUCT RAMA WORKS M10-B +#define DESCRIPTION RAMA WORKS M10-B /* key matrix size */ #define MATRIX_ROWS 1 diff --git a/keyboards/rama/m10_b/info.json b/keyboards/wilba_tech/rama_works_m10_b/info.json similarity index 80% rename from keyboards/rama/m10_b/info.json rename to keyboards/wilba_tech/rama_works_m10_b/info.json index fb144030d0f..22b6506d6e6 100644 --- a/keyboards/rama/m10_b/info.json +++ b/keyboards/wilba_tech/rama_works_m10_b/info.json @@ -1,7 +1,7 @@ { - "keyboard_name": "m10-b", - "url": "", - "maintainer": "qmk", + "keyboard_name": "RAMA WORKS M10-B", + "url": "http://rama.works", + "maintainer": "Wilba", "width": 3, "height": 4, "layouts": { diff --git a/keyboards/rama/m10_b/keymaps/default/config.h b/keyboards/wilba_tech/rama_works_m10_b/keymaps/default/config.h similarity index 100% rename from keyboards/rama/m10_b/keymaps/default/config.h rename to keyboards/wilba_tech/rama_works_m10_b/keymaps/default/config.h diff --git a/keyboards/rama/m10_b/keymaps/default/keymap.c b/keyboards/wilba_tech/rama_works_m10_b/keymaps/default/keymap.c similarity index 100% rename from keyboards/rama/m10_b/keymaps/default/keymap.c rename to keyboards/wilba_tech/rama_works_m10_b/keymaps/default/keymap.c diff --git a/keyboards/rama/m10_b/keymaps/default/readme.md b/keyboards/wilba_tech/rama_works_m10_b/keymaps/default/readme.md similarity index 100% rename from keyboards/rama/m10_b/keymaps/default/readme.md rename to keyboards/wilba_tech/rama_works_m10_b/keymaps/default/readme.md diff --git a/keyboards/rama/m10_b/keymaps/knops/config.h b/keyboards/wilba_tech/rama_works_m10_b/keymaps/knops/config.h similarity index 100% rename from keyboards/rama/m10_b/keymaps/knops/config.h rename to keyboards/wilba_tech/rama_works_m10_b/keymaps/knops/config.h diff --git a/keyboards/rama/m10_b/keymaps/knops/keymap.c b/keyboards/wilba_tech/rama_works_m10_b/keymaps/knops/keymap.c similarity index 100% rename from keyboards/rama/m10_b/keymaps/knops/keymap.c rename to keyboards/wilba_tech/rama_works_m10_b/keymaps/knops/keymap.c diff --git a/keyboards/rama/m10_b/keymaps/knops/readme.md b/keyboards/wilba_tech/rama_works_m10_b/keymaps/knops/readme.md similarity index 100% rename from keyboards/rama/m10_b/keymaps/knops/readme.md rename to keyboards/wilba_tech/rama_works_m10_b/keymaps/knops/readme.md diff --git a/keyboards/rama/m10_b/m10_b.c b/keyboards/wilba_tech/rama_works_m10_b/rama_works_m10_b.c similarity index 100% rename from keyboards/rama/m10_b/m10_b.c rename to keyboards/wilba_tech/rama_works_m10_b/rama_works_m10_b.c diff --git a/keyboards/rama/m10_b/m10_b.h b/keyboards/wilba_tech/rama_works_m10_b/rama_works_m10_b.h similarity index 100% rename from keyboards/rama/m10_b/m10_b.h rename to keyboards/wilba_tech/rama_works_m10_b/rama_works_m10_b.h diff --git a/keyboards/rama/m10_b/readme.md b/keyboards/wilba_tech/rama_works_m10_b/readme.md similarity index 55% rename from keyboards/rama/m10_b/readme.md rename to keyboards/wilba_tech/rama_works_m10_b/readme.md index 9facb5cd349..6b4130aeb4f 100644 --- a/keyboards/rama/m10_b/readme.md +++ b/keyboards/wilba_tech/rama_works_m10_b/readme.md @@ -1,15 +1,15 @@ -# RAMA M10-B +# RAMA WORKS M10-B -![RAMA M10-B](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/5b4997390e2e72d65f7a8e83/5b499748352f534ffb40392b/1531549522790/RAMA-M10-B-04.572.jpg?format=1500w) +![RAMA WORKS M10-B](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/5b4997390e2e72d65f7a8e83/5b499748352f534ffb40392b/1531549522790/RAMA-M10-B-04.572.jpg?format=1500w) Mechanical Mini Pad. [More info at Massdrop](https://www.massdrop.com/buy/rama-m10-a) Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) -Hardware Supported: RAMA M10-B PCB +Hardware Supported: RAMA WORKS M10-B PCB Hardware Availability: [Massdrop](https://www.massdrop.com/buy/rama-m10-a) Make example for this keyboard (after setting up your build environment): - make rama/m10_b:default + make wilba_tech/rama_works_m10_b:default See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file diff --git a/keyboards/rama/m10_b/rules.mk b/keyboards/wilba_tech/rama_works_m10_b/rules.mk similarity index 100% rename from keyboards/rama/m10_b/rules.mk rename to keyboards/wilba_tech/rama_works_m10_b/rules.mk diff --git a/keyboards/rama/m60_a/config.h b/keyboards/wilba_tech/rama_works_m60_a/config.h similarity index 97% rename from keyboards/rama/m60_a/config.h rename to keyboards/wilba_tech/rama_works_m60_a/config.h index b3e91623111..b8ce1b6c869 100644 --- a/keyboards/rama/m60_a/config.h +++ b/keyboards/wilba_tech/rama_works_m60_a/config.h @@ -21,9 +21,9 @@ #define VENDOR_ID 0x5241 // "RW" #define PRODUCT_ID 0x060A // 60-A #define DEVICE_VER 0x0001 -#define MANUFACTURER RAMA.WORKS -#define PRODUCT RAMA M60-A -#define DESCRIPTION RAMA M60-A Keyboard +#define MANUFACTURER RAMA WORKS +#define PRODUCT RAMA WORKS M60-A +#define DESCRIPTION RAMA WORKS M60-A // key matrix size #define MATRIX_ROWS 5 diff --git a/keyboards/rama/m60_a/info.json b/keyboards/wilba_tech/rama_works_m60_a/info.json similarity index 95% rename from keyboards/rama/m60_a/info.json rename to keyboards/wilba_tech/rama_works_m60_a/info.json index 577becd2196..e2061b73f6b 100644 --- a/keyboards/rama/m60_a/info.json +++ b/keyboards/wilba_tech/rama_works_m60_a/info.json @@ -1,8 +1,8 @@ { - "keyboard_name": "M60-A", - "url": "", + "keyboard_name": "RAMA WORKS M60-A", + "url": "http://rama.works", "maintainer": "Wilba", - "bootloader": "DFU", + "bootloader": "atmel-dfu", "width": 15, "height": 5, "layouts": { diff --git a/keyboards/rama/m60_a/keymaps/default/keymap.c b/keyboards/wilba_tech/rama_works_m60_a/keymaps/default/keymap.c similarity index 100% rename from keyboards/rama/m60_a/keymaps/default/keymap.c rename to keyboards/wilba_tech/rama_works_m60_a/keymaps/default/keymap.c diff --git a/keyboards/rama/m60_a/keymaps/proto/config.h b/keyboards/wilba_tech/rama_works_m60_a/keymaps/proto/config.h similarity index 100% rename from keyboards/rama/m60_a/keymaps/proto/config.h rename to keyboards/wilba_tech/rama_works_m60_a/keymaps/proto/config.h diff --git a/keyboards/rama/m60_a/keymaps/proto/keymap.c b/keyboards/wilba_tech/rama_works_m60_a/keymaps/proto/keymap.c similarity index 100% rename from keyboards/rama/m60_a/keymaps/proto/keymap.c rename to keyboards/wilba_tech/rama_works_m60_a/keymaps/proto/keymap.c diff --git a/keyboards/rama/m60_a/m60_a.c b/keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.c similarity index 100% rename from keyboards/rama/m60_a/m60_a.c rename to keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.c diff --git a/keyboards/rama/m60_a/m60_a.h b/keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.h similarity index 93% rename from keyboards/rama/m60_a/m60_a.h rename to keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.h index 3caab6ac0f0..01e096fee6a 100644 --- a/keyboards/rama/m60_a/m60_a.h +++ b/keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.h @@ -16,8 +16,8 @@ #pragma once #include "quantum.h" -#include "../../zeal60/rgb_backlight_keycodes.h" -#include "../../zeal60/zeal60_keycodes.h" +#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" +#include "keyboards/wilba_tech/via_keycodes.h" #define XXX KC_NO diff --git a/keyboards/rama/m60_a/readme.md b/keyboards/wilba_tech/rama_works_m60_a/readme.md similarity index 77% rename from keyboards/rama/m60_a/readme.md rename to keyboards/wilba_tech/rama_works_m60_a/readme.md index fe54f0163a1..1a9d9945bd8 100644 --- a/keyboards/rama/m60_a/readme.md +++ b/keyboards/wilba_tech/rama_works_m60_a/readme.md @@ -1,15 +1,15 @@ -# RAMA M60-A +# RAMA WORKS M60-A -![RAMA M60-A](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/t/5aafa6a20e2e7254480b21bf/1535873164793/RAMA-M60-A-03.688.jpg?format=1500w) +![RAMA WORKS M60-A](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/t/5aafa6a20e2e7254480b21bf/1535873164793/RAMA-M60-A-03.688.jpg?format=1500w) The M60-A represents the benchmark and equilibrium between function and design for us at Rama Works. The gently exaggerated design of the frame is not understated, but rather provocative. Inspiration and evolution from previous models are evident in the beautifully articulated design and the well defined aesthetic, the fingerprint of our 'Industrial Modern' designs. The M60-A offers a unique contender in the traditional 60% form factor. [More info at RAMA WORKS](https://rama.works/m60-a/) Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) -Hardware Supported: RAMA M60-A PCB +Hardware Supported: RAMA WORKS M60-A PCB Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/) Make example for this keyboard (after setting up your build environment): - make rama/m60_a:default + make wilba_tech/rama_works_m60_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/rama/m60_a/rules.mk b/keyboards/wilba_tech/rama_works_m60_a/rules.mk similarity index 97% rename from keyboards/rama/m60_a/rules.mk rename to keyboards/wilba_tech/rama_works_m60_a/rules.mk index 09ed03e9514..3b2287333c4 100644 --- a/keyboards/rama/m60_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_m60_a/rules.mk @@ -1,8 +1,8 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ drivers/issi/is31fl3731.c \ drivers/avr/i2c_master.c diff --git a/keyboards/rama/m6_a/config.h b/keyboards/wilba_tech/rama_works_m6_a/config.h similarity index 97% rename from keyboards/rama/m6_a/config.h rename to keyboards/wilba_tech/rama_works_m6_a/config.h index 341e29b9587..b9f12f42530 100644 --- a/keyboards/rama/m6_a/config.h +++ b/keyboards/wilba_tech/rama_works_m6_a/config.h @@ -21,9 +21,9 @@ #define VENDOR_ID 0x5241 // "RW" #define PRODUCT_ID 0x006A // 6-A #define DEVICE_VER 0x0001 -#define MANUFACTURER RAMA.WORKS -#define PRODUCT RAMA M6-A -#define DESCRIPTION RAMA M6-A Macropad +#define MANUFACTURER RAMA WORKS +#define PRODUCT RAMA WORKS M6-A +#define DESCRIPTION RAMA WORKS M6-A /* key matrix size */ #define MATRIX_ROWS 1 diff --git a/keyboards/rama/m6_b/info.json b/keyboards/wilba_tech/rama_works_m6_a/info.json similarity index 74% rename from keyboards/rama/m6_b/info.json rename to keyboards/wilba_tech/rama_works_m6_a/info.json index c88a3cc6185..cbc8cffe4b2 100644 --- a/keyboards/rama/m6_b/info.json +++ b/keyboards/wilba_tech/rama_works_m6_a/info.json @@ -1,7 +1,7 @@ { - "keyboard_name": "m6-b", - "url": "", - "maintainer": "qmk", + "keyboard_name": "RAMA WORKS M6-A", + "url": "http://rama.works", + "maintainer": "Wilba", "width": 3, "height": 2, "layouts": { diff --git a/keyboards/rama/m6_a/keymaps/default/keymap.c b/keyboards/wilba_tech/rama_works_m6_a/keymaps/default/keymap.c similarity index 100% rename from keyboards/rama/m6_a/keymaps/default/keymap.c rename to keyboards/wilba_tech/rama_works_m6_a/keymaps/default/keymap.c diff --git a/keyboards/rama/m6_a/keymaps/default/readme.md b/keyboards/wilba_tech/rama_works_m6_a/keymaps/default/readme.md similarity index 100% rename from keyboards/rama/m6_a/keymaps/default/readme.md rename to keyboards/wilba_tech/rama_works_m6_a/keymaps/default/readme.md diff --git a/keyboards/rama/m6_a/keymaps/knops/config.h b/keyboards/wilba_tech/rama_works_m6_a/keymaps/knops/config.h similarity index 100% rename from keyboards/rama/m6_a/keymaps/knops/config.h rename to keyboards/wilba_tech/rama_works_m6_a/keymaps/knops/config.h diff --git a/keyboards/rama/m6_a/keymaps/knops/keymap.c b/keyboards/wilba_tech/rama_works_m6_a/keymaps/knops/keymap.c similarity index 100% rename from keyboards/rama/m6_a/keymaps/knops/keymap.c rename to keyboards/wilba_tech/rama_works_m6_a/keymaps/knops/keymap.c diff --git a/keyboards/rama/m6_a/keymaps/knops/readme.md b/keyboards/wilba_tech/rama_works_m6_a/keymaps/knops/readme.md similarity index 100% rename from keyboards/rama/m6_a/keymaps/knops/readme.md rename to keyboards/wilba_tech/rama_works_m6_a/keymaps/knops/readme.md diff --git a/keyboards/rama/m6_a/keymaps/krusli/README.md b/keyboards/wilba_tech/rama_works_m6_a/keymaps/krusli/README.md similarity index 100% rename from keyboards/rama/m6_a/keymaps/krusli/README.md rename to keyboards/wilba_tech/rama_works_m6_a/keymaps/krusli/README.md diff --git a/keyboards/rama/m6_a/keymaps/krusli/keymap.c b/keyboards/wilba_tech/rama_works_m6_a/keymaps/krusli/keymap.c similarity index 100% rename from keyboards/rama/m6_a/keymaps/krusli/keymap.c rename to keyboards/wilba_tech/rama_works_m6_a/keymaps/krusli/keymap.c diff --git a/keyboards/rama/m6_a/keymaps/naut/config.h b/keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/config.h similarity index 100% rename from keyboards/rama/m6_a/keymaps/naut/config.h rename to keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/config.h diff --git a/keyboards/rama/m6_a/keymaps/naut/keymap.c b/keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/keymap.c similarity index 100% rename from keyboards/rama/m6_a/keymaps/naut/keymap.c rename to keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/keymap.c diff --git a/keyboards/rama/m6_a/keymaps/naut/readme.md b/keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/readme.md similarity index 100% rename from keyboards/rama/m6_a/keymaps/naut/readme.md rename to keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/readme.md diff --git a/keyboards/rama/m6_a/m6_a.c b/keyboards/wilba_tech/rama_works_m6_a/rama_works_m6_a.c similarity index 100% rename from keyboards/rama/m6_a/m6_a.c rename to keyboards/wilba_tech/rama_works_m6_a/rama_works_m6_a.c diff --git a/keyboards/rama/m6_a/m6_a.h b/keyboards/wilba_tech/rama_works_m6_a/rama_works_m6_a.h similarity index 100% rename from keyboards/rama/m6_a/m6_a.h rename to keyboards/wilba_tech/rama_works_m6_a/rama_works_m6_a.h diff --git a/keyboards/rama/m6_b/readme.md b/keyboards/wilba_tech/rama_works_m6_a/readme.md similarity index 65% rename from keyboards/rama/m6_b/readme.md rename to keyboards/wilba_tech/rama_works_m6_a/readme.md index d6bdd0c4c20..974224b4555 100644 --- a/keyboards/rama/m6_b/readme.md +++ b/keyboards/wilba_tech/rama_works_m6_a/readme.md @@ -1,15 +1,15 @@ -# RAMA M6-B +# RAMA WORKS M6-A -![RAMA M6-B](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/t/59fc7b1053450adf5bf9a852/1515932239307/RAMA-RAMA-M6-DSA-XO-CAPS.73-3_1.jpg?format=1500w) +![RAMA WORKS M6-A](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/t/59fc7b1053450adf5bf9a852/1515932239307/RAMA-RAMA-M6-DSA-XO-CAPS.73-3_1.jpg?format=1500w) A 6-key companion keyboard. [More info at RAMA WORKS](https://rama.works/m6a) Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) -Hardware Supported: RAMA M6-B PCB +Hardware Supported: RAMA WORKS M6-A PCB Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/) Make example for this keyboard (after setting up your build environment): - make rama/m6_b:default + make wilba_tech/rama_works_m6_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/rama/m6_a/rules.mk b/keyboards/wilba_tech/rama_works_m6_a/rules.mk similarity index 98% rename from keyboards/rama/m6_a/rules.mk rename to keyboards/wilba_tech/rama_works_m6_a/rules.mk index 399e9e80d61..4270e7090c0 100644 --- a/keyboards/rama/m6_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_m6_a/rules.mk @@ -1,5 +1,5 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c +SRC = keyboards/wilba_tech/wt_main.c # MCU name MCU = atmega32u4 diff --git a/keyboards/rama/m6_b/config.h b/keyboards/wilba_tech/rama_works_m6_b/config.h similarity index 98% rename from keyboards/rama/m6_b/config.h rename to keyboards/wilba_tech/rama_works_m6_b/config.h index 015bc6df8a4..10377eae70b 100644 --- a/keyboards/rama/m6_b/config.h +++ b/keyboards/wilba_tech/rama_works_m6_b/config.h @@ -21,9 +21,9 @@ #define VENDOR_ID 0x5241 // "RW" #define PRODUCT_ID 0x006B // 6-B #define DEVICE_VER 0x0001 -#define MANUFACTURER RAMA.WORKS -#define PRODUCT RAMA M6-B -#define DESCRIPTION RAMA M6-B Macropad +#define MANUFACTURER RAMA WORKS +#define PRODUCT RAMA WORKS M6-B +#define DESCRIPTION RAMA WORKS M6-B /* key matrix size */ #define MATRIX_ROWS 1 diff --git a/keyboards/rama/m6_a/info.json b/keyboards/wilba_tech/rama_works_m6_b/info.json similarity index 74% rename from keyboards/rama/m6_a/info.json rename to keyboards/wilba_tech/rama_works_m6_b/info.json index 28dd733dac2..66c36126789 100644 --- a/keyboards/rama/m6_a/info.json +++ b/keyboards/wilba_tech/rama_works_m6_b/info.json @@ -1,7 +1,7 @@ { - "keyboard_name": "m6-a", - "url": "", - "maintainer": "qmk", + "keyboard_name": "RAMA WORKS M6-B", + "url": "http://rama.works", + "maintainer": "Wilba", "width": 3, "height": 2, "layouts": { diff --git a/keyboards/rama/m6_b/keymaps/default/keymap.c b/keyboards/wilba_tech/rama_works_m6_b/keymaps/default/keymap.c similarity index 100% rename from keyboards/rama/m6_b/keymaps/default/keymap.c rename to keyboards/wilba_tech/rama_works_m6_b/keymaps/default/keymap.c diff --git a/keyboards/rama/m6_b/m6_b.c b/keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.c similarity index 100% rename from keyboards/rama/m6_b/m6_b.c rename to keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.c diff --git a/keyboards/rama/m6_b/m6_b.h b/keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.h similarity index 100% rename from keyboards/rama/m6_b/m6_b.h rename to keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.h diff --git a/keyboards/rama/m6_a/readme.md b/keyboards/wilba_tech/rama_works_m6_b/readme.md similarity index 65% rename from keyboards/rama/m6_a/readme.md rename to keyboards/wilba_tech/rama_works_m6_b/readme.md index ceaf6a88de2..747aa74dd57 100644 --- a/keyboards/rama/m6_a/readme.md +++ b/keyboards/wilba_tech/rama_works_m6_b/readme.md @@ -1,15 +1,15 @@ -# RAMA M6-A +# RAMA WORKS M6-B -![RAMA M6-A](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/t/59fc7b1053450adf5bf9a852/1515932239307/RAMA-RAMA-M6-DSA-XO-CAPS.73-3_1.jpg?format=1500w) +![RAMA WORKS M6-B](https://static1.squarespace.com/static/563c788ae4b099120ae219e2/t/59fc7b1053450adf5bf9a852/1515932239307/RAMA-RAMA-M6-DSA-XO-CAPS.73-3_1.jpg?format=1500w) A 6-key companion keyboard. [More info at RAMA WORKS](https://rama.works/m6a) Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) -Hardware Supported: RAMA M6-A PCB +Hardware Supported: RAMA WORKS M6-B PCB Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/) Make example for this keyboard (after setting up your build environment): - make rama/m6_a:default + make wilba_tech/rama_works_m6_b: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/rama/m6_b/rules.mk b/keyboards/wilba_tech/rama_works_m6_b/rules.mk similarity index 97% rename from keyboards/rama/m6_b/rules.mk rename to keyboards/wilba_tech/rama_works_m6_b/rules.mk index b7a76b8dddf..6b7b3a63d85 100644 --- a/keyboards/rama/m6_b/rules.mk +++ b/keyboards/wilba_tech/rama_works_m6_b/rules.mk @@ -1,6 +1,6 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ drivers/issi/is31fl3218.c \ drivers/avr/i2c_master.c diff --git a/keyboards/rama/u80_a/config.h b/keyboards/wilba_tech/rama_works_u80_a/config.h similarity index 70% rename from keyboards/rama/u80_a/config.h rename to keyboards/wilba_tech/rama_works_u80_a/config.h index 44d9e21333e..d4b14e7c096 100644 --- a/keyboards/rama/u80_a/config.h +++ b/keyboards/wilba_tech/rama_works_u80_a/config.h @@ -22,9 +22,9 @@ #define VENDOR_ID 0x5241 // "RW" #define PRODUCT_ID 0x080A // 80-A #define DEVICE_VER 0x0001 -#define MANUFACTURER RAMA.WORKS -#define PRODUCT RAMA U80-A -#define DESCRIPTION RAMA U80-A Keyboard +#define MANUFACTURER RAMA WORKS +#define PRODUCT RAMA WORKS U80-A +#define DESCRIPTION RAMA WORKS U80-A /* key matrix size */ #define MATRIX_ROWS 6 @@ -45,7 +45,7 @@ #define UNUSED_PINS /* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION ROW2COL +#define DIODE_DIRECTION COL2ROW // #define BACKLIGHT_PIN B7 // #define BACKLIGHT_BREATHING @@ -179,7 +179,61 @@ /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ //#define MIDI_TONE_KEYCODE_OCTAVES 1 -#define WT_MONO_BACKLIGHT +//#define WT_MONO_BACKLIGHT + +// IS31FL3731 driver +#define DRIVER_COUNT 3 +#define DRIVER_LED_TOTAL 108 + +#define RGB_BACKLIGHT_ENABLED 1 + +// This conditionally compiles the backlight code for U80-A specifics +#define RGB_BACKLIGHT_U80_A + +// enable/disable LEDs based on layout +// they aren't really used if RGB_BACKLIGHT_M60_A defined +#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1 +#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 +#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1 +#define RGB_BACKLIGHT_USE_7U_SPACEBAR 1 +#define RGB_BACKLIGHT_USE_ISO_ENTER 0 +#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 1 + +// 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 255 + +// 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 } + +// 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 0b1110000000000000 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b1100000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b1111000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b1111000000000001 +#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b1111100000000111 + +#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 } + #define DYNAMIC_KEYMAP_LAYER_COUNT 4 @@ -194,9 +248,11 @@ #define EEPROM_VERSION 0x07 #define EEPROM_VERSION_ADDR 34 -// Dynamic keymap starts after EEPROM version -#define DYNAMIC_KEYMAP_EEPROM_ADDR 35 -// Dynamic macro starts after dynamic keymaps (35+(4*6*17*2)) = (35+816) -#define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 851 -#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 173 +// Backlight config starts after EEPROM version +#define RGB_BACKLIGHT_CONFIG_EEPROM_ADDR 35 +// Dynamic keymap starts after backlight config (35+31) +#define DYNAMIC_KEYMAP_EEPROM_ADDR 66 +// Dynamic macro starts after dynamic keymaps (66+(4*6*17*2)) = (66+816) +#define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 882 +#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 142 #define DYNAMIC_KEYMAP_MACRO_COUNT 16 diff --git a/keyboards/rama/u80_a/info.json b/keyboards/wilba_tech/rama_works_u80_a/info.json similarity index 97% rename from keyboards/rama/u80_a/info.json rename to keyboards/wilba_tech/rama_works_u80_a/info.json index cb61c89b881..7febde5c5b7 100644 --- a/keyboards/rama/u80_a/info.json +++ b/keyboards/wilba_tech/rama_works_u80_a/info.json @@ -1,6 +1,6 @@ { - "keyboard_name": "RAMA U80-A", - "url": "https://rama.works/#/tkl-a/", + "keyboard_name": "RAMA WORKS U80-A", + "url": "http://rama.works", "maintainer": "Wilba", "bootloader": "atmel-dfu", "width": 18.25, diff --git a/keyboards/wilba_tech/rama_works_u80_a/keymaps/default/keymap.c b/keyboards/wilba_tech/rama_works_u80_a/keymaps/default/keymap.c new file mode 100644 index 00000000000..548843427ca --- /dev/null +++ b/keyboards/wilba_tech/rama_works_u80_a/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +#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_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_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, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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), + + [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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/rama/u80_a/u80_a.c b/keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.c similarity index 100% rename from keyboards/rama/u80_a/u80_a.c rename to keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.c diff --git a/keyboards/rama/u80_a/u80_a.h b/keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.h similarity index 76% rename from keyboards/rama/u80_a/u80_a.h rename to keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.h index 26403ef3475..c057db4ccd1 100644 --- a/keyboards/rama/u80_a/u80_a.h +++ b/keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.h @@ -17,6 +17,8 @@ #pragma once #include "quantum.h" +#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" +#include "keyboards/wilba_tech/via_keycodes.h" #define ____ KC_NO @@ -27,17 +29,17 @@ #define LAYOUT_all( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, K016, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K313, K114, K115, K116, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ - K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K415, \ - K500, K501, K502, K506, K510, K511, K512, K513, K514, K515, K516 \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K415, \ + K500, K501, K502, K507, K511, K512, K513, K514, K515, K516 \ ) { \ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, ____, K014, K015, K016 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, ____, ____, ____ }, \ - { K400, ____, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, ____, K415, ____ }, \ - { K500, K501, K502, ____, ____, ____, K506, ____, ____, ____, K510, K511, K512, K513, K514, K515, K516 } \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, ____, ____, ____, ____ }, \ + { K400, ____, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, ____, ____, K415, ____ }, \ + { K500, K501, K502, ____, ____, ____, ____, K507, ____, ____, ____, K511, K512, K513, K514, K515, K516 } \ } diff --git a/keyboards/rama/u80_a/readme.md b/keyboards/wilba_tech/rama_works_u80_a/readme.md similarity index 75% rename from keyboards/rama/u80_a/readme.md rename to keyboards/wilba_tech/rama_works_u80_a/readme.md index c98d00cb6b4..ff87889e458 100644 --- a/keyboards/rama/u80_a/readme.md +++ b/keyboards/wilba_tech/rama_works_u80_a/readme.md @@ -1,15 +1,15 @@ -# RAMA U80-A +# RAMA WORKS U80-A -![RAMA U80-A](https://something.com/something.jpg) +![RAMA WORKS U80-A](https://something.com/something.jpg) A TKL keyboard. [More info at RAMA WORKS](https://rama.works/#/tkl-a/) Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) -Hardware Supported: RAMA U80-A PCB +Hardware Supported: RAMA WORKS U80-A PCB Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/) Make example for this keyboard (after setting up your build environment): - make rama/u80_a:default + make wilba_tech/rama_works_u80_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/rama/u80_a/rules.mk b/keyboards/wilba_tech/rama_works_u80_a/rules.mk similarity index 93% rename from keyboards/rama/u80_a/rules.mk rename to keyboards/wilba_tech/rama_works_u80_a/rules.mk index 54479529bee..6079ad8932d 100644 --- a/keyboards/rama/u80_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_u80_a/rules.mk @@ -1,8 +1,9 @@ # project specific files -SRC = drivers/issi/is31fl3736.c \ - drivers/avr/i2c_master.c \ - keyboards/wilba_tech/wt_mono_backlight.c \ - keyboards/wilba_tech/wt_main.c +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ + quantum/color.c \ + drivers/issi/is31fl3731.c \ + drivers/avr/i2c_master.c # MCU name MCU = atmega32u4 @@ -69,3 +70,4 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches RAW_ENABLE = yes DYNAMIC_KEYMAP_ENABLE = yes +CIE1931_CURVE = yes diff --git a/keyboards/zeal60/zeal60_api.h b/keyboards/wilba_tech/via_api.h similarity index 96% rename from keyboards/zeal60/zeal60_api.h rename to keyboards/wilba_tech/via_api.h index 048344d712a..f04bb1b46a9 100644 --- a/keyboards/zeal60/zeal60_api.h +++ b/keyboards/wilba_tech/via_api.h @@ -17,7 +17,7 @@ #define PROTOCOL_VERSION 0x0008 -enum zeal60_command_id +enum via_command_id { id_get_protocol_version = 0x01, // always 0x01 id_get_keyboard_value, @@ -41,7 +41,7 @@ enum zeal60_command_id id_unhandled = 0xFF, }; -enum zeal60_keyboard_value_id +enum via_keyboard_value_id { id_uptime = 0x01, id_firmware_version diff --git a/keyboards/zeal60/zeal60_keycodes.h b/keyboards/wilba_tech/via_keycodes.h similarity index 94% rename from keyboards/zeal60/zeal60_keycodes.h rename to keyboards/wilba_tech/via_keycodes.h index 7114a5efcdd..bed48d64b05 100644 --- a/keyboards/zeal60/zeal60_keycodes.h +++ b/keyboards/wilba_tech/via_keycodes.h @@ -20,7 +20,7 @@ // Need to keep checking 0x5F10 is still in the safe range. // TODO: merge this into quantum_keycodes // Backlight keycodes are in range 0x5F00-0x5F0F -enum zeal60_keycodes { +enum via_keycodes { FN_MO13 = 0x5F10, FN_MO23, MACRO00, @@ -60,10 +60,10 @@ enum user_keycodes { USER15, }; -// Zeal60 specific "action functions" +// VIA specific "action functions", introduced with Zeal60 // These are only valid IDs in action_function() // Use FN_TT13, FN_TT23, etc. in keymaps -enum zeal60_action_functions { +enum via_action_functions { TRIPLE_TAP_1_3 = 0x31, TRIPLE_TAP_2_3 = 0x32 }; diff --git a/keyboards/wilba_tech/wt_main.c b/keyboards/wilba_tech/wt_main.c index f8056839a7b..e6ea4a21bd1 100644 --- a/keyboards/wilba_tech/wt_main.c +++ b/keyboards/wilba_tech/wt_main.c @@ -15,11 +15,16 @@ */ #include "quantum.h" + +// Check that no backlight functions are called +#if RGB_BACKLIGHT_ENABLED +#include "keyboards/wilba_tech/wt_rgb_backlight.h" +#endif // RGB_BACKLIGHT_ENABLED #ifdef WT_MONO_BACKLIGHT #include "keyboards/wilba_tech/wt_mono_backlight.h" -#endif -#include "keyboards/zeal60/zeal60_api.h" // Temporary hack -#include "keyboards/zeal60/zeal60_keycodes.h" // Temporary hack +#endif // WT_MONO_BACKLIGHT +#include "keyboards/wilba_tech/via_api.h" // Temporary hack +#include "keyboards/wilba_tech/via_keycodes.h" // Temporary hack #include "raw_hid.h" #include "dynamic_keymap.h" @@ -145,6 +150,23 @@ void raw_hid_receive( uint8_t *data, uint8_t length ) break; } #endif // DYNAMIC_KEYMAP_ENABLE +#if RGB_BACKLIGHT_ENABLED + case id_backlight_config_set_value: + { + backlight_config_set_value(command_data); + break; + } + case id_backlight_config_get_value: + { + backlight_config_get_value(command_data); + break; + } + case id_backlight_config_save: + { + backlight_config_save(); + break; + } +#endif // RGB_BACKLIGHT_ENABLED case id_eeprom_reset: { eeprom_reset(); @@ -180,29 +202,40 @@ void main_init(void) // If the EEPROM has the magic, the data is good. // OK to load from EEPROM. if (eeprom_is_valid()) { - //backlight_config_load(); +#if RGB_BACKLIGHT_ENABLED + backlight_config_load(); +#endif // RGB_BACKLIGHT_ENABLED } else { +#if RGB_BACKLIGHT_ENABLED // If the EEPROM has not been saved before, or is out of date, // save the default values to the EEPROM. Default values // come from construction of the zeal_backlight_config instance. - //backlight_config_save(); + backlight_config_save(); +#endif // RGB_BACKLIGHT_ENABLED #ifdef DYNAMIC_KEYMAP_ENABLE // This resets the keymaps in EEPROM to what is in flash. dynamic_keymap_reset(); // This resets the macros in EEPROM to nothing. dynamic_keymap_macro_reset(); -#endif +#endif // DYNAMIC_KEYMAP_ENABLE // Save the magic number last, in case saving was interrupted eeprom_set_valid(true); } + +#if RGB_BACKLIGHT_ENABLED + // Initialize LED drivers for backlight. + backlight_init_drivers(); + backlight_timer_init(); + backlight_timer_enable(); +#endif // RGB_BACKLIGHT_ENABLED #ifdef WT_MONO_BACKLIGHT // Initialize LED drivers for backlight. backlight_init_drivers(); backlight_timer_init(); backlight_timer_enable(); -#endif +#endif // WT_MONO_BACKLIGHT } void bootmagic_lite(void) @@ -234,6 +267,10 @@ void matrix_init_kb(void) void matrix_scan_kb(void) { +#if RGB_BACKLIGHT_ENABLED + // This only updates the LED driver buffers if something has changed. + backlight_update_pwm_buffers(); +#endif // RGB_BACKLIGHT_ENABLED #ifdef WT_MONO_BACKLIGHT // This only updates the LED driver buffers if something has changed. backlight_update_pwm_buffers(); @@ -243,6 +280,10 @@ void matrix_scan_kb(void) bool process_record_kb(uint16_t keycode, keyrecord_t *record) { +#if RGB_BACKLIGHT_ENABLED + process_record_backlight(keycode, record); +#endif // RGB_BACKLIGHT_ENABLED + switch(keycode) { case FN_MO13: if (record->event.pressed) { @@ -280,3 +321,73 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) return process_record_user(keycode, record); } + +// This overrides the one in quantum/keymap_common.c +uint16_t keymap_function_id_to_action( uint16_t function_id ) +{ + // Zeal60 specific "action functions" are 0xF00 to 0xFFF + // i.e. F(0xF00) to F(0xFFF) are mapped to + // enum zeal60_action_functions by masking last 8 bits. + if ( function_id >= 0x0F00 && function_id <= 0x0FFF ) + { + uint8_t id = function_id & 0xFF; + switch ( id ) { + case TRIPLE_TAP_1_3: + case TRIPLE_TAP_2_3: + { + return ACTION_FUNCTION_TAP(id); + break; + } + default: + break; + } + } + + return pgm_read_word(&fn_actions[function_id]); +} + + +// Zeal60 specific "action functions" +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) + { + case TRIPLE_TAP_1_3: + case TRIPLE_TAP_2_3: + if (record->event.pressed) { + layer_on( id == TRIPLE_TAP_1_3 ? 1 : 2 ); + if (record->tap.count && !record->tap.interrupted) { + if (record->tap.count >= 3) { + layer_invert(3); + } + } else { + record->tap.count = 0; + } + } else { + layer_off( id == TRIPLE_TAP_1_3 ? 1 : 2 ); + } + break; + } +} + +void led_set_kb(uint8_t usb_led) +{ +#if RGB_BACKLIGHT_ENABLED + backlight_set_indicator_state(usb_led); +#endif // RGB_BACKLIGHT_ENABLED +} + +void suspend_power_down_kb(void) +{ +#if RGB_BACKLIGHT_ENABLED + backlight_set_suspend_state(true); +#endif // RGB_BACKLIGHT_ENABLED +} + +void suspend_wakeup_init_kb(void) +{ +#if RGB_BACKLIGHT_ENABLED + backlight_set_suspend_state(false); +#endif // RGB_BACKLIGHT_ENABLED +} + diff --git a/keyboards/zeal60/rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c similarity index 87% rename from keyboards/zeal60/rgb_backlight.c rename to keyboards/wilba_tech/wt_rgb_backlight.c index a3f7151bf50..9116e98ba79 100644 --- a/keyboards/zeal60/rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -13,11 +13,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#if RGB_BACKLIGHT_ENABLED -#if defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_ZEAL65) || defined(RGB_BACKLIGHT_M60_A) || defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_KOYU) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) +#if defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_ZEAL65) || defined(RGB_BACKLIGHT_M60_A) || defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_KOYU) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_U80_A) #else -#error None of the following was defined: RGB_BACKLIGHT_ZEAL60, RGB_BACKLIGHT_ZEAL65, RGB_BACKLIGHT_M60_A, RGB_BACKLIGHT_M6_B, RGB_BACKLIGHT_KOYU, RGB_BACKLIGHT_HS60, RGB_BACKLIGHT_NK65 +#error None of the following was defined: RGB_BACKLIGHT_ZEAL60, RGB_BACKLIGHT_ZEAL65, RGB_BACKLIGHT_M60_A, RGB_BACKLIGHT_M6_B, RGB_BACKLIGHT_KOYU, RGB_BACKLIGHT_HS60, RGB_BACKLIGHT_NK65, RGB_BACKLIGHT_U80_A #endif #ifndef MAX @@ -29,9 +28,9 @@ #endif #include "quantum.h" -#include "rgb_backlight.h" -#include "rgb_backlight_api.h" -#include "rgb_backlight_keycodes.h" +#include "wt_rgb_backlight.h" +#include "wt_rgb_backlight_api.h" +#include "wt_rgb_backlight_keycodes.h" #if !defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) #include @@ -58,8 +57,12 @@ #define BACKLIGHT_LED_COUNT 69 #else #include "drivers/issi/is31fl3731.h" +#if defined(RGB_BACKLIGHT_U80_A) +#define BACKLIGHT_LED_COUNT 108 +#else #define BACKLIGHT_LED_COUNT 72 #endif +#endif #define BACKLIGHT_EFFECT_MAX 10 @@ -330,6 +333,134 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { {1, K_16, J_16, L_16}, //LB64 }; +#elif defined(RGB_BACKLIGHT_U80_A) + +// U80-A prototype uses 3 ISSI drivers +#define ISSI_ADDR_1 0x74 // 11101[00] <- GND +#define ISSI_ADDR_2 0x76 // 11101[10] <- SDA +#define ISSI_ADDR_3 0x75 // 11101[01] <- SCL + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 + + {2, C2_1, C3_1, C4_1}, // LE0 + {2, C1_1, C3_2, C4_2}, // LE1 + {2, C1_2, C2_2, C4_3}, // LE2 + {2, C1_3, C2_3, C3_3}, // LE3 + {2, C1_4, C2_4, C3_4}, // LE4 + {2, C1_5, C2_5, C3_5}, // LE5 + {2, C1_6, C2_6, C3_6}, // LE6 + {2, C1_7, C2_7, C3_7}, // LE7 + {2, C1_8, C2_8, C3_8}, // LE8 + {2, C9_1, C8_1, C7_1}, // LE9 + {2, C9_2, C8_2, C7_2}, // LE10 + {2, C9_3, C8_3, C7_3}, // LE11 + {2, C9_4, C8_4, C7_4}, // LE12 + {2, C9_5, C8_5, C7_5}, // LE13 + {2, C9_6, C8_6, C7_6}, // LE14 + {2, C9_7, C8_7, C6_6}, // LE15 + {2, C9_8, C7_7, C6_7}, // LE16 + {2, C8_8, C7_8, C6_8}, // LE17 + + {2, C2_9, C3_9, C4_9}, // LF0 + {2, C1_9, C3_10, C4_10}, // LF1 + {2, C1_10, C2_10, C4_11}, // LF2 + {2, C1_11, C2_11, C3_11}, // LF3 + {2, C1_12, C2_12, C3_12}, // LF4 + {2, C1_13, C2_13, C3_13}, // LF5 + {2, C1_14, C2_14, C3_14}, // LF6 + {2, C1_15, C2_15, C3_15}, // LF7 + {2, C1_16, C2_16, C3_16}, // LF8 + {2, C9_9, C8_9, C7_9}, // LF9 + {2, C9_10, C8_10, C7_10}, // LF10 + {2, C9_11, C8_11, C7_11}, // LF11 + {2, C9_12, C8_12, C7_12}, // LF12 + {2, C9_13, C8_13, C7_13}, // LF13 + {2, C9_14, C8_14, C7_14}, // LF14 + {2, C9_15, C8_15, C6_14}, // LF15 + {2, C9_16, C7_15, C6_15}, // LF16 + {2, C8_16, C7_16, C6_16}, // LF17 +}; #elif !defined(RGB_BACKLIGHT_M6_B) // 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) @@ -506,8 +637,8 @@ const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { }; const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { // LA0..LA17 - {58,129}, {70,129}, {80,139}, {89,157}, {96,181}, {101,208}, {105,238}, {109,255}, {128,247}, {58,255}, - {64,255}, {70,255}, {75,255}, {80,255}, {85,255}, {89,255}, {93,255}, {96,255}, + {58,129}, {70,129}, {80,139}, {89,157}, {96,181}, {101,208}, {105,238}, {109,255}, {128,247}, + {58,255}, {64,255}, {70,255}, {75,255}, {80,255}, {85,255}, {89,255}, {93,255}, {96,255}, // LB0..LB17 {53,255}, {48,255}, {43,255}, {39,255}, {34,255}, {32,255}, {255,255}, {255,255}, {255,255}, {48,139}, {39,157}, {32,181}, {27,208}, {23,238}, {19,255}, {255,255}, {255,255}, {255,255}, @@ -518,6 +649,48 @@ const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { {0,27}, {0,64}, {0,101}, {0,137}, {0,174}, {255,233}, {228,201}, {235,255}, {237,255}, {195,128}, {206,136}, {215,152}, {222,175}, {205,234}, {209,255}, {214,255}, {219,255}, {223,255} }; +#elif defined(RGB_BACKLIGHT_U80_A) +const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { + // Thse are scaled by 14.5 per U + // LA0..LA17 + {109,36}, {94,36}, {80,36}, {65,36}, {51,36}, {36,36}, {22,36}, {4,36}, {5,51}, + {116,22}, {102,22}, {87,22}, {73,22}, {58,22}, {44,22}, {29,22}, {15,22}, {0,22}, + // LB0..LB17 + {131,22}, {145,22}, {160,22}, {174,22}, {196,22}, {0,0}, {0,0}, {0,0}, {0,0}, + {123,36}, {138,36}, {152,36}, {167,36}, {181,36}, {199,36}, {0,0}, {0,0}, {0,0}, + // LC0..LC17 + {102,80}, {91,65}, {76,65}, {62,65}, {47,65}, {33,65}, {58,76}, {40,80}, {22,80}, + {98,51}, {83,51}, {69,51}, {54,51}, {40,51}, {25,51}, {0,0}, {9,65}, {4,80}, + // LD0..LD17 + {112,51}, {127,51}, {141,51}, {156,51}, {170,51}, {194,51}, {163,65}, {190,65}, {0,0}, + {105,65}, {120,65}, {134,65}, {149,65}, {0,0}, {145,76}, {163,80}, {181,80}, {199,80}, + // LE0..LE17 + {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, + {73,0}, {94,0}, {109,0}, {123,0}, {138,0}, {58,0}, {44,0}, {29,0}, {0,0}, + // LF0..LF17 + {160,0}, {174,0}, {189,0}, {203,0}, {225,0}, {239,0}, {254,0}, {254,22}, {254,36}, + {239,22}, {239,36}, {225,22}, {225,36}, {0,0}, {239,65}, {225,80}, {239,80}, {254,80} +}; +const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { + // LA0..LA17 + {59,129}, {69,129}, {80,138}, {88,154}, {95,175}, {100,200}, {104,227}, {107,255}, {128,226}, + {59,255}, {64,255}, {69,255}, {75,255}, {80,255}, {84,255}, {88,255}, {91,255}, {95,255}, + // LB0..LB17 + {53,255}, {48,255}, {44,255}, {40,255}, {35,255}, {255,255}, {255,255}, {255,255}, {255,255}, + {48,138}, {40,154}, {33,175}, {28,200}, {24,227}, {21,255}, {255,255}, {255,255}, {255,255}, + // LC0..LC17 + {192,255}, {184,131}, {174,141}, {166,159}, {160,181}, {155,207}, {174,244}, {171,255}, {166,255}, + {128,9}, {128,43}, {128,77}, {128,111}, {128,145}, {128,179}, {255,255}, {150,252}, {162,255}, + // LD0..LD17 + {0,26}, {0,60}, {0,94}, {0,128}, {0,162}, {0,218}, {227,193}, {234,245}, {255,255}, + {195,128}, {205,135}, {214,149}, {221,169}, {255,255}, {210,244}, {213,255}, {218,255}, {222,255}, + // LE0..LE17 + {255,255}, {255,255}, {255,255}, {255,255}, {255,255}, {255,255}, {255,255}, {255,255}, {255,255}, + {70,255}, {66,255}, {62,255}, {59,255}, {56,255}, {73,255}, {76,255}, {79,255}, {84,255}, + // LF0..LF17 + {52,255}, {49,255}, {47,255}, {44,255}, {41,255}, {38,255}, {37,255}, {25,255}, {14,255}, + {27,255}, {15,255}, {29,255}, {17,255}, {255,255}, {241,255}, {227,255}, {229,255}, {231,255} +}; #elif defined(RGB_BACKLIGHT_HS60) && defined(HS60_ANSI) const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { // LA1..LA47 @@ -745,6 +918,17 @@ const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { { 36+16, 36+15, 36+5, 36+4, 36+3, 36+2, 36+1, 54+9, 54+10, 54+11, 54+12, 54+6, 54+7, 54+8 }, { 36+17, 36+8, 36+7, 36+6, 255, 255, 255, 36+0, 255, 54+13, 54+14, 54+15, 54+16, 54+17 } }; +#elif defined(RGB_BACKLIGHT_U80_A) +// Note: Left spacebar stab is at 5,3 (LC6) +// Right spacebar stab is at 5,10 (LD14) +const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { + { 72+17, 72+16, 72+15, 72+14, 72+9, 72+10, 72+11, 72+12, 72+13, 90+0, 90+1, 90+2, 90+3, 255, 90+4, 90+5, 90+6 }, + { 0+17, 0+16, 0+15, 0+14, 0+13, 0+12, 0+11, 0+10, 0+9, 18+0, 18+1, 18+2, 18+3, 18+4, 90+11, 90+9, 90+7 }, + { 0+7, 0+6, 0+5, 0+4, 0+3, 0+2, 0+1, 0+0, 18+9, 18+10, 18+11, 18+12, 18+13, 18+14, 90+12, 90+10, 90+8 }, + { 0+8, 36+14, 36+13, 36+12, 36+11, 36+10, 36+9, 54+0, 54+1, 54+2, 54+3, 54+4, 54+5, 255, 255, 255, 255 }, + { 36+16, 255, 36+5, 36+4, 36+3, 36+2, 36+1, 54+9, 54+10, 54+11, 54+12, 54+6, 54+7, 255, 255, 90+14, 255 }, + { 36+17, 36+8, 36+7, 36+6, 255, 255, 255, 36+0, 255, 255, 54+14, 54+15, 54+16, 54+17, 90+15, 90+16, 90+17 } +}; #elif defined(RGB_BACKLIGHT_HS60) && defined(HS60_ANSI) // // LA1, LA5, LA9, LA13, LA17, LA21, LA25, LA29, LA33, LA37, LA41, LA45, LA49, LA53, @@ -831,9 +1015,29 @@ 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_U80_A) + static uint8_t driver = 0; + switch ( driver ) + { + case 0: + IS31FL3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); + break; + case 1: + IS31FL3731_update_pwm_buffers( ISSI_ADDR_2, 1 ); + break; + case 2: + IS31FL3731_update_pwm_buffers( ISSI_ADDR_3, 2 ); + break; + } + if ( ++driver > 2 ) + { + driver = 0; + } #else - IS31FL3731_update_pwm_buffers( ISSI_ADDR_1, ISSI_ADDR_2 ); - IS31FL3731_update_led_control_registers( ISSI_ADDR_1, ISSI_ADDR_2 ); + IS31FL3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); + IS31FL3731_update_pwm_buffers( ISSI_ADDR_2, 1 ); + IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 ); + IS31FL3731_update_led_control_registers( ISSI_ADDR_2, 1 ); #endif } @@ -1028,7 +1232,7 @@ void backlight_effect_alphas_mods(void) { RGB rgb1 = hsv_to_rgb( (HSV){ .h = g_config.color_1.h, .s = g_config.color_1.s, .v = g_config.brightness } ); RGB rgb2 = hsv_to_rgb( (HSV){ .h = g_config.color_2.h, .s = g_config.color_2.s, .v = g_config.brightness } ); - + bool is_alpha = false; for ( int row = 0; row < MATRIX_ROWS; row++ ) { for ( int column = 0; column < MATRIX_COLS; column++ ) @@ -1037,7 +1241,19 @@ void backlight_effect_alphas_mods(void) map_row_column_to_led( row, column, &index ); if ( index < BACKLIGHT_LED_COUNT ) { - if ( ( g_config.alphas_mods[row] & (1<= 72+0 && index <= 72+8 ) || // LE0-LE8 + ( index == 90+13 ) ); // LF13 #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, ISSI_ADDR_2 ); + IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 ); + IS31FL3731_update_led_control_registers( ISSI_ADDR_2, 1 ); +#if defined(RGB_BACKLIGHT_U80_A) + IS31FL3731_update_led_control_registers( ISSI_ADDR_3, 2 ); +#endif #endif // !defined(RGB_BACKLIGHT_M6_B) // TODO: put the 1 second startup delay here? @@ -2193,4 +2440,3 @@ void backlight_debug_led( bool state ) } #endif // defined(RGB_DEBUGGING_ONLY) -#endif // BACKLIGHT_ENABLED diff --git a/keyboards/zeal60/rgb_backlight.h b/keyboards/wilba_tech/wt_rgb_backlight.h similarity index 100% rename from keyboards/zeal60/rgb_backlight.h rename to keyboards/wilba_tech/wt_rgb_backlight.h diff --git a/keyboards/zeal60/rgb_backlight_api.h b/keyboards/wilba_tech/wt_rgb_backlight_api.h similarity index 97% rename from keyboards/zeal60/rgb_backlight_api.h rename to keyboards/wilba_tech/wt_rgb_backlight_api.h index 680ba4d99c2..0cd6b85f073 100644 --- a/keyboards/zeal60/rgb_backlight_api.h +++ b/keyboards/wilba_tech/wt_rgb_backlight_api.h @@ -15,7 +15,7 @@ */ #pragma once -enum backlight_config_value +enum wt_rgb_backlight_config_value { id_use_split_backspace = 0x01, id_use_split_left_shift = 0x02, diff --git a/keyboards/zeal60/rgb_backlight_keycodes.h b/keyboards/wilba_tech/wt_rgb_backlight_keycodes.h similarity index 96% rename from keyboards/zeal60/rgb_backlight_keycodes.h rename to keyboards/wilba_tech/wt_rgb_backlight_keycodes.h index ba7f03f89d4..5a436495353 100644 --- a/keyboards/zeal60/rgb_backlight_keycodes.h +++ b/keyboards/wilba_tech/wt_rgb_backlight_keycodes.h @@ -16,7 +16,7 @@ #pragma once // This is hardcoded at 0x5F00 so it's well after keycode value SAFE_RANGE -enum backlight_keycodes { +enum wt_rgb_backlight_keycodes { BR_INC = 0x5F00, // backlight brightness increase BR_DEC, // backlight brightness decrease EF_INC, // backlight effect increase diff --git a/keyboards/zeal60/config.h b/keyboards/wilba_tech/zeal60/config.h similarity index 100% rename from keyboards/zeal60/config.h rename to keyboards/wilba_tech/zeal60/config.h diff --git a/keyboards/zeal60/info.json b/keyboards/wilba_tech/zeal60/info.json similarity index 99% rename from keyboards/zeal60/info.json rename to keyboards/wilba_tech/zeal60/info.json index c4234e49a45..4a07cf38905 100644 --- a/keyboards/zeal60/info.json +++ b/keyboards/wilba_tech/zeal60/info.json @@ -1,8 +1,8 @@ { "keyboard_name": "Zeal60", - "url": "", + "url": "https://zealpc.net", "maintainer": "Wilba", - "bootloader": "DFU", + "bootloader": "atmel-dfu", "width": 15, "height": 5, "layouts": { diff --git a/keyboards/zeal60/keymaps/ansi_split_bs_rshift/config.h b/keyboards/wilba_tech/zeal60/keymaps/ansi_split_bs_rshift/config.h similarity index 100% rename from keyboards/zeal60/keymaps/ansi_split_bs_rshift/config.h rename to keyboards/wilba_tech/zeal60/keymaps/ansi_split_bs_rshift/config.h diff --git a/keyboards/zeal60/keymaps/ansi_split_bs_rshift/keymap.c b/keyboards/wilba_tech/zeal60/keymaps/ansi_split_bs_rshift/keymap.c similarity index 100% rename from keyboards/zeal60/keymaps/ansi_split_bs_rshift/keymap.c rename to keyboards/wilba_tech/zeal60/keymaps/ansi_split_bs_rshift/keymap.c diff --git a/keyboards/zeal60/keymaps/crd/config.h b/keyboards/wilba_tech/zeal60/keymaps/crd/config.h similarity index 100% rename from keyboards/zeal60/keymaps/crd/config.h rename to keyboards/wilba_tech/zeal60/keymaps/crd/config.h diff --git a/keyboards/zeal60/keymaps/crd/keymap.c b/keyboards/wilba_tech/zeal60/keymaps/crd/keymap.c similarity index 100% rename from keyboards/zeal60/keymaps/crd/keymap.c rename to keyboards/wilba_tech/zeal60/keymaps/crd/keymap.c diff --git a/keyboards/zeal60/keymaps/default/config.h b/keyboards/wilba_tech/zeal60/keymaps/default/config.h similarity index 100% rename from keyboards/zeal60/keymaps/default/config.h rename to keyboards/wilba_tech/zeal60/keymaps/default/config.h diff --git a/keyboards/zeal60/keymaps/default/keymap.c b/keyboards/wilba_tech/zeal60/keymaps/default/keymap.c similarity index 100% rename from keyboards/zeal60/keymaps/default/keymap.c rename to keyboards/wilba_tech/zeal60/keymaps/default/keymap.c diff --git a/keyboards/zeal60/keymaps/hhkb/config.h b/keyboards/wilba_tech/zeal60/keymaps/hhkb/config.h similarity index 100% rename from keyboards/zeal60/keymaps/hhkb/config.h rename to keyboards/wilba_tech/zeal60/keymaps/hhkb/config.h diff --git a/keyboards/zeal60/keymaps/hhkb/keymap.c b/keyboards/wilba_tech/zeal60/keymaps/hhkb/keymap.c similarity index 100% rename from keyboards/zeal60/keymaps/hhkb/keymap.c rename to keyboards/wilba_tech/zeal60/keymaps/hhkb/keymap.c diff --git a/keyboards/zeal60/keymaps/iso/config.h b/keyboards/wilba_tech/zeal60/keymaps/iso/config.h similarity index 100% rename from keyboards/zeal60/keymaps/iso/config.h rename to keyboards/wilba_tech/zeal60/keymaps/iso/config.h diff --git a/keyboards/zeal60/keymaps/iso/keymap.c b/keyboards/wilba_tech/zeal60/keymaps/iso/keymap.c similarity index 100% rename from keyboards/zeal60/keymaps/iso/keymap.c rename to keyboards/wilba_tech/zeal60/keymaps/iso/keymap.c diff --git a/keyboards/zeal60/keymaps/ryanmaclean/config.h b/keyboards/wilba_tech/zeal60/keymaps/ryanmaclean/config.h similarity index 100% rename from keyboards/zeal60/keymaps/ryanmaclean/config.h rename to keyboards/wilba_tech/zeal60/keymaps/ryanmaclean/config.h diff --git a/keyboards/zeal60/keymaps/ryanmaclean/keymap.c b/keyboards/wilba_tech/zeal60/keymaps/ryanmaclean/keymap.c similarity index 100% rename from keyboards/zeal60/keymaps/ryanmaclean/keymap.c rename to keyboards/wilba_tech/zeal60/keymaps/ryanmaclean/keymap.c diff --git a/keyboards/zeal60/keymaps/tusing/Makefile b/keyboards/wilba_tech/zeal60/keymaps/tusing/Makefile similarity index 100% rename from keyboards/zeal60/keymaps/tusing/Makefile rename to keyboards/wilba_tech/zeal60/keymaps/tusing/Makefile diff --git a/keyboards/zeal60/keymaps/tusing/README.md b/keyboards/wilba_tech/zeal60/keymaps/tusing/README.md similarity index 100% rename from keyboards/zeal60/keymaps/tusing/README.md rename to keyboards/wilba_tech/zeal60/keymaps/tusing/README.md diff --git a/keyboards/zeal60/keymaps/tusing/config.h b/keyboards/wilba_tech/zeal60/keymaps/tusing/config.h similarity index 100% rename from keyboards/zeal60/keymaps/tusing/config.h rename to keyboards/wilba_tech/zeal60/keymaps/tusing/config.h diff --git a/keyboards/zeal60/keymaps/tusing/keymap.c b/keyboards/wilba_tech/zeal60/keymaps/tusing/keymap.c similarity index 100% rename from keyboards/zeal60/keymaps/tusing/keymap.c rename to keyboards/wilba_tech/zeal60/keymaps/tusing/keymap.c diff --git a/keyboards/zeal60/readme.md b/keyboards/wilba_tech/zeal60/readme.md similarity index 98% rename from keyboards/zeal60/readme.md rename to keyboards/wilba_tech/zeal60/readme.md index 9eca28f83ea..21d55af39b6 100644 --- a/keyboards/zeal60/readme.md +++ b/keyboards/wilba_tech/zeal60/readme.md @@ -11,7 +11,7 @@ Hardware Availability: https://zealpc.net/collections/group-buy-pre-orders/produ Make example for this keyboard (after setting up your build environment): - make zeal60:default + make wilba_tech/zeal60: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/zeal60/rules.mk b/keyboards/wilba_tech/zeal60/rules.mk similarity index 97% rename from keyboards/zeal60/rules.mk rename to keyboards/wilba_tech/zeal60/rules.mk index 1327d88210a..5d20659f831 100644 --- a/keyboards/zeal60/rules.mk +++ b/keyboards/wilba_tech/zeal60/rules.mk @@ -1,7 +1,8 @@ # project specific files -SRC = rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ drivers/issi/is31fl3731.c \ drivers/avr/i2c_master.c diff --git a/keyboards/wilba_tech/zeal60/zeal60.c b/keyboards/wilba_tech/zeal60/zeal60.c new file mode 100644 index 00000000000..b8c2e2f83fe --- /dev/null +++ b/keyboards/wilba_tech/zeal60/zeal60.c @@ -0,0 +1,18 @@ +/* Copyright 2017 Jason Williams (Wilba) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef RGB_BACKLIGHT_ZEAL60 +#error RGB_BACKLIGHT_ZEAL60 not defined, you done goofed somehao, brah +#endif diff --git a/keyboards/zeal60/zeal60.h b/keyboards/wilba_tech/zeal60/zeal60.h similarity index 97% rename from keyboards/zeal60/zeal60.h rename to keyboards/wilba_tech/zeal60/zeal60.h index ef9de7989e5..0d4f1b908b4 100644 --- a/keyboards/zeal60/zeal60.h +++ b/keyboards/wilba_tech/zeal60/zeal60.h @@ -16,8 +16,8 @@ #pragma once #include "quantum.h" -#include "rgb_backlight_keycodes.h" -#include "zeal60_keycodes.h" +#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" +#include "keyboards/wilba_tech/via_keycodes.h" #define XXX KC_NO diff --git a/keyboards/zeal65/config.h b/keyboards/wilba_tech/zeal65/config.h similarity index 100% rename from keyboards/zeal65/config.h rename to keyboards/wilba_tech/zeal65/config.h diff --git a/keyboards/zeal65/info.json b/keyboards/wilba_tech/zeal65/info.json similarity index 98% rename from keyboards/zeal65/info.json rename to keyboards/wilba_tech/zeal65/info.json index 94a090689e5..d83895ed953 100644 --- a/keyboards/zeal65/info.json +++ b/keyboards/wilba_tech/zeal65/info.json @@ -1,8 +1,8 @@ { "keyboard_name": "Zeal65", - "url": "", + "url": "https://zealpc.net", "maintainer": "Wilba", - "bootloader": "DFU", + "bootloader": "atmel-dfu", "width": 16, "height": 5, "layouts": { diff --git a/keyboards/zeal65/keymaps/default/config.h b/keyboards/wilba_tech/zeal65/keymaps/default/config.h similarity index 100% rename from keyboards/zeal65/keymaps/default/config.h rename to keyboards/wilba_tech/zeal65/keymaps/default/config.h diff --git a/keyboards/zeal65/keymaps/default/keymap.c b/keyboards/wilba_tech/zeal65/keymaps/default/keymap.c similarity index 100% rename from keyboards/zeal65/keymaps/default/keymap.c rename to keyboards/wilba_tech/zeal65/keymaps/default/keymap.c diff --git a/keyboards/zeal65/keymaps/split_bs/config.h b/keyboards/wilba_tech/zeal65/keymaps/split_bs/config.h similarity index 100% rename from keyboards/zeal65/keymaps/split_bs/config.h rename to keyboards/wilba_tech/zeal65/keymaps/split_bs/config.h diff --git a/keyboards/zeal65/keymaps/split_bs/keymap.c b/keyboards/wilba_tech/zeal65/keymaps/split_bs/keymap.c similarity index 100% rename from keyboards/zeal65/keymaps/split_bs/keymap.c rename to keyboards/wilba_tech/zeal65/keymaps/split_bs/keymap.c diff --git a/keyboards/zeal65/readme.md b/keyboards/wilba_tech/zeal65/readme.md similarity index 95% rename from keyboards/zeal65/readme.md rename to keyboards/wilba_tech/zeal65/readme.md index 8f43dc24356..7441480384b 100644 --- a/keyboards/zeal65/readme.md +++ b/keyboards/wilba_tech/zeal65/readme.md @@ -11,6 +11,6 @@ Hardware Availability: https://zealpc.net/collections/group-buy-pre-orders/produ Make example for this keyboard (after setting up your build environment): - make zeal65:default + make wilba_tech/zeal65: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/zeal65/rules.mk b/keyboards/wilba_tech/zeal65/rules.mk similarity index 97% rename from keyboards/zeal65/rules.mk rename to keyboards/wilba_tech/zeal65/rules.mk index 596c1e6496d..a1cd32aad5b 100644 --- a/keyboards/zeal65/rules.mk +++ b/keyboards/wilba_tech/zeal65/rules.mk @@ -1,8 +1,8 @@ # project specific files -SRC = keyboards/zeal60/zeal60.c \ - keyboards/zeal60/rgb_backlight.c \ +SRC = keyboards/wilba_tech/wt_main.c \ + keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ drivers/issi/is31fl3731.c \ drivers/avr/i2c_master.c diff --git a/keyboards/zeal65/zeal65.c b/keyboards/wilba_tech/zeal65/zeal65.c similarity index 100% rename from keyboards/zeal65/zeal65.c rename to keyboards/wilba_tech/zeal65/zeal65.c diff --git a/keyboards/zeal65/zeal65.h b/keyboards/wilba_tech/zeal65/zeal65.h similarity index 95% rename from keyboards/zeal65/zeal65.h rename to keyboards/wilba_tech/zeal65/zeal65.h index 3ee4f49e596..d8528e6c516 100644 --- a/keyboards/zeal65/zeal65.h +++ b/keyboards/wilba_tech/zeal65/zeal65.h @@ -16,8 +16,8 @@ #pragma once #include "quantum.h" -#include "../zeal60/rgb_backlight_keycodes.h" -#include "../zeal60/zeal60_keycodes.h" +#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" +#include "keyboards/wilba_tech/via_keycodes.h" #define XXX KC_NO diff --git a/keyboards/zeal60/zeal60.c b/keyboards/zeal60/zeal60.c deleted file mode 100644 index 93f442f554d..00000000000 --- a/keyboards/zeal60/zeal60.c +++ /dev/null @@ -1,376 +0,0 @@ -/* Copyright 2017 Jason Williams (Wilba) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "zeal60.h" -#include "zeal60_api.h" - -// Check that no backlight functions are called -#if RGB_BACKLIGHT_ENABLED -#include "rgb_backlight.h" -#endif // BACKLIGHT_ENABLED - -#include "raw_hid.h" -#include "dynamic_keymap.h" -#include "timer.h" -#include "tmk_core/common/eeprom.h" - -bool eeprom_is_valid(void) -{ - return (eeprom_read_word(((void*)EEPROM_MAGIC_ADDR)) == EEPROM_MAGIC && - eeprom_read_byte(((void*)EEPROM_VERSION_ADDR)) == EEPROM_VERSION); -} - -void eeprom_set_valid(bool valid) -{ - eeprom_update_word(((void*)EEPROM_MAGIC_ADDR), valid ? EEPROM_MAGIC : 0xFFFF); - eeprom_update_byte(((void*)EEPROM_VERSION_ADDR), valid ? EEPROM_VERSION : 0xFF); -} - -void eeprom_reset(void) -{ - // Set the Zeal60 specific EEPROM state as invalid. - eeprom_set_valid(false); - // Set the TMK/QMK EEPROM state as invalid. - eeconfig_disable(); -} - -#ifdef RAW_ENABLE - -void raw_hid_receive( uint8_t *data, uint8_t length ) -{ - uint8_t *command_id = &(data[0]); - uint8_t *command_data = &(data[1]); - switch ( *command_id ) - { - case id_get_protocol_version: - { - command_data[0] = PROTOCOL_VERSION >> 8; - command_data[1] = PROTOCOL_VERSION & 0xFF; - break; - } - case id_get_keyboard_value: - { - if ( command_data[0] == id_uptime ) - { - uint32_t value = timer_read32(); - command_data[1] = (value >> 24 ) & 0xFF; - command_data[2] = (value >> 16 ) & 0xFF; - command_data[3] = (value >> 8 ) & 0xFF; - command_data[4] = value & 0xFF; - } - else - { - *command_id = id_unhandled; - } - break; - } -#ifdef DYNAMIC_KEYMAP_ENABLE - case id_dynamic_keymap_get_keycode: - { - uint16_t keycode = dynamic_keymap_get_keycode( command_data[0], command_data[1], command_data[2] ); - command_data[3] = keycode >> 8; - command_data[4] = keycode & 0xFF; - break; - } - case id_dynamic_keymap_set_keycode: - { - dynamic_keymap_set_keycode( command_data[0], command_data[1], command_data[2], ( command_data[3] << 8 ) | command_data[4] ); - break; - } - case id_dynamic_keymap_reset: - { - dynamic_keymap_reset(); - break; - } - case id_dynamic_keymap_macro_get_count: - { - command_data[0] = dynamic_keymap_macro_get_count(); - break; - } - case id_dynamic_keymap_macro_get_buffer_size: - { - uint16_t size = dynamic_keymap_macro_get_buffer_size(); - command_data[0] = size >> 8; - command_data[1] = size & 0xFF; - break; - } - case id_dynamic_keymap_macro_get_buffer: - { - uint16_t offset = ( command_data[0] << 8 ) | command_data[1]; - uint16_t size = command_data[2]; // size <= 28 - dynamic_keymap_macro_get_buffer( offset, size, &command_data[3] ); - break; - } - case id_dynamic_keymap_macro_set_buffer: - { - uint16_t offset = ( command_data[0] << 8 ) | command_data[1]; - uint16_t size = command_data[2]; // size <= 28 - dynamic_keymap_macro_set_buffer( offset, size, &command_data[3] ); - break; - } - case id_dynamic_keymap_macro_reset: - { - dynamic_keymap_macro_reset(); - break; - } - case id_dynamic_keymap_get_layer_count: - { - command_data[0] = dynamic_keymap_get_layer_count(); - break; - } - case id_dynamic_keymap_get_buffer: - { - uint16_t offset = ( command_data[0] << 8 ) | command_data[1]; - uint16_t size = command_data[2]; // size <= 28 - dynamic_keymap_get_buffer( offset, size, &command_data[3] ); - break; - } - case id_dynamic_keymap_set_buffer: - { - uint16_t offset = ( command_data[0] << 8 ) | command_data[1]; - uint16_t size = command_data[2]; // size <= 28 - dynamic_keymap_set_buffer( offset, size, &command_data[3] ); - break; - } -#endif // DYNAMIC_KEYMAP_ENABLE -#if RGB_BACKLIGHT_ENABLED - case id_backlight_config_set_value: - { - backlight_config_set_value(command_data); - break; - } - case id_backlight_config_get_value: - { - backlight_config_get_value(command_data); - break; - } - case id_backlight_config_save: - { - backlight_config_save(); - break; - } -#endif // RGB_BACKLIGHT_ENABLED - case id_eeprom_reset: - { - eeprom_reset(); - break; - } - case id_bootloader_jump: - { - // Need to send data back before the jump - // Informs host that the command is handled - raw_hid_send( data, length ); - // Give host time to read it - wait_ms(100); - bootloader_jump(); - break; - } - default: - { - // Unhandled message. - *command_id = id_unhandled; - break; - } - } - - // Return same buffer with values changed - raw_hid_send( data, length ); - -} - -#endif - -void main_init(void) -{ - // If the EEPROM has the magic, the data is good. - // OK to load from EEPROM. - if (eeprom_is_valid()) { -#if RGB_BACKLIGHT_ENABLED - backlight_config_load(); -#endif // RGB_BACKLIGHT_ENABLED - } else { -#if RGB_BACKLIGHT_ENABLED - // If the EEPROM has not been saved before, or is out of date, - // save the default values to the EEPROM. Default values - // come from construction of the zeal_backlight_config instance. - backlight_config_save(); -#endif // RGB_BACKLIGHT_ENABLED -#ifdef DYNAMIC_KEYMAP_ENABLE - // This resets the keymaps in EEPROM to what is in flash. - dynamic_keymap_reset(); - // This resets the macros in EEPROM to nothing. - dynamic_keymap_macro_reset(); -#endif - // Save the magic number last, in case saving was interrupted - eeprom_set_valid(true); - } - -#if RGB_BACKLIGHT_ENABLED - // Initialize LED drivers for backlight. - backlight_init_drivers(); - - backlight_timer_init(); - backlight_timer_enable(); -#endif // RGB_BACKLIGHT_ENABLED -} - -void bootmagic_lite(void) -{ - // The lite version of TMK's bootmagic. - // 100% less potential for accidentally making the - // keyboard do stupid things. - - // We need multiple scans because debouncing can't be turned off. - matrix_scan(); - wait_ms(DEBOUNCE); - wait_ms(DEBOUNCE); - matrix_scan(); - - // If the Esc (matrix 0,0) is held down on power up, - // reset the EEPROM valid state and jump to bootloader. - if ( matrix_get_row(0) & (1<<0) ) { - eeprom_reset(); - bootloader_jump(); - } -} - -void matrix_init_kb(void) -{ - bootmagic_lite(); - main_init(); - matrix_init_user(); -} - -void matrix_scan_kb(void) -{ -#if RGB_BACKLIGHT_ENABLED - // This only updates the LED driver buffers if something has changed. - backlight_update_pwm_buffers(); -#endif // BACKLIGHT_ENABLED - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) -{ -#if RGB_BACKLIGHT_ENABLED - process_record_backlight(keycode, record); -#endif // BACKLIGHT_ENABLED - - switch(keycode) { - case FN_MO13: - if (record->event.pressed) { - layer_on(1); - update_tri_layer(1, 2, 3); - } else { - layer_off(1); - update_tri_layer(1, 2, 3); - } - return false; - break; - case FN_MO23: - if (record->event.pressed) { - layer_on(2); - update_tri_layer(1, 2, 3); - } else { - layer_off(2); - update_tri_layer(1, 2, 3); - } - return false; - break; - } - -#ifdef DYNAMIC_KEYMAP_ENABLE - // Handle macros - if (record->event.pressed) { - if ( keycode >= MACRO00 && keycode <= MACRO15 ) - { - uint8_t id = keycode - MACRO00; - dynamic_keymap_macro_send(id); - return false; - } - } -#endif //DYNAMIC_KEYMAP_ENABLE - - return process_record_user(keycode, record); -} - -// This overrides the one in quantum/keymap_common.c -uint16_t keymap_function_id_to_action( uint16_t function_id ) -{ - // Zeal60 specific "action functions" are 0xF00 to 0xFFF - // i.e. F(0xF00) to F(0xFFF) are mapped to - // enum zeal60_action_functions by masking last 8 bits. - if ( function_id >= 0x0F00 && function_id <= 0x0FFF ) - { - uint8_t id = function_id & 0xFF; - switch ( id ) { - case TRIPLE_TAP_1_3: - case TRIPLE_TAP_2_3: - { - return ACTION_FUNCTION_TAP(id); - break; - } - default: - break; - } - } - - return pgm_read_word(&fn_actions[function_id]); -} - - -// Zeal60 specific "action functions" -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch (id) - { - case TRIPLE_TAP_1_3: - case TRIPLE_TAP_2_3: - if (record->event.pressed) { - layer_on( id == TRIPLE_TAP_1_3 ? 1 : 2 ); - if (record->tap.count && !record->tap.interrupted) { - if (record->tap.count >= 3) { - layer_invert(3); - } - } else { - record->tap.count = 0; - } - } else { - layer_off( id == TRIPLE_TAP_1_3 ? 1 : 2 ); - } - break; - } -} - -void led_set_kb(uint8_t usb_led) -{ -#if RGB_BACKLIGHT_ENABLED - backlight_set_indicator_state(usb_led); -#endif // RGB_BACKLIGHT_ENABLED -} - -void suspend_power_down_kb(void) -{ -#if RGB_BACKLIGHT_ENABLED - backlight_set_suspend_state(true); -#endif // RGB_BACKLIGHT_ENABLED -} - -void suspend_wakeup_init_kb(void) -{ -#if RGB_BACKLIGHT_ENABLED - backlight_set_suspend_state(false); -#endif // RGB_BACKLIGHT_ENABLED -} diff --git a/quantum/rgb_matrix_drivers.c b/quantum/rgb_matrix_drivers.c index 2a3aa9a5e0b..4d8f05892cd 100644 --- a/quantum/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix_drivers.c @@ -51,7 +51,8 @@ static void init( void ) } // This actually updates the LED drivers #ifdef IS31FL3731 - IS31FL3731_update_led_control_registers( DRIVER_ADDR_1, DRIVER_ADDR_2 ); + IS31FL3731_update_led_control_registers( DRIVER_ADDR_1, 0 ); + IS31FL3731_update_led_control_registers( DRIVER_ADDR_2, 1 ); #elif defined(IS31FL3733) IS31FL3733_update_led_control_registers( DRIVER_ADDR_1, 0 ); IS31FL3733_update_led_control_registers( DRIVER_ADDR_2, 1 ); @@ -63,7 +64,8 @@ static void init( void ) #ifdef IS31FL3731 static void flush( void ) { - IS31FL3731_update_pwm_buffers( DRIVER_ADDR_1, DRIVER_ADDR_2 ); + IS31FL3731_update_pwm_buffers( DRIVER_ADDR_1, 0 ); + IS31FL3731_update_pwm_buffers( DRIVER_ADDR_2, 1 ); } const rgb_matrix_driver_t rgb_matrix_driver = { From e08e6c11e31a0c5cdf112e6832f493992e438312 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 22 Jul 2019 02:03:19 -0700 Subject: [PATCH 022/115] [Keyboard] Fix QMK Configurator bug with Wilba Tech Zeal60 LAYOUT_60_all (#6387) info.json file had the wrong name for the JSON key; the macro that is normally named LAYOUT_all by convention is named LAYOUT_60_all on the Zeal60. Bug flagged by drashna for flight505 on QMK Discord. --- keyboards/wilba_tech/zeal60/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/wilba_tech/zeal60/info.json b/keyboards/wilba_tech/zeal60/info.json index 4a07cf38905..802f1f0cba2 100644 --- a/keyboards/wilba_tech/zeal60/info.json +++ b/keyboards/wilba_tech/zeal60/info.json @@ -6,7 +6,7 @@ "width": 15, "height": 5, "layouts": { - "LAYOUT_all": { + "LAYOUT_60_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":"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":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}, {"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":"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_ansi": { From 4532caf5f2781f7fc3b28ab847e06a147c091e60 Mon Sep 17 00:00:00 2001 From: Luke Wesley-Holley Date: Mon, 22 Jul 2019 10:06:06 +0100 Subject: [PATCH 023/115] [Keyboard] KBP V60 Type R Added ISO default (#6372) * [Layout] KBP V60 Type R ISO default * Remove ifdef * Apply suggestions from code review @noroadsleft I've accepted your suggestions. Tried locally any everything works as expected. Thanks again - this if my first keyboard and first time looking at/ using/ contributing to qmk so I appreciate the feedback :+1: Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> --- keyboards/v60_type_r/info.json | 5 +- keyboards/v60_type_r/keymaps/iso/config.h | 18 ++++++++ keyboards/v60_type_r/keymaps/iso/keymap.c | 54 ++++++++++++++++++++++ keyboards/v60_type_r/keymaps/iso/readme.md | 5 ++ keyboards/v60_type_r/keymaps/iso/rules.mk | 2 + keyboards/v60_type_r/rules.mk | 2 +- keyboards/v60_type_r/v60_type_r.h | 32 ++++++++++++- 7 files changed, 115 insertions(+), 3 deletions(-) create mode 100644 keyboards/v60_type_r/keymaps/iso/config.h create mode 100644 keyboards/v60_type_r/keymaps/iso/keymap.c create mode 100644 keyboards/v60_type_r/keymaps/iso/readme.md create mode 100644 keyboards/v60_type_r/keymaps/iso/rules.mk diff --git a/keyboards/v60_type_r/info.json b/keyboards/v60_type_r/info.json index 3bb4ff0a071..fe5be6055fb 100644 --- a/keyboards/v60_type_r/info.json +++ b/keyboards/v60_type_r/info.json @@ -11,6 +11,9 @@ "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":"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_iso": { + "layout": [{"label":"esc", "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", "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":"lshift", "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":"rshift", "x":12.25, "y":3, "w":2.75}, {"label":"lctrl", "x":0, "y":4, "w":1.25}, {"label":"lwin", "x":1.25, "y":4, "w":1.25}, {"label":"lalt", "x":2.5, "y":4, "w":1.25}, {"label":"space", "x":3.75, "y":4, "w":6.25}, {"label":"fn0", "x":10, "y":4, "w":1.25}, {"label":"rwin", "x":11.25, "y":4, "w":1.25}, {"label":"menu", "x":12.5, "y":4, "w":1.25}, {"label":"rctrl", "x":13.75, "y":4, "w":1.25}] + } } } diff --git a/keyboards/v60_type_r/keymaps/iso/config.h b/keyboards/v60_type_r/keymaps/iso/config.h new file mode 100644 index 00000000000..6a1994d6ffd --- /dev/null +++ b/keyboards/v60_type_r/keymaps/iso/config.h @@ -0,0 +1,18 @@ +/* Copyright 2019 Lukewh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// place overrides here diff --git a/keyboards/v60_type_r/keymaps/iso/keymap.c b/keyboards/v60_type_r/keymaps/iso/keymap.c new file mode 100644 index 00000000000..74aee86ed59 --- /dev/null +++ b/keyboards/v60_type_r/keymaps/iso/keymap.c @@ -0,0 +1,54 @@ +/* This is the default ISO layout provided by the KBP V60 Type R +* as depicted on the stock keycaps. +*/ +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: Default Layer (Qwerty) + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Bs | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Entr| + * |-------------------------------------------------------| | + * |Caps | A| S| D| F| G| H| J| K| L| ;| '| #| | + * |-----------------------------------------------------------| + * |LShif| || Z| X| C| V| B| N| M| ,| .| /| RShift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Fn0 |Gui |App|Ctrl| + * `-----------------------------------------------------------' + */ + [0] = LAYOUT_60_iso( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_APP, KC_RCTL \ + ), + + /* Keymap 0: Default Layer (Qwerty) + * ,-----------------------------------------------------------. + * | ¬| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| -| =| Bs | + * |-----------------------------------------------------------| + * | | | up| | | | | |prt|scr|pus| up| | | + * |-------------------------------------------------------| | + * | |lft|dwn|rig| | | | |hom|pgu|lft|rig| | | + * |-----------------------------------------------------------| + * | | | | | | |vld|vlu|mut|end|pgd|dwn| | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + [1] = LAYOUT_60_iso( \ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/v60_type_r/keymaps/iso/readme.md b/keyboards/v60_type_r/keymaps/iso/readme.md new file mode 100644 index 00000000000..2d5e1a13d21 --- /dev/null +++ b/keyboards/v60_type_r/keymaps/iso/readme.md @@ -0,0 +1,5 @@ +![KBP V60 Type R ISO Image](https://i.imgur.com/28xetL9.png) + +# Default ISO Layout + +This is the default layout that comes flashed on the KBP V60 Type R ISO version. diff --git a/keyboards/v60_type_r/keymaps/iso/rules.mk b/keyboards/v60_type_r/keymaps/iso/rules.mk new file mode 100644 index 00000000000..b6c9a258059 --- /dev/null +++ b/keyboards/v60_type_r/keymaps/iso/rules.mk @@ -0,0 +1,2 @@ +BACKLIGHT_ENABLE = no +RGBLIGHT_ENABLE = no diff --git a/keyboards/v60_type_r/rules.mk b/keyboards/v60_type_r/rules.mk index f7f7c9b9ee3..35a79db1619 100644 --- a/keyboards/v60_type_r/rules.mk +++ b/keyboards/v60_type_r/rules.mk @@ -68,4 +68,4 @@ 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 +LAYOUTS = 60_ansi 60_iso diff --git a/keyboards/v60_type_r/v60_type_r.h b/keyboards/v60_type_r/v60_type_r.h index 25097ed48e8..c33a2840b09 100644 --- a/keyboards/v60_type_r/v60_type_r.h +++ b/keyboards/v60_type_r/v60_type_r.h @@ -1,4 +1,4 @@ -/* Copyright 2017 benlyall, MechMerlin +/* Copyright 2017 benlyall, MechMerlin, Lukewh * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -105,3 +105,33 @@ enum my_keycodes { { k40, k41, k42, k43, k44, k45, k46, k47 } \ } + +/* LAYOUT_iso + * ,-----------------------------------------------------------------------------------------. + * | 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 | + * |-----------------------------------------------------------------------------------------+ + * | K40 | K41 | K42 | K43 | K44 | K45 | K46 | K47 | + * `-----------------------------------------------------------------------------------------' + */ +#define LAYOUT_60_iso( \ + 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, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k1d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k43, k44, k45, k46, k47 \ + ) { \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k08, k09, k0a, k0b, k0c, KC_NO, k0d, k10 }, \ + { k11, k12, k13, k14, k15, k16, k17, k18 }, \ + { k19, k1a, k1b, k1c, k2c, k20, k21, k22 }, \ + { k23, k24, k25, k26, k27, k28, k29, k2a }, \ + { k2b, k1d, k30, k31, k32, k33, k34, k35 }, \ + { k36, k37, k38, k39, k3a, k3b, k3c, KC_NO }, \ + { k40, k41, k42, k43, k44, k45, k46, k47 } \ + } From 28f53462d03124305cdca7810300c6861b0fac83 Mon Sep 17 00:00:00 2001 From: Michael Pishchagin Date: Mon, 22 Jul 2019 12:07:28 +0300 Subject: [PATCH 024/115] [Keyboard] Backport two fixes from TMK: usb-usb converter (#6383) * usb_usb: Order of init prevents uneeded bus reset https://github.com/tmk/tmk_keyboard/commit/7c228967a405b04d58bb06e619de8d1d7bb3c15b#diff-deed77fb597e3a0019ce59fc1d09e260 * usb_usb: Fix startup block bug https://github.com/tmk/tmk_keyboard/commit/c2ce617a363f3b9d43aa81f98e70d58f928931f4#diff-deed77fb597e3a0019ce59fc1d09e260 --- keyboards/converter/usb_usb/custom_matrix.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/converter/usb_usb/custom_matrix.cpp b/keyboards/converter/usb_usb/custom_matrix.cpp index 6f381aabf40..296f7fcd026 100644 --- a/keyboards/converter/usb_usb/custom_matrix.cpp +++ b/keyboards/converter/usb_usb/custom_matrix.cpp @@ -74,8 +74,6 @@ static bool matrix_is_mod = false; * This supports two cascaded hubs and four keyboards */ USB usb_host; -USBHub hub1(&usb_host); -USBHub hub2(&usb_host); HIDBoot kbd1(&usb_host); HIDBoot kbd2(&usb_host); HIDBoot kbd3(&usb_host); @@ -84,6 +82,8 @@ KBDReportParser kbd_parser1; KBDReportParser kbd_parser2; KBDReportParser kbd_parser3; KBDReportParser kbd_parser4; +USBHub hub1(&usb_host); +USBHub hub2(&usb_host); extern "C" @@ -252,10 +252,10 @@ extern "C" void led_set(uint8_t usb_led) { - kbd1.SetReport(0, 0, 2, 0, 1, &usb_led); - kbd2.SetReport(0, 0, 2, 0, 1, &usb_led); - kbd3.SetReport(0, 0, 2, 0, 1, &usb_led); - kbd4.SetReport(0, 0, 2, 0, 1, &usb_led); + if (kbd1.isReady()) kbd1.SetReport(0, 0, 2, 0, 1, &usb_led); + if (kbd2.isReady()) kbd2.SetReport(0, 0, 2, 0, 1, &usb_led); + if (kbd3.isReady()) kbd3.SetReport(0, 0, 2, 0, 1, &usb_led); + if (kbd4.isReady()) kbd4.SetReport(0, 0, 2, 0, 1, &usb_led); led_set_kb(usb_led); } From 46023610950e464b21f4b89edb8fffd6c1241c31 Mon Sep 17 00:00:00 2001 From: Sid Carter Date: Mon, 22 Jul 2019 05:13:38 -0400 Subject: [PATCH 025/115] [Keymap] Switch Iris keymap from workman to colemak (#6385) * via support and colemak layout * figures tap and hold parts don't work vith via enabled - so those are commented out for now --- keyboards/keebio/iris/keymaps/osiris/keymap.c | 32 +++++++++---------- .../keebio/iris/keymaps/osiris/readme.md | 3 +- keyboards/keebio/iris/keymaps/osiris/rules.mk | 5 +++ 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/keyboards/keebio/iris/keymaps/osiris/keymap.c b/keyboards/keebio/iris/keymaps/osiris/keymap.c index 4bf65dd6e21..633f6c4c572 100644 --- a/keyboards/keebio/iris/keymaps/osiris/keymap.c +++ b/keyboards/keebio/iris/keymaps/osiris/keymap.c @@ -4,7 +4,7 @@ extern keymap_config_t keymap_config; enum layer_names { _QWERTY, - _WORKMAN, + _COLEMAK, _LOWER, _RAISE, _ADJUST @@ -12,7 +12,7 @@ enum layer_names { enum custom_keycodes { QWERTY = SAFE_RANGE, - WORKMAN, + COLEMAK, LOWER, RAISE }; @@ -24,8 +24,8 @@ enum custom_keycodes { #define KC_RST RESET #define KC_BL_S BL_STEP -// left control as a left key too - makes perfect sense -#define KC_LECL LCTL_T(KC_LEFT) +// left shift as a left key too - makes perfect sense +#define KC_LESF LSFT_T(KC_LEFT) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -36,23 +36,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----| |----+----+----+----+----+----| TAB , Q , W , E , R , T , Y , U , I , O , P ,BSLS, //|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, + LCTL, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| - LECL, Z , X , C , V , B ,LBRC, RBRC, N , M ,COMM,DOT ,SLSH,RGHT, + LESF, Z , X , C , V , B ,LBRC, RBRC, N , M ,COMM,DOT ,SLSH,RGHT, //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' LGUI,LOWR,ENT , SPC ,RASE,RALT // `----+----+----' `----+----+----' ), - [_WORKMAN] = LAYOUT_kc( + [_COLEMAK] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. GESC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, //|----+----+----+----+----+----| |----+----+----+----+----+----| - TAB , Q , D , R , W , B , J , F , U , P ,SCLN,BSLS, + TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,BSLS, //|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT, A , S , H , T , G , Y , N , E , O ,I ,QUOT, + LCTL, A , R , S , T , D , H , N , E , I , O ,QUOT, //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| - LECL, Z , X , M , C , V ,LBRC, RBRC, K , L ,COMM,DOT ,SLSH,RGHT, + LESF, Z , X , C , V , B ,LBRC, RBRC, K , M ,COMM,DOT ,SLSH,RGHT, //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' LGUI,LOWR,ENT , SPC ,RASE,RALT // `----+----+----' `----+----+----' @@ -60,13 +60,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = LAYOUT_kc( //,----+----+----+----+----+----. ,----+----+----+----+----+----. - TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,DEL , + GRV ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,DEL , //|----+----+----+----+----+----| |----+----+----+----+----+----| , , , , , , , ,BTN1, , , , //|----+----+----+----+----+----| |----+----+----+----+----+----| , , , , , , MS_L,MS_D,MS_U,MS_R, , , //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| - , , , , , UP , , , , , , , , , + , , , , , UP , , ,DOWN, , , , , , //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' , , , , , // `----+----+----' `----+----+----' @@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----| |----+----+----+----+----+----| ,MPLY,VOLD,MNXT, ,LPRN, RPRN,MINS,EQL , , , , //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| - , , , , , , , ,DOWN, , , , , , + , , , , , , , , , , , , , , //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' , , , , , // `----+----+----' `----+----+----' @@ -88,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. - _______, _______, _______, _______, _______, QWERTY, WORKMAN, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -113,9 +113,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { set_single_persistent_default_layer(_QWERTY); } return false; - case WORKMAN: + case COLEMAK: if (record->event.pressed) { - set_single_persistent_default_layer(_WORKMAN); + set_single_persistent_default_layer(_COLEMAK); } return false; case LOWER: diff --git a/keyboards/keebio/iris/keymaps/osiris/readme.md b/keyboards/keebio/iris/keymaps/osiris/readme.md index 7db30591e79..58469ef164b 100644 --- a/keyboards/keebio/iris/keymaps/osiris/readme.md +++ b/keyboards/keebio/iris/keymaps/osiris/readme.md @@ -3,9 +3,10 @@ ![My Iris Rev3](https://i.imgur.com/7oXacel.jpg) - mouse keys enabled -- includes a QWERTY and a WORKMAN layout now +- includes a QWERTY and a COLEMAK layout now - keys that I need, while removing keys that I don't - more updates with the layout coming soon - the enter needs to move elsewhere, not yet sure where +- support for VIA Configurator See keymap.c for layouts diff --git a/keyboards/keebio/iris/keymaps/osiris/rules.mk b/keyboards/keebio/iris/keymaps/osiris/rules.mk index 45c570a3b66..f2788b5f751 100644 --- a/keyboards/keebio/iris/keymaps/osiris/rules.mk +++ b/keyboards/keebio/iris/keymaps/osiris/rules.mk @@ -1,3 +1,8 @@ RGBLIGHT_ENABLE = yes BACKLIGHT_ENABLE = yes MOUSEKEY_ENABLE = yes + +# VIA Support - Comment these 3 lines out to disable +# RAW_ENABLE = yes +# DYNAMIC_KEYMAP_ENABLE = yes +# SRC += keyboards/wilba_tech/wt_main.c \ No newline at end of file From f1c89280d5035134fbdfc1643c37f8ecc92bec16 Mon Sep 17 00:00:00 2001 From: George Petri Date: Mon, 22 Jul 2019 12:14:43 +0300 Subject: [PATCH 026/115] [Keymap] Update keymap for keebio/quefrency 65% version (#6388) * minor keymap changes * minor keymap changes update readme * update rules.mk * add rgb * add add arrows in hjkl * removed backslashes * fix missing comma * spacing fix * minor cleanup * add r layer * impl navigation layer * moved backspace nearby * updated readme --- .../quefrency/keymaps/georgepetri/config.h | 2 +- .../quefrency/keymaps/georgepetri/keymap.c | 79 +++++++++++++++---- .../quefrency/keymaps/georgepetri/readme.md | 44 +++++++---- .../quefrency/keymaps/georgepetri/rules.mk | 1 + 4 files changed, 95 insertions(+), 31 deletions(-) diff --git a/keyboards/keebio/quefrency/keymaps/georgepetri/config.h b/keyboards/keebio/quefrency/keymaps/georgepetri/config.h index d72d7760ef9..c3063d6da6b 100644 --- a/keyboards/keebio/quefrency/keymaps/georgepetri/config.h +++ b/keyboards/keebio/quefrency/keymaps/georgepetri/config.h @@ -21,4 +21,4 @@ along with this program. If not, see . #pragma once -#define USE_I2C \ No newline at end of file +#undef RGBLIGHT_ANIMATIONS diff --git a/keyboards/keebio/quefrency/keymaps/georgepetri/keymap.c b/keyboards/keebio/quefrency/keymaps/georgepetri/keymap.c index f08ab4f8343..9ee3eb81022 100644 --- a/keyboards/keebio/quefrency/keymaps/georgepetri/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/georgepetri/keymap.c @@ -2,43 +2,90 @@ extern keymap_config_t keymap_config; -// 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 _BASE 0 -#define _FN1 1 +#define _L 1 +#define _R 2 enum custom_keycodes { QWERTY = SAFE_RANGE, }; +#define KC_TL LCTL(KC_PGUP) +#define KC_TR LCTL(KC_PGDN) +#define KC_TC LCTL(KC_W) +#define KC_TRO LCTL(LSFT(KC_T)) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_65( // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - 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_HOME,\ + KC_GRV ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 , KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_BSPC ,KC_DEL ,KC_MINS ,KC_EQL ,KC_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_TAB ,KC_Q ,KC_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_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_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_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_PGDN , // ├──────────┬──────────┴┬───────┴──┬─────┴─────┬──┴────────┴────────┤ ├────────┴────────┴────┬───┴────┬───┴────┬───┴────┬────────┬────────┼────────┤ - KC_LCTL, KC_LGUI, KC_LALT, MO(_FN1), KC_SPC, KC_SPC ,_______, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + KC_CAPS ,KC_LCTL ,KC_LALT ,MO(_L) ,KC_SPC , KC_SPC ,_______ ,KC_LGUI ,TG(_R) ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT // └──────────┴───────────┴──────────┴───────────┴────────────────────┘ └──────────────────────┴────────┴────────┴────────┴────────┴────────┴────────┘ ), - [_FN1] = LAYOUT_65( + [_L] = LAYOUT_65( // ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - 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_BSPC, KC_DEL, KC_INS, \ + _______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 , KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,_______ ,_______ ,_______ ,_______ ,KC_INS , // ├────────┴────┬───┴────┬───┴────┬───┴────┬───┴────┬───┴────┬───┘ ┌───┴────┬───┴────┬───┴────┬───┴────┬───┴────┬───┴────┬───┴────┬───┴────────┼────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS,\ + _______ ,KC_F11 ,KC_F12 ,_______ ,_______ ,_______ , _______ ,KC_MINS ,KC_EQL ,_______ ,_______ ,_______ ,_______ ,_______, KC_PAUS , // ├─────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┐ └─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┼────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + _______ ,_______ ,_______ ,_______ ,_______ ,_______ , KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT ,_______ ,_______ ,_______ ,_______ , // ├───────────────┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┐ └─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴───────────────────┼────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ + _______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,KC_PGDN ,KC_PGUP ,KC_HOME ,KC_END ,_______ ,_______ ,_______ , // ├──────────┬──────────┴┬───────┴──┬─────┴─────┬──┴────────┴────────┤ ├────────┴────────┴────┬───┴────┬───┴────┬───┴────┬────────┬────────┼────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ +// └──────────┴───────────┴──────────┴───────────┴────────────────────┘ └──────────────────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), + + [_R] = LAYOUT_65( +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , +// ├────────┴────┬───┴────┬───┴────┬───┴────┬───┴────┬───┴────┬───┘ ┌───┴────┬───┴────┬───┴────┬───┴────┬───┴────┬───┴────┬───┴────┬───┴────────┼────────┤ + _______ ,KC_TL ,KC_TR ,KC_TC ,KC_TRO ,_______ , _______ ,KC_TL , KC_TR , KC_TC , KC_TRO ,_______ ,_______ ,_______, _______ , +// ├─────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┐ └─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┼────────┤ + _______ ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT ,_______ , KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT ,_______ ,_______ ,_______ ,_______ , +// ├───────────────┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┐ └─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴───────────────────┼────────┤ + _______ ,KC_PGDN ,KC_PGUP ,KC_HOME ,KC_END ,_______ , _______ ,KC_PGDN ,KC_PGUP ,KC_HOME ,KC_END ,_______ ,_______ ,_______ , +// ├──────────┬──────────┴┬───────┴──┬─────┴─────┬──┴────────┴────────┤ ├────────┴────────┴────┬───┴────┬───┴────┬───┴────┬────────┬────────┼────────┤ + _______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ // └──────────┴───────────┴──────────┴───────────┴────────────────────┘ └──────────────────────┴────────┴────────┴────────┴────────┴────────┴────────┘ ) }; + +void keyboard_post_init_user(void) { + rgblight_sethsv_noeeprom(HSV_BLUE); +} + +void update_led(void) { + switch (biton32(layer_state)) { + case _BASE: + rgblight_sethsv_noeeprom(HSV_BLUE); + break; + case _L: + rgblight_sethsv_noeeprom(HSV_CORAL); + break; + case _R: + rgblight_sethsv_noeeprom(HSV_MAGENTA); + break; + } + if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { + rgblight_sethsv_range(HSV_WHITE,0,4); + rgblight_sethsv_range(HSV_WHITE,12,16); + } +} + +uint32_t layer_state_set_user(uint32_t state) { + update_led(); + return state; +} + +void led_set_user(uint8_t usb_led) { + update_led(); +} diff --git a/keyboards/keebio/quefrency/keymaps/georgepetri/readme.md b/keyboards/keebio/quefrency/keymaps/georgepetri/readme.md index 425190d198d..bb4e75c27bd 100644 --- a/keyboards/keebio/quefrency/keymaps/georgepetri/readme.md +++ b/keyboards/keebio/quefrency/keymaps/georgepetri/readme.md @@ -1,48 +1,64 @@ # George Petri's Quefrency 65 layout ``` -make keebio/quefrency:georgepetri +make keebio/quefrency/rev1:georgepetri ``` -Based on the default querty layout with minor tweaks. -The position of the arrow keys in a line in the bottom right. -The backspace key is 1u and to the left of the delete key. -Grave, pause and insert are on the function layer. +Querty layout with minor changes and dedicated navigation layer. ### Base Layer ``` ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ -│ ESC ││ 1 ││ 2 ││ 3 ││ 4 ││ 5 ││ 6 │ │ 7 ││ 8 ││ 9 ││ 0 ││ MINS││ EQL ││ BSPC││ DEL ││ HOME│ +│ GRV ││ 1 ││ 2 ││ 3 ││ 4 ││ 5 ││ 6 │ │ 7 ││ 8 ││ 9 ││ 0 ││ BSPC││ DEL ││ MINS││ EQL ││ HOME│ └──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘ ┌──────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────────┐┌──────┐ │ TAB ││ Q ││ W ││ E ││ R ││ T │ │ Y ││ U ││ I ││ O ││ P ││ LBRC││ RBRC││ BSLS ││ END │ └──────────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────────┘└──────┘ ┌────────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌────────────────┐┌──────┐ -│ CAPS ││ A ││ S ││ D ││ F ││ G │ │ H ││ J ││ K ││ L ││ SCLN││ QUOT││ ENT ││ PGUP│ +│ ESC ││ A ││ S ││ D ││ F ││ G │ │ H ││ J ││ K ││ L ││ SCLN││ QUOT││ ENT ││ PGUP│ └────────────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└────────────────┘└──────┘ ┌────────────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌────────────────────┐┌──────┐ │ LSFT ││ Z ││ X ││ C ││ V ││ B │ │ N ││ M ││ COMM││ DOT ││ SLSH││ RSFT ││ PGDN│ └────────────────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└────────────────────┘└──────┘ ┌────────┐┌────────┐┌────────┐┌────────┐┌────────────────┐ ┌────────────────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ -│ LCTL ││ LGUI ││ LALT ││MO(_FN1)││ SPC │ │ SPC ││ RALT││ RCTL││ LEFT││ DOWN││ UP ││ RGHT│ +│ CAPS ││ LCTL ││ LALT ││MO(_L) ││ SPC │ │ SPC ││ LGUI││TG(_R)││ LEFT││ DOWN││ UP ││ RGHT│ └────────┘└────────┘└────────┘└────────┘└────────────────┘ └────────────────────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘ ``` -### Function +### Raise ``` ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ -│ GRV ││ F1 ││ F2 ││ F3 ││ F4 ││ F5 ││ F6 │ │ F7 ││ F8 ││ F9 ││ F10 ││ F11 ││ F12 ││ BSPC││ DEL ││ INS │ +│ ││ F1 ││ F2 ││ F3 ││ F4 ││ F5 ││ F6 │ │ F7 ││ F8 ││ F9 ││ F10 ││ F11 ││ F12 ││ BSPC││ DEL ││ INS │ └──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘ ┌──────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────────┐┌──────┐ -│ ││ ││ ││ ││ ││ │ │ ││ ││ ││ ││ ││ ││ ││ ││ PAUS│ +│ ││ F1 ││ F12 ││ ││ ││ │ │ ││ MINS││ EQL ││ ││ ││ ││ ││ ││ PAUS│ └──────────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────────┘└──────┘ ┌────────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌────────────────┐┌──────┐ -│ ││ ││ ││ ││ ││ │ │ ││ ││ ││ ││ ││ ││ ││ │ +│ ││ ││ ││ ││ ││ │ │ LEFT││ DOWN││ UP ││ RGHT││ ││ ││ ││ │ └────────────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└────────────────┘└──────┘ ┌────────────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌────────────────────┐┌──────┐ -│ ││ ││ ││ ││ ││ │ │ ││ ││ ││ ││ ││ ││ │ +│ ││ ││ ││ ││ ││ │ │ ││ PGDN││ PGUP││ HOME││ END ││ ││ │ └────────────────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└────────────────────┘└──────┘ ┌────────┐┌────────┐┌────────┐┌────────┐┌────────────────┐ ┌────────────────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ │ ││ ││ ││ ││ │ │ ││ ││ ││ ││ ││ ││ │ └────────┘└────────┘└────────┘└────────┘└────────────────┘ └────────────────────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘ -``` \ No newline at end of file +``` + +### Lower +``` +┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ +│ ││ ││ ││ ││ ││ ││ │ │ ││ ││ ││ ││ ││ ││ ││ ││ │ +└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘ +┌──────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────────┐┌──────┐ +│ ││ TAB_L││ TAB_R││ TAB_C││ TAB_R││ │ │ ││ TAB_L││ TAB_R││ TAB_C││ TAB_R││ ││ ││ ││ │ +└──────────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────────┘└──────┘ +┌────────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌────────────────┐┌──────┐ +│ ││ LEFT││ DOWN││ UP ││ RGHT││ │ │ LEFT││ DOWN││ UP ││ RGHT││ ││ ││ ││ │ +└────────────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└────────────────┘└──────┘ +┌────────────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ ┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌────────────────────┐┌──────┐ +│ ││ PGDN││ PGUP││ HOME││ END ││ │ │ ││ PGDN││ PGUP││ HOME││ END ││ ││ │ +└────────────────┘└──────┘└──────┘└──────┘└──────┘└──────┘ └──────┘└──────┘└──────┘└──────┘└──────┘└────────────────────┘└──────┘ +┌────────┐┌────────┐┌────────┐┌────────┐┌────────────────┐ ┌────────────────────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐ +│ ││ ││ ││ ││ │ │ ││ ││ ││ ││ ││ ││ │ +└────────┘└────────┘└────────┘└────────┘└────────────────┘ └────────────────────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘ +``` diff --git a/keyboards/keebio/quefrency/keymaps/georgepetri/rules.mk b/keyboards/keebio/quefrency/keymaps/georgepetri/rules.mk index e69de29bb2d..5bc0b70454b 100644 --- a/keyboards/keebio/quefrency/keymaps/georgepetri/rules.mk +++ b/keyboards/keebio/quefrency/keymaps/georgepetri/rules.mk @@ -0,0 +1 @@ +EXTRAKEY_ENABLE = no From d3ebf903c994c8a6501863ed1e508454ad112d6c Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Mon, 22 Jul 2019 02:20:20 -0700 Subject: [PATCH 027/115] [Keyboard] Add Unikorn 60 tsangan_hhkb layout (#6390) * fix default keymap to not have Q in the 1 position. * add tsangan hhkb layout * add a tsangan default keymap * clean up the default keymap * add qmk configurator support for new layout --- keyboards/unikorn/info.json | 4 +++ keyboards/unikorn/keymaps/default/config.h | 19 ----------- keyboards/unikorn/keymaps/default/keymap.c | 2 +- keyboards/unikorn/keymaps/default/readme.md | 1 - keyboards/unikorn/keymaps/default/rules.mk | 0 keyboards/unikorn/keymaps/tsangan/keymap.c | 35 +++++++++++++++++++++ keyboards/unikorn/unikorn.h | 14 +++++++++ 7 files changed, 54 insertions(+), 21 deletions(-) delete mode 100644 keyboards/unikorn/keymaps/default/config.h delete mode 100644 keyboards/unikorn/keymaps/default/readme.md delete mode 100644 keyboards/unikorn/keymaps/default/rules.mk create mode 100644 keyboards/unikorn/keymaps/tsangan/keymap.c diff --git a/keyboards/unikorn/info.json b/keyboards/unikorn/info.json index 9c82e25b479..71088d20479 100644 --- a/keyboards/unikorn/info.json +++ b/keyboards/unikorn/info.json @@ -11,6 +11,10 @@ "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_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}] } } } \ No newline at end of file diff --git a/keyboards/unikorn/keymaps/default/config.h b/keyboards/unikorn/keymaps/default/config.h deleted file mode 100644 index 93b81b57ba4..00000000000 --- a/keyboards/unikorn/keymaps/default/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2018 amnesia0287 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// place overrides here diff --git a/keyboards/unikorn/keymaps/default/keymap.c b/keyboards/unikorn/keymaps/default/keymap.c index d19d83c8abb..3e730362538 100644 --- a/keyboards/unikorn/keymaps/default/keymap.c +++ b/keyboards/unikorn/keymaps/default/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_ansi( - KC_GRV, KC_Q, KC_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_1, KC_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, diff --git a/keyboards/unikorn/keymaps/default/readme.md b/keyboards/unikorn/keymaps/default/readme.md deleted file mode 100644 index 1f19a96b46e..00000000000 --- a/keyboards/unikorn/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for singa \ No newline at end of file diff --git a/keyboards/unikorn/keymaps/default/rules.mk b/keyboards/unikorn/keymaps/default/rules.mk deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/keyboards/unikorn/keymaps/tsangan/keymap.c b/keyboards/unikorn/keymaps/tsangan/keymap.c new file mode 100644 index 00000000000..4c86d4f02e9 --- /dev/null +++ b/keyboards/unikorn/keymaps/tsangan/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2019 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_60_tsangan_hhkb( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_60_tsangan_hhkb( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/unikorn/unikorn.h b/keyboards/unikorn/unikorn.h index 6824492e04b..2666bf066ec 100644 --- a/keyboards/unikorn/unikorn.h +++ b/keyboards/unikorn/unikorn.h @@ -50,3 +50,17 @@ { k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, k48, k49, KC_NO, k4B, KC_NO, k4D, KC_NO }, \ } +#define LAYOUT_60_tsangan_hhkb( \ + 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, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \ + k40, k41, k42, k45, k48, k49, k4A \ +){ \ + { 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, KC_NO }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, KC_NO, k2D, KC_NO }, \ + { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, KC_NO }, \ + { k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, k48, k49, k4A, KC_NO, KC_NO, KC_NO, KC_NO }, \ +} + From 17ff9cf554d64fd3e036f3d6e06cff952d8802bf Mon Sep 17 00:00:00 2001 From: Collin Diekvoss Date: Mon, 22 Jul 2019 12:17:11 -0500 Subject: [PATCH 028/115] New Keyboard: ZJ68 (#6378) * added zj68 keyboard * Suggested changes * Suggested changes * Suggested changes * Requested changes * Update keyboards/zj68/rules.mk Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> --- keyboards/zj68/config.h | 64 ++++++++++++++++++ keyboards/zj68/info.json | 86 ++++++++++++++++++++++++ keyboards/zj68/keymaps/default/keymap.c | 35 ++++++++++ keyboards/zj68/keymaps/default/readme.md | 3 + keyboards/zj68/keymaps/splitbs/keymap.c | 34 ++++++++++ keyboards/zj68/keymaps/splitbs/readme.md | 3 + keyboards/zj68/readme.md | 15 +++++ keyboards/zj68/rules.mk | 63 +++++++++++++++++ keyboards/zj68/zj68.c | 24 +++++++ keyboards/zj68/zj68.h | 60 +++++++++++++++++ 10 files changed, 387 insertions(+) create mode 100644 keyboards/zj68/config.h create mode 100644 keyboards/zj68/info.json create mode 100644 keyboards/zj68/keymaps/default/keymap.c create mode 100644 keyboards/zj68/keymaps/default/readme.md create mode 100644 keyboards/zj68/keymaps/splitbs/keymap.c create mode 100644 keyboards/zj68/keymaps/splitbs/readme.md create mode 100644 keyboards/zj68/readme.md create mode 100644 keyboards/zj68/rules.mk create mode 100644 keyboards/zj68/zj68.c create mode 100644 keyboards/zj68/zj68.h diff --git a/keyboards/zj68/config.h b/keyboards/zj68/config.h new file mode 100644 index 00000000000..59dcfc66644 --- /dev/null +++ b/keyboards/zj68/config.h @@ -0,0 +1,64 @@ +/* +Copyright 2019 Collin Diekvoss + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Drop +#define PRODUCT ZJ68 +#define DESCRIPTION QMK ZJ68 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, F7, F6, F5, F4, F1, F0 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* number of backlight levels */ +#define BACKLIGHT_PIN B6 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 5 +#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 + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 14 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/zj68/info.json b/keyboards/zj68/info.json new file mode 100644 index 00000000000..f93963936da --- /dev/null +++ b/keyboards/zj68/info.json @@ -0,0 +1,86 @@ +{ + "keyboard_name": "ZJ68", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "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 }, + { "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": 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 }, + { "x": 14, "y": 3 }, + { "x": 15, "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": "Alt", "x": 10, "y": 4 }, + { "label": "Win", "x": 11, "y": 4 }, + { "x": 12, "y": 4 }, + { "x": 13, "y": 4 }, + { "x": 14, "y": 4 }, + { "x": 15, "y": 4 } + ] + } + } +} diff --git a/keyboards/zj68/keymaps/default/keymap.c b/keyboards/zj68/keymaps/default/keymap.c new file mode 100644 index 00000000000..05e0776db8f --- /dev/null +++ b/keyboards/zj68/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2019 Collin Diekvoss + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, RESET, KC_PSCR, + RGB_TOG, _______, KC_UP, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + BL_TOGG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, KC_END, + _______, _______, _______, BL_DEC, BL_INC, BL_STEP, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/zj68/keymaps/default/readme.md b/keyboards/zj68/keymaps/default/readme.md new file mode 100644 index 00000000000..3522fe02299 --- /dev/null +++ b/keyboards/zj68/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# ZJ68 Default layout + +This is the default layout from the json file provided on Drop, that was intended to be used on kbdfirmware, with an added soft reset on fn(backspace). \ No newline at end of file diff --git a/keyboards/zj68/keymaps/splitbs/keymap.c b/keyboards/zj68/keymaps/splitbs/keymap.c new file mode 100644 index 00000000000..6403c0353fd --- /dev/null +++ b/keyboards/zj68/keymaps/splitbs/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2019 Collin Diekvoss + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT_65_ansi_split_bs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, 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_BSPC, 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_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, + MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + LAYOUT_65_ansi_split_bs( + 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_PSCR, KC_SLCK, KC_PAUS, + KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/zj68/keymaps/splitbs/readme.md b/keyboards/zj68/keymaps/splitbs/readme.md new file mode 100644 index 00000000000..9047475eebd --- /dev/null +++ b/keyboards/zj68/keymaps/splitbs/readme.md @@ -0,0 +1,3 @@ +# ZJ68 W/ Split Backspace + +The plate that comes with the kit from Drop only allows one layout, but the pcb supports having a split backspace, so by widening the plate where the stabilizers are meant to go, you can fit the two switches in, if you want to go back to a single backspace later, you can still use pcb mount stabilizers. \ No newline at end of file diff --git a/keyboards/zj68/readme.md b/keyboards/zj68/readme.md new file mode 100644 index 00000000000..c889888c32a --- /dev/null +++ b/keyboards/zj68/readme.md @@ -0,0 +1,15 @@ +# ZJ68 + +![JZ68](https://i.imgur.com/bcsfQyt.jpg) + +A 65% keyboard kit sold through Drop. + +Keyboard Maintainer: QMK Community +Hardware Supported: ZJ68 PCB +Hardware Availability: [Drop](https://drop.com/buy/zj68-68-key-mechanical-keyboard-kit?mode=guest_open) + +Make example for this keyboard (after setting up your build environment): + + make zj68: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/zj68/rules.mk b/keyboards/zj68/rules.mk new file mode 100644 index 00000000000..79860ed7a24 --- /dev/null +++ b/keyboards/zj68/rules.mk @@ -0,0 +1,63 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = atmel-dfu + +# Build Options +# comment out to disable the options. +# +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +AUDIO_ENABLE = no + +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +RGBLIGHT_ENABLE = no + +LAYOUTS = 65_ansi diff --git a/keyboards/zj68/zj68.c b/keyboards/zj68/zj68.c new file mode 100644 index 00000000000..960c943033b --- /dev/null +++ b/keyboards/zj68/zj68.c @@ -0,0 +1,24 @@ +/* Copyright 2019 Collin Diekvoss + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "zj68.h" + +void matrix_init_kb(void) { + matrix_init_user(); +} + +void matrix_scan_kb(void) { + matrix_scan_user(); +} diff --git a/keyboards/zj68/zj68.h b/keyboards/zj68/zj68.h new file mode 100644 index 00000000000..5eaae26ad3f --- /dev/null +++ b/keyboards/zj68/zj68.h @@ -0,0 +1,60 @@ +/* Copyright 2019 Collin Diekvoss + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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, K0E, K4E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K1D, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K48, K49, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, 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, KC_NO, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, K48, K49, K4A, K4B, K4C, K4D, K4E } \ +} + +#define LAYOUT_65_ansi_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K4E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K1D, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K48, K49, K4A, K4B, K4C, K4D \ +) { \ + { 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, KC_NO, K2E }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, K48, K49, K4A, K4B, K4C, K4D, K4E } \ +} + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K4E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K1D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K48, K49, K4A, K4B, K4C, K4D \ +) { \ + { 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, KC_NO, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, K48, K49, K4A, K4B, K4C, K4D, K4E } \ +} From 40b0ddd425bf09ddbb15a414b5147e98256f10a8 Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Mon, 22 Jul 2019 12:43:52 -0500 Subject: [PATCH 029/115] Sol Rev 2 Keyboard (#6389) * Basic Rev 2 implementation * Updated LED defines and added Extra encoder support * Fixed rgb pin assignment * Physically accurate LED positions * Single Color Band scrolling left to right effects * Spirals, Pinwheels, and Documentation....Oh My! * Spiral effect band thickness adjustments * Fixing animation spin directions * Full hand LED positions * Basic Rev 2 implementation Updated LED defines and added Extra encoder support Fixed rgb pin assignment Physically accurate LED positions Full hand LED positions Moving rev2 folder * RGB Center Point LED position update * Fixing led config commas * Fixing led config commas * fix enter key * fix enter * Small changes to default * update default * typo fix * update default * Fixing defines & led config, turned full hand & extra encoders into rules.mk feature * Refactored rules.mk to have a post_rules.mk * Forgot to offset the matrix to led map due to the edge led additions * Updated LED flags and fixed my keymap * Update keymap.c include speed controls for RGB * Fixing more rules.mk and adding keymap like encoders functionality * Sol Rev 2 Implementation * Minor fixes * Keymap fixes * Fix Colemak, add lock keys --- keyboards/rgbkb/sol/common/glcdfont.c | 24 +- keyboards/rgbkb/sol/config.h | 7 - .../rgbkb/sol/keymaps/brianweyer/rules.mk | 43 +-- .../rgbkb/sol/keymaps/danielhklein/rules.mk | 40 +- keyboards/rgbkb/sol/keymaps/default/keymap.c | 358 ++++++++++-------- keyboards/rgbkb/sol/keymaps/default/readme.md | 4 +- keyboards/rgbkb/sol/keymaps/default/rules.mk | 40 +- .../rgbkb/sol/keymaps/kageurufu/rules.mk | 47 +-- keyboards/rgbkb/sol/keymaps/xulkal/rules.mk | 48 +-- keyboards/rgbkb/sol/rev1/config.h | 7 + keyboards/rgbkb/sol/rev1/post_rules.mk | 19 + keyboards/rgbkb/sol/rev1/rev1.c | 24 +- keyboards/rgbkb/sol/rev1/rules.mk | 28 ++ keyboards/rgbkb/sol/rev2/config.h | 61 +++ keyboards/rgbkb/sol/rev2/info.json | 87 +++++ keyboards/rgbkb/sol/rev2/post_rules.mk | 37 ++ keyboards/rgbkb/sol/rev2/rev2.c | 89 +++++ keyboards/rgbkb/sol/rev2/rev2.h | 1 + keyboards/rgbkb/sol/rev2/rules.mk | 35 ++ keyboards/rgbkb/sol/rules.mk | 42 +- keyboards/rgbkb/sol/sol.h | 28 ++ users/xulkal/custom_encoder.c | 2 +- 22 files changed, 683 insertions(+), 388 deletions(-) create mode 100644 keyboards/rgbkb/sol/rev1/post_rules.mk create mode 100644 keyboards/rgbkb/sol/rev2/config.h create mode 100644 keyboards/rgbkb/sol/rev2/info.json create mode 100644 keyboards/rgbkb/sol/rev2/post_rules.mk create mode 100644 keyboards/rgbkb/sol/rev2/rev2.c create mode 100644 keyboards/rgbkb/sol/rev2/rev2.h create mode 100644 keyboards/rgbkb/sol/rev2/rules.mk diff --git a/keyboards/rgbkb/sol/common/glcdfont.c b/keyboards/rgbkb/sol/common/glcdfont.c index f772e31811b..61b40c092ef 100644 --- a/keyboards/rgbkb/sol/common/glcdfont.c +++ b/keyboards/rgbkb/sol/common/glcdfont.c @@ -168,11 +168,11 @@ static const unsigned char font[] PROGMEM = { 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, - 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, - 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0xE0, 0xEC, 0xDF, - 0xFC, 0xE0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0xF4, 0xEC, 0xDE, + 0xDE, 0xBE, 0x3E, 0x3E, 0x3F, 0x3F, + 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x3F, + 0x3F, 0x3E, 0x3E, 0xBE, 0xDE, 0xDE, + 0xEC, 0xF4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x80, 0x80, 0x70, 0x0F, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x00, 0x7F, 0x80, 0x80, @@ -200,11 +200,11 @@ static const unsigned char font[] PROGMEM = { 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, - 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, - 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, - 0x40, 0x7C, 0x3F, 0x3F, 0x23, 0x01, - 0x23, 0x3F, 0x37, 0x6C, 0x40, 0x00, + 0x00, 0x00, 0x01, 0x0F, 0x3F, 0xFF, + 0xFF, 0xFF, 0xFC, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xE0, 0xFC, 0xFF, 0xFF, 0xFF, + 0x3F, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -233,8 +233,8 @@ static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, + 0xFE, 0xFC, 0x00, 0xFC, 0xFE, 0x7F, + 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/keyboards/rgbkb/sol/config.h b/keyboards/rgbkb/sol/config.h index 23f4503bfd9..9b136db0584 100644 --- a/keyboards/rgbkb/sol/config.h +++ b/keyboards/rgbkb/sol/config.h @@ -35,16 +35,9 @@ along with this program. If not, see . #define MATRIX_COLS 7 #define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7 } -// Encoder support -#define ENCODERS_PAD_A { D2 } -#define ENCODERS_PAD_B { D6 } - /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 -/* ws2812 RGB LED */ -#define RGB_DI_PIN B3 - #ifdef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 40 #elif RGBLIGHT_FULL_POWER diff --git a/keyboards/rgbkb/sol/keymaps/brianweyer/rules.mk b/keyboards/rgbkb/sol/keymaps/brianweyer/rules.mk index 12c8779467c..47dd9a7e27e 100644 --- a/keyboards/rgbkb/sol/keymaps/brianweyer/rules.mk +++ b/keyboards/rgbkb/sol/keymaps/brianweyer/rules.mk @@ -1,38 +1,15 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no # Mouse keys(+4700) +# Overridden build options from rev1 + +# RGB Options +LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) + +# Misc +OLED_DRIVER_ENABLE = yes # Enable the OLED Driver + + -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -RGBLIGHT_ENABLE = yes # Enable global lighting effects. Do not enable with RGB Matrix -RGBLIGHT_ANIMATIONS = yes # LED animations -LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) -RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500) -RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. Can be very laggy (+1500) -RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port -UNICODE_ENABLE = no # Unicode -SWAP_HANDS_ENABLE = no # Enable one-hand typing -OLED_DRIVER_ENABLE = yes # Enable the OLED Driver (+5000) -IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone) # Do not edit past here -ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) - OPT_DEFS += -DIOS_DEVICE_ENABLE -else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes) - OPT_DEFS += -DRGBLIGHT_FULL_POWER -endif - -ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes) - OPT_DEFS += -DRGB_MATRIX_KEYPRESSES -endif - -ifeq ($(strip $(LED_MIRRORED)), yes) - OPT_DEFS += -DLED_MIRRORED -endif +include keyboards/$(KEYBOARD)/post_rules.mk diff --git a/keyboards/rgbkb/sol/keymaps/danielhklein/rules.mk b/keyboards/rgbkb/sol/keymaps/danielhklein/rules.mk index 09b0e201d53..2993bdacc3b 100644 --- a/keyboards/rgbkb/sol/keymaps/danielhklein/rules.mk +++ b/keyboards/rgbkb/sol/keymaps/danielhklein/rules.mk @@ -1,38 +1,14 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no # Mouse keys(+4700) +# Overridden build options from rev1 + +# Debug Options +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration + + -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -RGBLIGHT_ENABLE = yes # Enable global lighting effects. Do not enable with RGB Matrix -RGBLIGHT_ANIMATIONS = yes # LED animations -LED_MIRRORED = yes # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) -RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500) -RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. Can be very laggy (+1500) -RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port -UNICODE_ENABLE = no # Unicode -SWAP_HANDS_ENABLE = no # Enable one-hand typing -OLED_DRIVER_ENABLE = no # Enable the OLED Driver (+5000) -IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone) # Do not edit past here -ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) - OPT_DEFS += -DIOS_DEVICE_ENABLE -else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes) - OPT_DEFS += -DRGBLIGHT_FULL_POWER -endif +include keyboards/$(KEYBOARD)/post_rules.mk -ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes) - OPT_DEFS += -DRGB_MATRIX_KEYPRESSES -endif - -ifeq ($(strip $(LED_MIRRORED)), yes) - OPT_DEFS += -DLED_MIRRORED -endif diff --git a/keyboards/rgbkb/sol/keymaps/default/keymap.c b/keyboards/rgbkb/sol/keymaps/default/keymap.c index ca73524822e..f948dc450f8 100644 --- a/keyboards/rgbkb/sol/keymaps/default/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/default/keymap.c @@ -5,13 +5,6 @@ #include "split_util.h" #endif -extern keymap_config_t keymap_config; - -#ifdef RGBLIGHT_ENABLE -//Following line allows macro to read current RGB settings -extern rgblight_config_t rgblight_config; -#endif - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -23,22 +16,18 @@ enum layer_number { _ADJ }; +// Keycode defines for layers +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK) +#define FN MO(_FN) +#define ADJ MO(_ADJ) + enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - FN, - ADJ, - BACKLIT, - RGBRST + RGBRST = SAFE_RANGE, + RGB_MENU }; -enum macro_keycodes { - KC_SAMPLEMACRO, -}; - - - -#define FN_ESC LT(_FN, KC_ESC) +#define FN_ESC LT(_FN, KC_ESC) #define FN_CAPS LT(_FN, KC_CAPS) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -50,9 +39,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| * |FN(CAPS)| A | S | D | F | G | ( | | ) | H | J | K | L | ; | ' | * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * |Shift | Z | X | C | V | B | { | | } | N | M | , | . | / |Shift | + * |Shift | Z | X | C | V | B | { | | } | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right | + * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right | * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------' * | Space| DEL | | Enter| Space| * `-------------' `-------------' @@ -74,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| * |FN(CAPS)| A | R | S | T | G | ( | | ) | K | N | E | I | O | ' | * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * |Shift | Z | X | C | D | V | { | | } | M | H | , | . | / |Shift | + * |Shift | Z | X | C | D | V | { | | } | M | H | , | . | / |Enter | * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right | * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------' @@ -83,9 +72,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_COLEMAK] = LAYOUT( \ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \ - FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_LPRN, KC_RPRN, KC_K, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_LCBR, KC_RCBR, KC_M, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \ + FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_LPRN, KC_RPRN, 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_LCBR, KC_RCBR, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJ, KC_SPC, KC_DEL, KC_ENT, KC_SPC, FN, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, \ KC_SPC, KC_DEL, KC_ENT, KC_SPC \ ), @@ -107,8 +96,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FN] = LAYOUT( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, \ - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, \ + _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_SLCK, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, \ + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_NLCK, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, \ _______, _______, _______, _______ \ @@ -134,120 +123,184 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_SAD, RGB_VAI, RGB_SAI, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ - _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, \ + _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, RGB_SPI, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ + _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, \ _______, _______, _______, _______ \ ) }; +// For RGBRST Keycode +#if defined(RGB_MATRIX_ENABLE) +void rgb_matrix_increase_flags(void) +{ + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: { + 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; + } +} +void rgb_matrix_decrease_flags(void) +{ + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); + } + break; + case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case LED_FLAG_UNDERGLOW: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_enable_noeeprom(); + } + break; + } +} +#endif -// define variables for reactive RGB -bool TOG_STATUS = false; -int RGB_current_mode; +#ifdef RGB_OLED_MENU +uint8_t rgb_encoder_state = 4; + +typedef void (*rgb_matrix_f)(void); + +const rgb_matrix_f rgb_matrix_functions[6][2] = { + { rgb_matrix_increase_hue, rgb_matrix_decrease_hue }, + { rgb_matrix_increase_sat, rgb_matrix_decrease_sat }, + { rgb_matrix_increase_val, rgb_matrix_decrease_val }, + { rgb_matrix_increase_speed, rgb_matrix_decrease_speed }, + { rgb_matrix_step, rgb_matrix_step_reverse }, + { rgb_matrix_increase_flags, rgb_matrix_decrease_flags } +}; +#endif #ifdef ENCODER_ENABLE + +static pin_t encoders_pad_a[] = ENCODERS_PAD_A; +#define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a)/sizeof(pin_t)) + +const uint16_t PROGMEM encoders[][NUMBER_OF_ENCODERS * 2][2] = { + [_QWERTY] = ENCODER_LAYOUT( \ + KC_VOLU, KC_VOLD, + KC_VOLU, KC_VOLD + ), + [_COLEMAK] = ENCODER_LAYOUT( \ + _______, _______, + _______, _______ + ), + [_FN] = ENCODER_LAYOUT( \ + _______, _______, + _______, _______ + ), + [_ADJ] = ENCODER_LAYOUT( \ + _______, _______, + _______, _______ + ) +}; + void encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* First encoder */ - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { /* Second encoder*/ - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); + if (!is_keyboard_master()) + return; + +#ifdef RGB_OLED_MENU + if (index == RGB_OLED_MENU) { + (*rgb_matrix_functions[rgb_encoder_state][clockwise])(); + } else +#endif + { + uint8_t layer = biton32(layer_state); + uint16_t keycode = encoders[layer][index][clockwise]; + while (keycode == KC_TRANSPARENT && layer > 0) + { + layer--; + if ((layer_state & (1 << layer)) != 0) + keycode = encoders[layer][index][clockwise]; } + if (keycode != KC_TRANSPARENT) + tap_code16(keycode); } } #endif -// Setting ADJ layer RGB back to default -void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { - #ifdef RGBLIGHT_ENABLE - //rgblight_mode(RGB_current_mode); - #endif - layer_on(layer3); - } else { - layer_off(layer3); - } -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - //uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)); - + static uint16_t reset_timer; switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if(record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case FN: - if (record->event.pressed) { - //not sure how to have keyboard check mode and set it to a variable, so my work around - //uses another variable that would be set to true after the first time a reactive key is pressed. - if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false - } else { - TOG_STATUS = !TOG_STATUS; - #ifdef RGBLIGHT_ENABLE - //rgblight_mode(15); - #endif - } - layer_on(_FN); - } else { - #ifdef RGBLIGHT_ENABLE - //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change - #endif - layer_off(_FN); - TOG_STATUS = false; - } - return false; - break; - case ADJ: - if (record->event.pressed) { - layer_on(_ADJ); - } else { - layer_off(_ADJ); - } - return false; - break; - //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released case RGBRST: - #ifdef RGBLIGHT_ENABLE +#if defined(RGBLIGHT_ENABLE) if (record->event.pressed) { eeconfig_update_rgblight_default(); rgblight_enable(); - RGB_current_mode = rgblight_config.mode; } - #endif - break; +#elif defined(RGB_MATRIX_ENABLE) + if (record->event.pressed) { + eeconfig_update_rgb_matrix_default(); + } +#endif + return false; + case RESET: + if (record->event.pressed) { + reset_timer = timer_read(); + } else { + if (timer_elapsed(reset_timer) >= 500) { + reset_keyboard(); + } + } + return false; +#if defined(RGB_MATRIX_ENABLE) && defined(KEYBOARD_rgbkb_sol_rev2) + case RGB_TOG: + if (record->event.pressed) { + rgb_matrix_increase_flags(); + } + return false; +#endif + case RGB_MENU: +#ifdef RGB_OLED_MENU + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + rgb_encoder_state = (rgb_encoder_state - 1); + if (rgb_encoder_state > 5) { + rgb_encoder_state = 5; + } + } else { + rgb_encoder_state = (rgb_encoder_state + 1) % 6; + } + } +#endif + return false; } return true; } -void matrix_init_user(void) { -#ifdef RGBLIGHT_ENABLE - RGB_current_mode = rgblight_config.mode; -#endif -} - - // OLED Driver Logic #ifdef OLED_DRIVER_ENABLE - oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!has_usb()) - return OLED_ROTATION_180; // flip 180 for offhand + if (is_keyboard_master()) + return OLED_ROTATION_90; return rotation; } @@ -255,62 +308,63 @@ static void render_logo(void) { static const char PROGMEM sol_logo[] = { 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; - + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; oled_write_P(sol_logo, false); } -//assign the right code to your layers for OLED display -#define L_BASE 0 -#define L_FN (1<<_FN) -#define L_ADJ (1<<_ADJ) -#define L_ADJ_TRI (L_ADJ|L_FN) - static void render_status(void) { // Render to mode icon - static const char PROGMEM mode_logo[4][4] = { - {0x95,0x96,0x0a,0}, - {0xb5,0xb6,0x0a,0}, - {0x97,0x98,0x0a,0}, - {0xb7,0xb8,0x0a,0} }; + static const char PROGMEM sol_icon[] = { + 0x9b,0x9c,0x9d,0x9e,0x9f, + 0xbb,0xbc,0xbd,0xbe,0xbf, + 0xdb,0xdc,0xdd,0xde,0xdf,0 + }; + oled_write_P(sol_icon, false); - if (keymap_config.swap_lalt_lgui != false) { - oled_write_P(mode_logo[0], false); - oled_write_P(mode_logo[1], false); - } else { - oled_write_P(mode_logo[2], false); - oled_write_P(mode_logo[3], false); - } - - // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below - oled_write_P(PSTR("Layer: "), false); - switch (layer_state) { - case L_BASE: - oled_write_P(PSTR("Default\n"), false); + // Define layers here + oled_write_P(PSTR("Layer"), false); + switch (biton32(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("BASE "), false); break; - case L_FN: - oled_write_P(PSTR("FN \n"), false); + case _COLEMAK: + oled_write_P(PSTR("CLMK "), false); break; - case L_ADJ: - case L_ADJ_TRI: - oled_write_P(PSTR("ADJ \n"), false); + case _FN: + oled_write_P(PSTR("FN "), false); + break; + case _ADJ: + oled_write_P(PSTR("ADJ "), false); break; default: - oled_write_P(PSTR("UNDEF \n"), false); + oled_write_P(PSTR("UNDEF"), false); } // Host Keyboard LED Status - uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(led_usb_state & (1<. #define PRODUCT Sol #define DESCRIPTION "An RGB, split, ortho-esque keyboard" +/* ws2812 RGB LED */ +#define RGB_DI_PIN B3 + #ifdef LED_MIRRORED #define RGBLED_NUM 35 #else @@ -34,3 +37,7 @@ along with this program. If not, see . #define DRIVER_LED_TOTAL RGBLED_NUM #define RGB_MATRIX_CENTER { 112, 35 } + +// Encoder support +#define ENCODERS_PAD_A { D2 } +#define ENCODERS_PAD_B { D6 } diff --git a/keyboards/rgbkb/sol/rev1/post_rules.mk b/keyboards/rgbkb/sol/rev1/post_rules.mk new file mode 100644 index 00000000000..ede37a1ad7b --- /dev/null +++ b/keyboards/rgbkb/sol/rev1/post_rules.mk @@ -0,0 +1,19 @@ +# As long as the users rules.mk has include $(KEYBOARD)/post_rules.mk this will be run after to properly setup any keyboard features and defines + +ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) + OPT_DEFS += -DIOS_DEVICE_ENABLE +else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes) + OPT_DEFS += -DRGBLIGHT_FULL_POWER +endif + +ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes) + OPT_DEFS += -DRGB_MATRIX_KEYPRESSES +endif + +ifeq ($(strip $(RGB_MATRIX_FRAMEBUFFER)), yes) + OPT_DEFS += -DRGB_MATRIX_FRAMEBUFFER_EFFECTS +endif + +ifeq ($(strip $(LED_MIRRORED)), yes) + OPT_DEFS += -DLED_MIRRORED +endif diff --git a/keyboards/rgbkb/sol/rev1/rev1.c b/keyboards/rgbkb/sol/rev1/rev1.c index 6ee4b610b3b..21b4503ab9f 100644 --- a/keyboards/rgbkb/sol/rev1/rev1.c +++ b/keyboards/rgbkb/sol/rev1/rev1.c @@ -2,18 +2,18 @@ #ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6 }, - { 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20 }, - { 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 }, - { 35, 36, 37, 38, 39, 40, 41 }, - { 42, 43, 44, 45, 46, 47, 48 }, - { 49, 50, 51, 52, 53, 54, 55 }, - { 56, 57, 58, 59, 60, 61, 62 }, - { 63, 64, 65, 66, 67, 68, 68 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 68, 68 } + { 0, 1, 2, 3, 4, 5, 6 }, + { 7, 8, 9, 10, 11, 12, 13 }, + { 14, 15, 16, 17, 18, 19, 20 }, + { 21, 22, 23, 24, 25, 26, 27 }, + { 28, 29, 30, 31, 32, 33, 34 }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 }, + { 35, 36, 37, 38, 39, 40, 41 }, + { 42, 43, 44, 45, 46, 47, 48 }, + { 49, 50, 51, 52, 53, 54, 55 }, + { 56, 57, 58, 59, 60, 61, 62 }, + { 63, 64, 65, 66, 67, 68, 68 }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 68, 68 } }, { // Left Hand Mapped Left to Right { 0, 0 }, { 21, 0 }, { 38, 0 }, { 56, 0 }, { 73, 0 }, { 91, 0 }, { 112, 0 }, diff --git a/keyboards/rgbkb/sol/rev1/rules.mk b/keyboards/rgbkb/sol/rev1/rules.mk index e69de29bb2d..dd6d25eb984 100644 --- a/keyboards/rgbkb/sol/rev1/rules.mk +++ b/keyboards/rgbkb/sol/rev1/rules.mk @@ -0,0 +1,28 @@ +# RGBKB Sol Rev1 Defaults + +# Keycode Options +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +UNICODE_ENABLE = no # Unicode keycodes +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work + +# Debug Options +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration + +# RGB Options +RGBLIGHT_ENABLE = yes # Enable global lighting effects. Do not enable with RGB Matrix +RGBLIGHT_ANIMATIONS = yes # LED animations +LED_MIRRORED = yes # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) + +RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight +RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. +RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap. + +RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness for RGBLIGHT or RGB_MATRIX. Otherwise, limited to a safe level for a normal USB-A port +IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone) + +# Misc +OLED_DRIVER_ENABLE = no # Enable the OLED Driver +SWAP_HANDS_ENABLE = no # Enable one-hand typing diff --git a/keyboards/rgbkb/sol/rev2/config.h b/keyboards/rgbkb/sol/rev2/config.h new file mode 100644 index 00000000000..af74b7e46fb --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/config.h @@ -0,0 +1,61 @@ +/* +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 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0002 +#define MANUFACTURER RGBKB +#define PRODUCT Sol +#define DESCRIPTION "An RGB, split, ortho-esque keyboard" + +/* ws2812 RGB LED */ +#define RGB_DI_PIN B7 + +#define BACKLIGHT_LEDS 124 + +#ifdef FULLHAND_ENABLE + #define FULLHAND_LEDS 24 +#else + #define FULLHAND_LEDS 0 +#endif + +// Underglow / DIY Tent Glow are parallel to the top row leds, no separate define + +#ifdef LED_MIRRORED + #define RGBLED_NUM ((BACKLIGHT_LEDS + FULLHAND_LEDS) / 2) +#else + #define RGBLED_NUM (BACKLIGHT_LEDS + FULLHAND_LEDS) +#endif +#define DRIVER_LED_TOTAL RGBLED_NUM + +#define RGB_MATRIX_CENTER { 112, 37 } + +// Encoder support +#ifndef EXTRA_ENCODERS_ENABLE +#define ENCODERS_PAD_A { D2 } +#define ENCODERS_PAD_B { D6 } +#else +#ifdef OLED_DRIVER_ENABLE + #error Extra encoders cannot be enabled at the same time as the OLED Driver as they use the same pins. +#endif +#define ENCODERS_PAD_A { D2, D1, B0 } +#define ENCODERS_PAD_B { D6, B1, D0 } +#endif diff --git a/keyboards/rgbkb/sol/rev2/info.json b/keyboards/rgbkb/sol/rev2/info.json new file mode 100644 index 00000000000..e252ea2e2df --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/info.json @@ -0,0 +1,87 @@ +{ + "keyboard_name": "Sol", + "url": "", + "maintainer": "Legonut", + "width": 17, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"L00", "x":0, "y":0, "w":1.5}, + {"label":"L01", "x":1.5, "y":0}, + {"label":"L02", "x":2.5, "y":0}, + {"label":"L03", "x":3.5, "y":0}, + {"label":"L04", "x":4.5, "y":0}, + {"label":"L05", "x":5.5, "y":0}, + {"label":"L06", "x":6.75, "y":0}, + {"label":"R06", "x":9.25, "y":0}, + {"label":"R00", "x":10.5, "y":0}, + {"label":"R01", "x":11.5, "y":0}, + {"label":"R02", "x":12.5, "y":0}, + {"label":"R03", "x":13.5, "y":0}, + {"label":"R04", "x":14.5, "y":0}, + {"label":"R05", "x":15.5, "y":0, "w":1.5}, + {"label":"L10", "x":0, "y":1, "w":1.5}, + {"label":"L11", "x":1.5, "y":1}, + {"label":"L12", "x":2.5, "y":1}, + {"label":"L13", "x":3.5, "y":1}, + {"label":"L14", "x":4.5, "y":1}, + {"label":"L15", "x":5.5, "y":1}, + {"label":"L16", "x":6.75, "y":1}, + {"label":"R16", "x":9.25, "y":1}, + {"label":"R10", "x":10.5, "y":1}, + {"label":"R11", "x":11.5, "y":1}, + {"label":"R12", "x":12.5, "y":1}, + {"label":"R13", "x":13.5, "y":1}, + {"label":"R14", "x":14.5, "y":1}, + {"label":"R15", "x":15.5, "y":1, "w":1.5}, + {"label":"L20", "x":0, "y":2, "w":1.5}, + {"label":"L21", "x":1.5, "y":2}, + {"label":"L22", "x":2.5, "y":2}, + {"label":"L23", "x":3.5, "y":2}, + {"label":"L24", "x":4.5, "y":2}, + {"label":"L25", "x":5.5, "y":2}, + {"label":"L26", "x":6.75, "y":2}, + {"label":"R26", "x":9.25, "y":2}, + {"label":"R20", "x":10.5, "y":2}, + {"label":"R21", "x":11.5, "y":2}, + {"label":"R22", "x":12.5, "y":2}, + {"label":"R23", "x":13.5, "y":2}, + {"label":"R24", "x":14.5, "y":2}, + {"label":"R25", "x":15.5, "y":2, "w":1.5}, + {"label":"L30", "x":0, "y":3, "w":1.5}, + {"label":"L31", "x":1.5, "y":3}, + {"label":"L32", "x":2.5, "y":3}, + {"label":"L33", "x":3.5, "y":3}, + {"label":"L34", "x":4.5, "y":3}, + {"label":"L35", "x":5.5, "y":3}, + {"label":"L36", "x":6.75, "y":3}, + {"label":"R36", "x":9.25, "y":3}, + {"label":"R30", "x":10.5, "y":3}, + {"label":"R31", "x":11.5, "y":3}, + {"label":"R32", "x":12.5, "y":3}, + {"label":"R33", "x":13.5, "y":3}, + {"label":"R34", "x":14.5, "y":3}, + {"label":"R35", "x":15.5, "y":3, "w":1.5}, + {"label":"L40", "x":0, "y":4, "w":1.5}, + {"label":"L41", "x":1.5, "y":4}, + {"label":"L42", "x":2.5, "y":4}, + {"label":"L43", "x":3.5, "y":4}, + {"label":"L44", "x":4.5, "y":4}, + {"label":"L45", "x":6, "y":4.5}, + {"label":"L46", "x":7, "y":4.5}, + {"label":"R46", "x":9, "y":4.5}, + {"label":"R40", "x":10, "y":4.5}, + {"label":"R41", "x":11.5, "y":4}, + {"label":"R42", "x":12.5, "y":4}, + {"label":"R43", "x":13.5, "y":4}, + {"label":"R44", "x":14.5, "y":4}, + {"label":"R45", "x":15.5, "y":4, "w":1.5}, + {"label":"L55", "x":6, "y":5.5}, + {"label":"L56", "x":7, "y":5.5}, + {"label":"R56", "x":9, "y":5.5}, + {"label":"R50", "x":10, "y":5.5} + ] + } + } +} diff --git a/keyboards/rgbkb/sol/rev2/post_rules.mk b/keyboards/rgbkb/sol/rev2/post_rules.mk new file mode 100644 index 00000000000..0cbf430ad3e --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/post_rules.mk @@ -0,0 +1,37 @@ +# As long as the users rules.mk has include $(KEYBOARD)/post_rules.mk this will be run after to properly setup any keyboard features and defines + +ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) + OPT_DEFS += -DIOS_DEVICE_ENABLE +else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes) + OPT_DEFS += -DRGBLIGHT_FULL_POWER +endif + +ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes) + OPT_DEFS += -DRGB_MATRIX_KEYPRESSES +endif + +ifeq ($(strip $(RGB_MATRIX_FRAMEBUFFER)), yes) + OPT_DEFS += -DRGB_MATRIX_FRAMEBUFFER_EFFECTS +endif + +ifeq ($(strip $(LED_MIRRORED)), yes) + OPT_DEFS += -DLED_MIRRORED +endif + +ifeq ($(strip $(FULLHAND_ENABLE)), yes) + OPT_DEFS += -DFULLHAND_ENABLE +endif + +ifeq ($(strip $(EXTRA_ENCODERS_ENABLE)), yes) + OPT_DEFS += -DEXTRA_ENCODERS_ENABLE +endif + +ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes) + ifeq ($(strip $(ENCODER_ENABLE)), yes) + ifneq ($(strip $(RGB_MATRIX_ENABLE)), no) + ifneq ($(strip $(RGB_OLED_MENU)), no) + OPT_DEFS += -DRGB_OLED_MENU=$(strip $(RGB_OLED_MENU)) + endif + endif + endif +endif diff --git a/keyboards/rgbkb/sol/rev2/rev2.c b/keyboards/rgbkb/sol/rev2/rev2.c new file mode 100644 index 00000000000..467aa18e44f --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/rev2.c @@ -0,0 +1,89 @@ +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6 }, + { 7, 8, 9, 10, 11, 12, 13 }, + { 14, 15, 16, 17, 18, 19, 20 }, + { 21, 22, 23, 24, 25, 26, 27 }, + { 28, 29, 30, 31, 32, 33, 34 }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 }, +// Need to shift Right hand indexes if full hand LEDs are enabled +#define LO (FULLHAND_LEDS / 2) + { LO+62, LO+63, LO+64, LO+65, LO+66, LO+67, LO+68 }, + { LO+69, LO+70, LO+71, LO+72, LO+73, LO+74, LO+75 }, + { LO+76, LO+77, LO+78, LO+79, LO+80, LO+81, LO+82 }, + { LO+83, LO+84, LO+85, LO+86, LO+87, LO+88, LO+89 }, + { LO+90, LO+91, LO+92, LO+93, LO+94, LO+95, LO+95 }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, LO+95, LO+95 } +#undef LO +}, { +// Left Hand Mapped Left to Right + { 11, 14 }, { 28, 14 }, { 42, 14 }, { 56, 14 }, { 70, 14 }, { 84, 14 }, { 102, 14 }, + { 11, 28 }, { 28, 28 }, { 42, 28 }, { 56, 28 }, { 70, 28 }, { 84, 28 }, { 98, 25 }, + { 11, 42 }, { 28, 42 }, { 42, 42 }, { 56, 42 }, { 70, 42 }, { 84, 42 }, { 98, 39 }, + { 11, 56 }, { 28, 56 }, { 42, 56 }, { 56, 56 }, { 70, 56 }, { 84, 56 }, { 98, 53 }, + { 11, 70 }, { 28, 70 }, { 42, 70 }, { 56, 70 }, { 70, 70 }, { 83, 87 }, { 93, 97 }, +// Edge Light Left + { 0, 66 }, { 0, 52 }, { 0, 38 }, { 0, 24 }, { 0, 10 }, { 31, 0 }, { 38, 0 }, + { 46, 0 }, { 54, 0 }, { 61, 0 }, { 69, 0 }, { 76, 0 }, { 84, 0 }, { 109, 11 }, + { 109, 24 }, { 109, 39 }, { 109, 53 }, { 110, 73 }, { 112, 85 }, { 106, 95 }, { 95, 98 }, + { 83, 91 }, { 71, 84 }, { 58, 77 }, { 42, 74 }, { 28, 74 }, { 14, 74 }, +// Full Hand Left +#ifdef FULLHAND_ENABLE + { 2, 88 }, { 2, 103 }, { 2, 117 }, { 2, 132 }, { 10, 145 }, { 25, 145 }, { 39, 145 }, + { 54, 145 }, { 69, 145 }, { 79, 136 }, { 87, 124 }, { 94, 111 }, +#endif +// Left Hand Mapped Right to Left + { 213, 14 }, { 196, 14 }, { 182, 14 }, { 168, 14 }, { 154, 14 }, { 140, 14 }, { 122, 14 }, + { 213, 28 }, { 196, 28 }, { 182, 28 }, { 168, 28 }, { 154, 28 }, { 140, 28 }, { 126, 25 }, + { 213, 42 }, { 196, 42 }, { 182, 42 }, { 168, 42 }, { 154, 42 }, { 140, 42 }, { 126, 39 }, + { 213, 56 }, { 196, 56 }, { 182, 56 }, { 168, 56 }, { 154, 56 }, { 140, 56 }, { 126, 53 }, + { 213, 70 }, { 196, 70 }, { 182, 70 }, { 168, 70 }, { 154, 70 }, { 141, 87 }, { 131, 97 }, +// Edge Light Right + { 224, 66 }, { 224, 52 }, { 224, 38 }, { 224, 24 }, { 224, 10 }, { 193, 0 }, { 186, 0 }, + { 178, 0 }, { 170, 0 }, { 163, 0 }, { 155, 0 }, { 148, 0 }, { 140, 0 }, { 115, 11 }, + { 115, 24 }, { 115, 39 }, { 115, 53 }, { 114, 73 }, { 112, 85 }, { 118, 95 }, { 129, 98 }, + { 141, 91 }, { 153, 84 }, { 166, 77 }, { 182, 74 }, { 196, 74 }, { 210, 74 } +// Full Hand Right +#ifdef FULLHAND_ENABLE + ,{ 222, 88 }, { 222, 103 }, { 222, 117 }, { 222, 132 }, { 214, 145 }, { 199, 145 }, { 185, 145 }, + { 170, 145 }, { 155, 145 }, { 145, 136 }, { 137, 124 }, { 130, 111 } +#endif +}, { +// Left Hand Mapped Left to Right + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 1, 1, 1, 1, +// Edge Light Left + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, +// Full Hand Left +#ifdef FULLHAND_ENABLE + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, +#endif +// Left Hand Mapped Right to Left + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 1, 1, 1, 1, +// Edge Light Right + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2 +// Full Hand Right +#ifdef FULLHAND_ENABLE + ,2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2 +#endif +} }; + +#endif + diff --git a/keyboards/rgbkb/sol/rev2/rev2.h b/keyboards/rgbkb/sol/rev2/rev2.h new file mode 100644 index 00000000000..6f70f09beec --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/rev2.h @@ -0,0 +1 @@ +#pragma once diff --git a/keyboards/rgbkb/sol/rev2/rules.mk b/keyboards/rgbkb/sol/rev2/rules.mk new file mode 100644 index 00000000000..87b400fa14e --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/rules.mk @@ -0,0 +1,35 @@ +# RGBKB Sol Rev2 Defaults + +# Keycode Options +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration( +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +UNICODE_ENABLE = no # Unicode keycodes +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work + +# Debug Options +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration + +# RGB Options +RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix +RGBLIGHT_ANIMATIONS = no # LED animations +LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) + +RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight +RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. +RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap. + +RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness for RGBLIGHT or RGB_MATRIX. Otherwise, limited to a safe level for a normal USB-A port +FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs +IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone) + +# Misc +OLED_DRIVER_ENABLE = no # Enable the OLED Driver +EXTRA_ENCODERS_ENABLE = no # Enables 3 encoders per side (up from 1, not compatible with OLED_DRIVER_ENABLE) +SWAP_HANDS_ENABLE = no # Enable one-hand typing +LINK_TIME_OPTIMIZATION_ENABLE = yes # Enable Link Time Optimizations greatly reducing firmware size by disabling the old Macros and Functions features + +# Special RGB Matrix, OLED, & Encoder Control Menu! +RGB_OLED_MENU = no # Enabled by setting this to the encoder index (0-5) you wish to use to control the menu. + # Use the RGB_MENU keycode in the keymap for the encoder to advance the menu to the next option. diff --git a/keyboards/rgbkb/sol/rules.mk b/keyboards/rgbkb/sol/rules.mk index a3dcfc29030..3be8f0b2291 100644 --- a/keyboards/rgbkb/sol/rules.mk +++ b/keyboards/rgbkb/sol/rules.mk @@ -2,41 +2,15 @@ MCU = atmega32u4 # Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. F_CPU = 16000000 -# -# LUFA specific -# # Target architecture (see library "Board Types" documentation). ARCH = AVR8 # Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. F_USB = $(F_CPU) # Bootloader -# This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded -# automatically (+60). See bootloader.mk for all options. BOOTLOADER = qmk-dfu # Interrupt driven control endpoint task(+60) @@ -48,18 +22,4 @@ OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\" SPLIT_KEYBOARD = yes ENCODER_ENABLE = yes -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # 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 -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 this with audio at the same time. - -DEFAULT_FOLDER = rgbkb/sol/rev1 +DEFAULT_FOLDER = rgbkb/sol/rev2 diff --git a/keyboards/rgbkb/sol/sol.h b/keyboards/rgbkb/sol/sol.h index d26546006c7..1bc87cb0aa4 100644 --- a/keyboards/rgbkb/sol/sol.h +++ b/keyboards/rgbkb/sol/sol.h @@ -3,6 +3,8 @@ #include "quantum.h" #ifdef KEYBOARD_rgbkb_sol_rev1 #include "rev1.h" +#else +#include "rev2.h" #endif @@ -29,6 +31,32 @@ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, R50, R56 } \ } +#define ENCODER_LAYOUT( \ + E10, E11, \ + E20, E21 \ +) \ +{ \ + { E10, E11 }, \ + { E20, E21 } \ +} + +#define EXTRA_ENCODER_LAYOUT( \ + E10, E11, \ + E20, E21, \ + E30, E31, \ + E40, E41, \ + E50, E51, \ + E60, E61 \ +) \ +{ \ + { E10, E11 }, \ + { E20, E21 }, \ + { E30, E31 }, \ + { E40, E41 }, \ + { E50, E51 }, \ + { E60, E61 } \ +} + #define KC________ KC_TRNS #define KC_RGB_MOD RGB_MOD #define KC_FN FN diff --git a/users/xulkal/custom_encoder.c b/users/xulkal/custom_encoder.c index 09f1cda0d15..076a9891a32 100644 --- a/users/xulkal/custom_encoder.c +++ b/users/xulkal/custom_encoder.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM encoders[][2] = { { KC_PGUP, KC_PGDN }, { KC_DOWN, KC_UP } -} +}; void encoder_update_user(uint8_t index, bool clockwise) { From 840b9090a0fd4faf070d9bbb9039337ecdb82de4 Mon Sep 17 00:00:00 2001 From: tucznak Date: Tue, 23 Jul 2019 01:32:47 +0200 Subject: [PATCH 030/115] Adding personal keymaps (#6384) * initial commit * migrated the actual keymap to this keyboard * added the actual Tanuki keymap * Added QMK DFU bootloader support * TuCZnak's keymaps - final * Update keyboards/tanuki/keymaps/tucznak/config.h Co-Authored-By: Drashna Jaelre * Update keyboards/ut472/keymaps/tucznak/config.h Co-Authored-By: Drashna Jaelre * Apply suggestions from code review Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> --- keyboards/tanuki/keymaps/tucznak/config.h | 27 +++++ keyboards/tanuki/keymaps/tucznak/keymap.c | 116 +++++++++++++++++++++ keyboards/tanuki/keymaps/tucznak/readme.md | 8 ++ keyboards/tanuki/keymaps/tucznak/rules.mk | 19 ++++ keyboards/ut472/keymaps/tucznak/config.h | 18 ++++ keyboards/ut472/keymaps/tucznak/keymap.c | 111 ++++++++++++++++++++ keyboards/ut472/keymaps/tucznak/readme.md | 5 + keyboards/ut472/keymaps/tucznak/rules.mk | 18 ++++ 8 files changed, 322 insertions(+) create mode 100644 keyboards/tanuki/keymaps/tucznak/config.h create mode 100644 keyboards/tanuki/keymaps/tucznak/keymap.c create mode 100644 keyboards/tanuki/keymaps/tucznak/readme.md create mode 100644 keyboards/tanuki/keymaps/tucznak/rules.mk create mode 100644 keyboards/ut472/keymaps/tucznak/config.h create mode 100644 keyboards/ut472/keymaps/tucznak/keymap.c create mode 100644 keyboards/ut472/keymaps/tucznak/readme.md create mode 100644 keyboards/ut472/keymaps/tucznak/rules.mk diff --git a/keyboards/tanuki/keymaps/tucznak/config.h b/keyboards/tanuki/keymaps/tucznak/config.h new file mode 100644 index 00000000000..3a140193d8e --- /dev/null +++ b/keyboards/tanuki/keymaps/tucznak/config.h @@ -0,0 +1,27 @@ +#pragma once + +#undef MANUFACTURER +#undef PRODUCT +#undef DESCRIPTION + +#define MANUFACTURER Potato Inc. +#define PRODUCT Trash Panda +#define DESCRIPTION Qt3.14 smolkeeb + +/* for bootloader */ +#define QMK_ESC_OUTPUT B2 +#define QMK_ESC_INPUT D0 +#define QMK_LED B0 + +/* turn off RGB when computer sleeps */ +#ifdef RGBLIGHT_ENABLE +#define RGBLIGHT_SLEEP +#endif + +/* send tap key if no layer key was used even after tap delay */ +#ifdef TAPPING_TERM +#undef TAPPING_TERM +#endif +#define TAPPING_TERM 250 +#define RETRO_TAPPING +#define TAPPING_TOGGLE 2 diff --git a/keyboards/tanuki/keymaps/tucznak/keymap.c b/keyboards/tanuki/keymaps/tucznak/keymap.c new file mode 100644 index 00000000000..301f0f8419a --- /dev/null +++ b/keyboards/tanuki/keymaps/tucznak/keymap.c @@ -0,0 +1,116 @@ +#include QMK_KEYBOARD_H + +enum layers { + _BASE, + _DN, + _UP, + _NAV, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base layer (0) + * ,------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | Tab | A | S | D | F | G | H | J | K | L | ů | Nav | + * `------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----' + * | Shift | Z | X | C | V | B | N | M | , | . |Enter | + * `-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------' + * | Ctrl | GUI |LAlt | Space | SpaceUp |AltGr| Down | + * `--------------------------------------------------------' + */ + + [_BASE] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, TT(_NAV), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(_UP,KC_SPC), KC_RALT, MO(_DN) + ), + + /* Down layer (1) + * function keys and numbers + * ,------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * `------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----' + * | |NumLk| | | + | - | * | / | , | . | | + * `-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------' + * | Fn | | | C+A+D | C+A+I | | | + * `--------------------------------------------------------' + */ + + [_DN] = 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_KP_1, KC_KP_2, KC_KP_3, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_0, _______, + _______, KC_NLCK, _______, _______, KC_PPLS, KC_PMNS, KC_PAST, KC_PSLS, KC_COMM, KC_DOT, _______, + MO(_FN), _______, _______, LCA(KC_DEL), LCA(KC_INS), _______, _______ + ), + + /* Up layer (2) + * national and special characters + * ,------------------------------------------------------------------------. + * | +1 | ě2 | š3 | č4 | ř5 | ž6 | ý7 | á8 | í9 | é0 | ´ | ˇ | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | ;° | | | | | | ( | ) | § | ! | / | ú | | + * `------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----' + * | | | | \ | % | = | ¨ | ' | - | _ | | + * `-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------' + * | | | | | | | | + * `--------------------------------------------------------' + */ + + [_UP] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, LSFT(KC_EQL), + KC_GRV, _______, _______, _______, LSFT(KC_NUBS), LSFT(KC_RBRC), KC_RBRC, KC_QUOT, LSFT(KC_QUOT), LSFT(KC_LBRC), KC_LBRC, _______, + _______, _______, _______, KC_NUBS, LSFT(KC_MINS), KC_MINS, KC_BSLS, LSFT(KC_BSLS), KC_SLSH, LSFT(KC_SLSH), _______, + _______, _______, _______, _______, _______, _______, _______ + ), + + /* Navigation layer (3) + * arrows, nav cluster + * ,------------------------------------------------------------------------. + * | | | | | |Home |PgUp | | | Up | Ins | Del | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | | | | | | End |PgDn | |Left |Down |Right| | + * `------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----' + * | |Caps |PrtSc|ScrLk|Pause| | | | | | | + * `-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------' + * | | | | | | | Menu | + * `--------------------------------------------------------' + */ + + [_NAV] = LAYOUT( + _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, KC_UP, KC_INS, KC_DEL, + _______, _______, _______, _______, _______, KC_END, KC_PGDN, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, + _______, KC_CAPS, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_APP + ), + + /* Function layer (4) + * keyboard and system control + * ,------------------------------------------------------------------------. + * |Reset| | | | | | |Play |Prev |Next |Stop | | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * |Sleep | VLK |Mod+ |Hue+ |Sat+ |Val+ | | |Vol- |Vol+ |Mute | | + * `------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----' + * | | TOG |Mod- |Hue- |Sat- |Val- | | | | | | + * `-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------' + * | | | | | | | | + * `--------------------------------------------------------' + */ + + [_FN] = LAYOUT( + RESET, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, KC_MSTP, _______, + KC_SLEP, VLK_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, + _______, RGB_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) + +}; + +bool process_record_user (uint16_t keycode, keyrecord_t *record) { + return true; +} diff --git a/keyboards/tanuki/keymaps/tucznak/readme.md b/keyboards/tanuki/keymaps/tucznak/readme.md new file mode 100644 index 00000000000..b38490c9c56 --- /dev/null +++ b/keyboards/tanuki/keymaps/tucznak/readme.md @@ -0,0 +1,8 @@ +# TuCZnak's modified layout + +This layout is optimized for Czech national QWERTZ keymap. +It includes separated layers for: + - F-keys and numbers + - national and special characters + - navigation cluster + - keyboard config and media control diff --git a/keyboards/tanuki/keymaps/tucznak/rules.mk b/keyboards/tanuki/keymaps/tucznak/rules.mk new file mode 100644 index 00000000000..5c5263eae78 --- /dev/null +++ b/keyboards/tanuki/keymaps/tucznak/rules.mk @@ -0,0 +1,19 @@ +# screw Caterina +BOOTLOADER = qmk-dfu + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE =yes # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +TAP_DANCE_ENABLE = no diff --git a/keyboards/ut472/keymaps/tucznak/config.h b/keyboards/ut472/keymaps/tucznak/config.h new file mode 100644 index 00000000000..06524822e86 --- /dev/null +++ b/keyboards/ut472/keymaps/tucznak/config.h @@ -0,0 +1,18 @@ +#pragma once + +#undef MANUFACTURER +#undef PRODUCT +#undef DESCRIPTION + +#define MANUFACTURER Potato Inc. +#define PRODUCT Qt3.14 +#define DESCRIPTION Smolkeeb + +/* turn off RGB when computer sleeps */ +#ifdef RGBLIGHT_ENABLE +#define RGBLIGHT_SLEEP +#endif + +/* send tap key if no layer key was used even after tap delay */ +#define TAPPING_TERM 50 +#define RETRO_TAPPING diff --git a/keyboards/ut472/keymaps/tucznak/keymap.c b/keyboards/ut472/keymaps/tucznak/keymap.c new file mode 100644 index 00000000000..7fbbd0e76e2 --- /dev/null +++ b/keyboards/ut472/keymaps/tucznak/keymap.c @@ -0,0 +1,111 @@ +#include QMK_KEYBOARD_H + +enum layers { + _BASE, + _LEFT, + _RIGHT, + _NUM, + _FN +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layer + * ,-------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P |Bspace | + * |-------------------------------------------------------------------------+ + * | Tab | A | S | D | F | G | H | J | K | L | ; |Enter | + * |-------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | Up | FN | + * |-------------------------------------------------------------------------+ + * | Ctrl| Win | LAlt| NUM | LEFT | Space | RIGHT| RAlt| Left| Down|Right| + * `-------------------------------------------------------------------------' + */ + + [_BASE] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, MO(_FN), + KC_LCTL, KC_LGUI, KC_LALT, MO(_NUM),MO(_LEFT), KC_SPC, MO(_RIGHT), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Left function layer (1) + * F keys and navigation + * ,-------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------------------------------------------------------------------------+ + * | | | | | | | | | | | | Ins | + * |-------------------------------------------------------------------------+ + * | | Caps| |PrtSc|ScrLk|Pause| | | | | PgUp| Del | + * |-------------------------------------------------------------------------+ + * | | | | | | | | Menu| Home| PgDn| End | + * `-------------------------------------------------------------------------' + */ + + [_LEFT] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, KC_CAPS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, KC_PGUP, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, KC_APP, KC_HOME, KC_PGDN, KC_END + ), + + /* Right function layer (2) + * National and special characters + * ,-------------------------------------------------------------------------. + * | +1 | ě2 | š3 | č4 | ř5 | ž6 | ý7 | á8 | í9 | é0 | ´ | ˇ | + * |-------------------------------------------------------------------------+ + * | ;° | | | | | | | ( | ) | § | ! | ú | / | + * |-------------------------------------------------------------------------+ + * | | \ | | | | | % | = | ¨ | ' | - | _ | + * |-------------------------------------------------------------------------+ + * | | | | | | | | | | | | + * `-------------------------------------------------------------------------' + */ + + [_RIGHT] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, LSFT(KC_EQL), + KC_GRV, LSFT(KC_NUBS), _______, _______, _______, _______, LSFT(KC_RBRC), KC_RBRC, KC_QUOT, LSFT(KC_QUOT), KC_LBRC, LSFT(KC_LBRC), + _______, KC_NUBS, _______, _______, _______, _______, LSFT(KC_MINS), KC_MINS, KC_BSLS, LSFT(KC_BSLS), KC_SLSH, LSFT(KC_SLSH), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Numpad layer (3) + * ,-------------------------------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |-------------------------------------------------------------------------+ + * | | | | | | | | 4 | 5 | 6 | / | | + * |-------------------------------------------------------------------------+ + * | |NumLk| | | | | | 1 | 2 | 3 | * | | + * |-------------------------------------------------------------------------+ + * | | | | | | | 0 | . | + | - | | + * `-------------------------------------------------------------------------' + */ + + [_NUM] = LAYOUT( + _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_0, _______, + _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PSLS, _______, + _______, KC_NLCK, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PAST, _______, + _______, _______, _______, _______, _______, _______, KC_KP_0, KC_DOT, KC_PPLS, KC_PMNS, _______ + ), + + /* Function layer (4) + * Backlighting, keyboard controls, music etc. + * ,-------------------------------------------------------------------------. + * |Reset| | | | | | | | | | | Vol+ | + * |-------------------------------------------------------------------------+ + * | | VLK | Mod+| Hue+| Sat+| Val+| | | | | | Vol- | + * |-------------------------------------------------------------------------+ + * | | TOG | Mod-| Hue-| Sat-| Val-| | | | | Stop| Mute| + * |-------------------------------------------------------------------------+ + * |Sleep| | | | | C+A+D | C+A+I | | Prev|Pause| Next| + * `-------------------------------------------------------------------------' + */ + + [_FN] = LAYOUT( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, VLK_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, KC_VOLD, + _______, RGB_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, KC_MSTP, KC_MUTE, + KC_SLEP, _______, _______, _______, _______, LCA(KC_DEL), LCA(KC_INS), _______, KC_MPRV, KC_MPLY, KC_MNXT + ) +}; diff --git a/keyboards/ut472/keymaps/tucznak/readme.md b/keyboards/ut472/keymaps/tucznak/readme.md new file mode 100644 index 00000000000..95180bc392a --- /dev/null +++ b/keyboards/ut472/keymaps/tucznak/readme.md @@ -0,0 +1,5 @@ +# TuCZnak's modified layout + +This layout is optimized for Czech national QWERTZ keymap. +It includes separated layers for numbers, national characters, +special characters and configuration. diff --git a/keyboards/ut472/keymaps/tucznak/rules.mk b/keyboards/ut472/keymaps/tucznak/rules.mk new file mode 100644 index 00000000000..112b769841d --- /dev/null +++ b/keyboards/ut472/keymaps/tucznak/rules.mk @@ -0,0 +1,18 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 = yes # 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 on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +RGBLIGHT_ENABLE = yes From d41961c9eddb78591d3b55ea65e6e0baff4bdd69 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 22 Jul 2019 20:22:33 -0700 Subject: [PATCH 031/115] [Keymap] Drashna's Feature madness (#6128) * Fix my Tap Dance issues after I broke them * Cleanup and organization of userspace documentation As well as some additional cleanup of functions due to review of documentation. * Enable Tapdance on Glow and remove more animations * Revert to Eager PR debouncing * Add better check for startup animation * Move where RGB Matrix defines are listed * Limit RGB Matrix max val * Update keyboard for Iris Rev 3 conflicts * Enable encoder support on planck ez * Remove is_master check from corne\'s OLED code * Overhaul OLED screens for my Corne * One last removal * Show RGB valu On both sides * Updates for OLED display info * Fix compile issues for rgb config * Disabled Space Cadet for all drashna keymaps * Fix OLED Screen configs * Minor OLED Tweaks * Revert some Iris changes * Fix song include * Handle MAKE macro for the Corne boards better * Add super hacky-hack for eeconfig initialization * Add audio support for Fractal since Elite Cs support it * Add defines for keycode steps * Add White layout * Update Corne RGB info * Add fun effects to layer indication for RGB Matrix enabled boards * Use proper define for product name detection * Update formatting * Use custom timeout mechanism for OLED timeout * Fix up OLED screen HSV code for new HSV structure * Better handle turning off RGB Matrix when sleeping * Disable MultiSplash Animation * Change Iris back to using serial * Why was RGB disabled?!?!?! * Limit val in rgb_matrix_layer_helper function * Remove EECONFIG setting for RGB matrix --- keyboards/crkbd/keymaps/drashna/config.h | 59 ++-- keyboards/crkbd/keymaps/drashna/keymap.c | 303 ++++++++++-------- keyboards/crkbd/keymaps/drashna/rules.mk | 5 - keyboards/gergo/keymaps/drashna/keymap.c | 3 +- .../keebio/iris/keymaps/drashna/config.h | 49 +-- .../keebio/iris/keymaps/drashna/keymap.c | 11 +- .../keebio/iris/keymaps/drashna/rules.mk | 2 +- keyboards/orthodox/keymaps/drashna/keymap.c | 3 +- layouts/community/ergodox/drashna/keymap.c | 127 ++++---- layouts/community/ergodox/drashna/rules.mk | 2 +- .../community/ergodox/drashna_glow/config.h | 22 -- .../community/ergodox/drashna_glow/rules.mk | 2 +- layouts/community/numpad_5x6/drashna/keymap.c | 2 + layouts/community/ortho_4x12/drashna/config.h | 63 ++-- layouts/community/ortho_4x12/drashna/keymap.c | 180 ++++++----- layouts/community/ortho_4x12/drashna/rules.mk | 2 +- layouts/community/ortho_5x12/drashna/config.h | 31 +- layouts/community/ortho_5x12/drashna/keymap.c | 20 +- layouts/community/ortho_5x12/drashna/rules.mk | 2 +- users/drashna/config.h | 125 +++++--- users/drashna/drashna.c | 138 ++++---- users/drashna/drashna.h | 69 ++-- users/drashna/process_records.c | 257 +++++++-------- users/drashna/process_records.h | 66 ++-- users/drashna/readme.md | 192 +---------- users/drashna/readme_handlers.md | 97 ++++++ users/drashna/readme_keycodes.md | 10 + users/drashna/readme_rgb.md | 43 +++ users/drashna/readme_secrets.md | 123 +++++++ users/drashna/readme_tap_dance.md | 119 +++++++ users/drashna/readme_wrappers.md | 11 + users/drashna/rgb_stuff.c | 302 +++++++++-------- users/drashna/rgb_stuff.h | 22 +- users/drashna/rules.mk | 1 + users/drashna/send_unicode.h | 71 ---- users/drashna/tap_dances.c | 77 ++--- users/drashna/tap_dances.h | 16 +- users/drashna/wrappers.h | 14 +- 38 files changed, 1451 insertions(+), 1190 deletions(-) create mode 100644 users/drashna/readme_handlers.md create mode 100644 users/drashna/readme_keycodes.md create mode 100644 users/drashna/readme_rgb.md create mode 100644 users/drashna/readme_secrets.md create mode 100644 users/drashna/readme_tap_dance.md create mode 100644 users/drashna/readme_wrappers.md delete mode 100644 users/drashna/send_unicode.h diff --git a/keyboards/crkbd/keymaps/drashna/config.h b/keyboards/crkbd/keymaps/drashna/config.h index 724d52c38c1..d35f723dac7 100644 --- a/keyboards/crkbd/keymaps/drashna/config.h +++ b/keyboards/crkbd/keymaps/drashna/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . #pragma once - /* Select hand configuration */ // #define MASTER_LEFT @@ -36,52 +35,31 @@ along with this program. If not, see . // #define TAPPING_TERM 100 #ifdef RGBLIGHT_ENABLE -# undef RGBLED_NUM -# define RGBLED_NUM 27 +# undef RGBLED_NUM +# define RGBLED_NUM 27 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_LIMIT_VAL 100 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 5 +# define RGBLIGHT_LIMIT_VAL 150 #endif #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 DISABLE_RGB_MATRIX_ALPHAS_MODS -# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# define DISABLE_RGB_MATRIX_BREATHING -# 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_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 +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 +# define RGB_MATRIX_HUE_STEP 8 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 5 +# define RGB_MATRIX_SPD_STEP 10 #endif #ifdef AUDIO_ENABLE -# define B6_AUDIO +# define B6_AUDIO // #define NO_MUSIC_MODE #endif @@ -92,4 +70,5 @@ along with this program. If not, see . // #define OLED_FONT_WIDTH 5 // #define OLED_FONT_HEIGHT 7 +#define OLED_DISABLE_TIMEOUT #define TAPPING_TERM_PER_KEY diff --git a/keyboards/crkbd/keymaps/drashna/keymap.c b/keyboards/crkbd/keymaps/drashna/keymap.c index af0bc0d9a74..693c53b1675 100644 --- a/keyboards/crkbd/keymaps/drashna/keymap.c +++ b/keyboards/crkbd/keymaps/drashna/keymap.c @@ -2,17 +2,16 @@ #include "drashna.h" extern keymap_config_t keymap_config; -extern uint8_t is_master; +extern uint8_t is_master; #ifdef RGBLIGHT_ENABLE -//Following line allows macro to read current RGB settings +// Following line allows macro to read current RGB settings extern rgblight_config_t rgblight_config; #endif -enum crkbd_keycodes { - RGBRST = NEW_SAFE_RANGE -}; +enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; +// clang-format off #define LAYOUT_crkbd_base( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ @@ -103,60 +102,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_NUKE, _______, _______, TG_MODS, _______ ) }; - -void matrix_init_keymap(void) { -#ifndef CONVERT_TO_PROTON_C - setPinOutput(D5); - writePinHigh(D5); - - setPinOutput(B0); - writePinHigh(B0); -#endif -} - +// clang-format on #ifdef OLED_DRIVER_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (is_master) { - return OLED_ROTATION_270; - } else { - return rotation; - } -} +oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } +uint16_t oled_timer; -void render_crkbd_logo(void) { - static const char PROGMEM crkbd_logo[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, - 0}; - oled_write_P(crkbd_logo, false); -} +char keylog_str[5] = {}; +uint8_t keylogs_str_idx = 0; +uint16_t log_timer = 0; -#define KEYLOG_LEN (int)(32 / OLED_FONT_WIDTH) -char keylog_str[KEYLOG_LEN] = {}; -uint8_t keylogs_str_idx = 0; -uint16_t log_timer = 0; - -const char code_to_name[60] = { - ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', - 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', - 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', - '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; +const char code_to_name[60] = {' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; void add_keylog(uint16_t keycode) { - if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || - (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { + keycode = keycode & 0xFF; + } - for (uint8_t i = KEYLOG_LEN - 1; i > 0; i--) { + for (uint8_t i = 4; i > 0; i--) { keylog_str[i] = keylog_str[i - 1]; } if (keycode < 60) { keylog_str[0] = code_to_name[keycode]; } - keylog_str[KEYLOG_LEN] = 0; + keylog_str[5] = 0; log_timer = timer_read(); } @@ -167,94 +136,153 @@ void update_log(void) { } } - bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { add_keylog(keycode); } + if (record->event.pressed) { + add_keylog(keycode); + oled_timer = timer_read(); + } return true; } -void render_status(void) { +void render_rgb_status(void) { + oled_write_ln("RGB:", false); + static char temp[20] = {0}; + snprintf(temp, sizeof(temp) + 1, "M:%3dH:%3dS:%3dV:%3d", rgb_matrix_config.mode, rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v); + oled_write(temp, false); +} - oled_write_P(PSTR("Layer"), false); - switch (biton32(layer_state)) { - case 0: - oled_write_P(PSTR("Base "), false); - break; - case _RAISE: - oled_write_P(PSTR("Raise"), false); - break; - case _LOWER: - oled_write_P(PSTR("Lower"), false); - break; - case _ADJUST: - oled_write_P(PSTR("Adjst"), false); - break; - default: - oled_write_P(PSTR("Unkn "), false); - break; - } - oled_write_P(PSTR("Lyout"), false); +void render_status_main(void) { + /* Show Keyboard Layout */ + oled_write("Lyout", false); switch (biton32(default_layer_state)) { case _QWERTY: - oled_write_P(PSTR("QWRTY"), false); + oled_write(" QRTY", false); break; case _COLEMAK: - oled_write_P(PSTR("COLMK"), false); + oled_write(" COLE", false); break; case _DVORAK: - oled_write_P(PSTR("DVRAK"), false); + oled_write(" DVRK", false); break; case _WORKMAN: - oled_write_P(PSTR("WRKMN"), false); + oled_write(" WKMN", false); break; case _NORMAN: - oled_write_P(PSTR("NORMN"), false); + oled_write(" NORM", false); break; case _MALTRON: - oled_write_P(PSTR("MLTRN"), false); + oled_write(" MLTN", false); break; case _EUCALYN: - oled_write_P(PSTR("ECLYN"), false); + oled_write(" ECLN", false); break; case _CARPLAX: - oled_write_P(PSTR("CRPLX"), false); + oled_write(" CRPX", false); break; } - uint8_t modifiers = get_mods(); - uint8_t one_shot = get_oneshot_mods(); - - oled_write_P(PSTR("Mods:"), false); - oled_write_P( (modifiers & MOD_MASK_SHIFT || one_shot & MOD_MASK_SHIFT) ? PSTR(" SFT ") : PSTR(" "), false); - oled_write_P( (modifiers & MOD_MASK_CTRL || one_shot & MOD_MASK_CTRL ) ? PSTR(" CTL ") : PSTR(" "), false); - oled_write_P( (modifiers & MOD_MASK_ALT || one_shot & MOD_MASK_ALT ) ? PSTR(" ALT ") : PSTR(" "), false); - oled_write_P( (modifiers & MOD_MASK_GUI || one_shot & MOD_MASK_GUI ) ? PSTR(" GUI ") : PSTR(" "), false); - - - oled_write_P(PSTR("BTMGK"), false); - - if (keymap_config.swap_lalt_lgui) { - oled_write_P(PSTR(" Mac "), false); - } else { - oled_write_P(PSTR(" Win "), false); - } - + /* Show Lock Status (only work on master side) */ uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(PSTR("Lock:"), false); - oled_write_P(led_usb_state & (1< 60000) { + oled_off(); + return; + } if (is_master) { - render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) } else { - render_crkbd_logo(); - oled_scroll_left(); // Turns on scrolling + render_status_secondary(); } } @@ -272,57 +300,82 @@ uint16_t get_tapping_term(uint16_t keycode) { #ifdef RGB_MATRIX_ENABLE +static bool is_suspended; +static bool rgb_matrix_enabled; + void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); + if (!is_suspended) { + is_suspended = true; + rgb_matrix_enabled = (bool)rgb_matrix_config.enable; + rgb_matrix_disable_noeeprom(); + } } void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); + is_suspended = false; + if (rgb_matrix_enabled) { + rgb_matrix_enable_noeeprom(); + } } - void rgb_matrix_indicators_user(void) { - if ( userspace_config.rgb_layer_change && -#ifdef RGB_DISABLE_WHEN_USB_SUSPENDED + if (userspace_config.rgb_layer_change && +# ifdef RGB_DISABLE_WHEN_USB_SUSPENDED !g_suspend_state && -#endif -#if defined(RGBLIGHT_ENABLE) +# endif +# if defined(RGBLIGHT_ENABLE) (!rgblight_config.enable && rgb_matrix_config.enable) -#else +# else rgb_matrix_config.enable -#endif +# endif ) { switch (biton32(layer_state)) { - case _MODS: - rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break; case _GAMEPAD: - rgb_matrix_layer_helper(0xFF, 0x80, 0x00, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; case _DIABLO: - rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; case _RAISE: - rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; case _LOWER: - rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; case _ADJUST: - rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_UNDERGLOW); break; - default: + rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; + default: { + bool mods_enabled = IS_LAYER_ON(_MODS); switch (biton32(default_layer_state)) { case _QWERTY: - rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; case _COLEMAK: - rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_MAGENTA, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; case _DVORAK: - rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; case _WORKMAN: - rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_GOLDENROD, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; case _NORMAN: - rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_CORAL, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; case _MALTRON: - rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_YELLOW, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; case _EUCALYN: - rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_PINK, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; case _CARPLAX: - rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_UNDERGLOW); break; + rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + break; } + break; + } } } } diff --git a/keyboards/crkbd/keymaps/drashna/rules.mk b/keyboards/crkbd/keymaps/drashna/rules.mk index 39b48f9447c..af340459716 100644 --- a/keyboards/crkbd/keymaps/drashna/rules.mk +++ b/keyboards/crkbd/keymaps/drashna/rules.mk @@ -16,7 +16,6 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. SWAP_HANDS_ENABLE = no # Enable one-hand typing -RGBLIGHT_STARTUP_ANIMATION = yes RGB_MATRIX_ENABLE = WS2812 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE @@ -25,7 +24,3 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend BOOTLOADER = qmk-dfu OLED_DRIVER_ENABLE = yes - -ifneq ($(strip $(OLED_DRIVER_ENABLE)), yes) - RGB_MATRIX_SPLIT_RIGHT=yes -endif diff --git a/keyboards/gergo/keymaps/drashna/keymap.c b/keyboards/gergo/keymaps/drashna/keymap.c index ffa23462eef..2843b332a5f 100644 --- a/keyboards/gergo/keymaps/drashna/keymap.c +++ b/keyboards/gergo/keymaps/drashna/keymap.c @@ -9,7 +9,7 @@ #include QMK_KEYBOARD_H #include "drashna.h" - +// clang-format off #define LAYOUT_gergo_base( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ @@ -111,3 +111,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ +// clang-format on diff --git a/keyboards/keebio/iris/keymaps/drashna/config.h b/keyboards/keebio/iris/keymaps/drashna/config.h index 1a937b4b7c9..ee8ac8aff8b 100644 --- a/keyboards/keebio/iris/keymaps/drashna/config.h +++ b/keyboards/keebio/iris/keymaps/drashna/config.h @@ -19,8 +19,8 @@ along with this program. If not, see . /* Use I2C or Serial, not both */ -// #define USE_SERIAL -#define USE_I2C +#define USE_SERIAL +// #define USE_I2C /* Select hand configuration */ @@ -29,33 +29,38 @@ along with this program. If not, see . #define EE_HANDS #ifdef RGBLIGHT_ENABLE -# undef RGBLED_NUM -# define RGBLED_NUM 18 // Number of LEDs -# define RGBLED_SPLIT { 9, 9 } -# define RGBLIGHT_HUE_STEP 12 -# define RGBLIGHT_SAT_STEP 12 -# define RGBLIGHT_VAL_STEP 12 -# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 -# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 +# undef RGBLED_NUM +# define RGBLED_NUM 18 // Number of LEDs +# undef RGBLED_SPLIT +# define RGBLED_SPLIT { 9, 9 } +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 +# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 -# define RGBLIGHT_LIMIT_VAL 225 -#endif // RGBLIGHT_ENABLE +# define RGBLIGHT_LIMIT_VAL 225 +#endif // RGBLIGHT_ENABLE #ifdef AUDIO_ENABLE -# define C6_AUDIO -# ifdef RGBLIGHT_ENABLE -# define NO_MUSIC_MODE -# endif //RGBLIGHT_ENABLE -#endif //AUDIO_ENABLE +# define C6_AUDIO +# ifdef RGBLIGHT_ENABLE +# define NO_MUSIC_MODE +# endif // RGBLIGHT_ENABLE +#endif // AUDIO_ENABLE -#define QMK_ESC_OUTPUT F6 // usually COL -#define QMK_ESC_INPUT D7 // usually ROW -#define QMK_LED B0 -#define QMK_SPEAKER C6 +#ifndef KEYBOARD_keebio_iris_rev3 +# define QMK_ESC_OUTPUT F6 // usually COL +# define QMK_ESC_INPUT D7 // usually ROW +# define QMK_LED B0 +# define QMK_SPEAKER C6 +#endif #undef PRODUCT #ifdef KEYBOARD_keebio_iris_rev2 -# define PRODUCT Drashna Hacked Iris Rev.2 +# define PRODUCT Drashna Hacked Iris Rev .2 +#elif defined(KEYBOARD_keebio_iris_rev3) +# define PRODUCT Drashna Hacked Iris Rev .3 #endif #define SHFT_LED1 6 diff --git a/keyboards/keebio/iris/keymaps/drashna/keymap.c b/keyboards/keebio/iris/keymaps/drashna/keymap.c index 44ffb59f6a7..fe10cb27510 100644 --- a/keyboards/keebio/iris/keymaps/drashna/keymap.c +++ b/keyboards/keebio/iris/keymaps/drashna/keymap.c @@ -2,7 +2,7 @@ #include QMK_KEYBOARD_H #include "drashna.h" - +// clang-format off #define LAYOUT_iris_base( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ @@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - +// clang-format on void matrix_init_keymap(void) { #ifndef CONVERT_TO_PROTON_C @@ -122,13 +122,12 @@ void matrix_init_keymap(void) { #endif } - void keyboard_post_init_keymap(void) { #if BACKLIGHT_ENABLE backlight_enable(); backlight_level(5); - #ifdef BACKLIGHT_BREATHING - breathing_enable(); - #endif +# ifdef BACKLIGHT_BREATHING + breathing_enable(); +# endif #endif } diff --git a/keyboards/keebio/iris/keymaps/drashna/rules.mk b/keyboards/keebio/iris/keymaps/drashna/rules.mk index a315e1a0b18..17acd32be05 100644 --- a/keyboards/keebio/iris/keymaps/drashna/rules.mk +++ b/keyboards/keebio/iris/keymaps/drashna/rules.mk @@ -14,6 +14,6 @@ SPACE_CADET_ENABLE = no INDICATOR_LIGHTS = no MACROS_ENABLED = no RGBLIGHT_TWINKLE = no -RGBLIGHT_STARTUP_ANIMATION = yes +RGBLIGHT_STARTUP_ANIMATION = no BOOTLOADER = qmk-dfu diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c index bde959f5e74..56799ae2c01 100644 --- a/keyboards/orthodox/keymaps/drashna/keymap.c +++ b/keyboards/orthodox/keymaps/drashna/keymap.c @@ -30,7 +30,7 @@ uint8_t last_led; uint8_t last_osm; #endif - +// clang-format off #define LAYOUT_orthodox_base( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ @@ -121,6 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; +// clang-format on void matrix_init_keymap(void) { #ifndef CONVERT_TO_PROTON_C diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index 74382f17527..763b218f747 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -18,21 +18,20 @@ along with this program. If not, see . #include "drashna.h" #ifdef UNICODEMAP_ENABLE -#include "drashna_unicode.h" -#endif // UNICODEMAP_ENABLE +# include "drashna_unicode.h" +#endif // UNICODEMAP_ENABLE #ifndef UNICODE_ENABLE -# define UC(x) KC_NO +# define UC(x) KC_NO #endif extern userspace_config_t userspace_config; -enum more_custom_keycodes { - KC_SWAP_NUM = NEW_SAFE_RANGE -}; +enum more_custom_keycodes { KC_SWAP_NUM = NEW_SAFE_RANGE }; -//define layer change stuff for underglow indicator +// define layer change stuff for underglow indicator bool skip_leds = false; +// clang-format off #define LAYOUT_ergodox_pretty_base( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ @@ -301,9 +300,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; +// clang-format on bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { case KC_1: if (IS_LAYER_ON(_GAMEPAD) && userspace_config.swapped_numbers) { @@ -332,7 +331,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } break; } - //switch (keycode) { + // switch (keycode) { // case KC_P00: // if (!record->event.pressed) { // register_code(KC_KP_0); @@ -347,9 +346,9 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } void matrix_scan_keymap(void) { // runs frequently to update info - uint8_t modifiers = get_mods(); + uint8_t modifiers = get_mods(); uint8_t led_usb_state = host_keyboard_leds(); - uint8_t one_shot = get_oneshot_mods(); + uint8_t one_shot = get_oneshot_mods(); if (!skip_leds) { ergodox_board_led_off(); @@ -360,24 +359,21 @@ void matrix_scan_keymap(void) { // runs frequently to update info // Since we're not using the LEDs here for layer indication anymore, // then lets use them for modifier indicators. Shame we don't have 4... // Also, no "else", since we want to know each, independently. - if ( ( modifiers | one_shot ) & MOD_MASK_SHIFT || led_usb_state & (1<event.pressed) { register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE +# ifdef BACKLIGHT_ENABLE backlight_step(); - #endif +# endif } else { unregister_code(KC_RSFT); } @@ -172,6 +172,7 @@ bool music_mask_user(uint16_t keycode) { #ifdef RGB_MATRIX_ENABLE +// clang-format off void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); } @@ -179,98 +180,122 @@ void suspend_power_down_keymap(void) { void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); } +// clang-format on void rgb_matrix_indicators_user(void) { uint8_t this_mod = get_mods(); uint8_t this_led = host_keyboard_leds(); uint8_t this_osm = get_oneshot_mods(); - bool is_ez; - #ifdef KEYBOARD_planck_ez + bool is_ez; +# ifdef KEYBOARD_planck_ez is_ez = true; - #endif +# endif - if ( userspace_config.rgb_layer_change && -#ifdef RGB_DISABLE_WHEN_USB_SUSPENDED + if (userspace_config.rgb_layer_change && +# ifdef RGB_DISABLE_WHEN_USB_SUSPENDED !g_suspend_state && -#endif -#if defined(RGBLIGHT_ENABLE) - (!rgblight_config.enable && rgb_matrix_config.enable) -#else - rgb_matrix_config.enable -#endif - ) { +# endif +# if defined(RGBLIGHT_ENABLE) + (!rgblight_config.enable && rgb_matrix_config.enable) +# else + rgb_matrix_config.enable +# endif + ) { switch (biton32(layer_state)) { + case _GAMEPAD: + rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _DIABLO: + rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER); + break; case _RAISE: - rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break; + rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; case _LOWER: - rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break; + rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; case _ADJUST: - rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break; - default: + rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + default: { + bool mods_enabled = IS_LAYER_ON(_MODS); switch (biton32(default_layer_state)) { - case _QWERTY: - rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_MODIFIER); break; - case _COLEMAK: - rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_MODIFIER); break; - case _DVORAK: - rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break; - case _WORKMAN: - rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_MODIFIER); break; - case _NORMAN: - rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_MODIFIER); break; - case _MALTRON: - rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break; - case _EUCALYN: - rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_MODIFIER); break; - case _CARPLAX: - rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_MODIFIER); break; + case _QWERTY: + rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _COLEMAK: + rgb_matrix_layer_helper(HSV_MAGENTA, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _DVORAK: + rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _WORKMAN: + rgb_matrix_layer_helper(HSV_GOLDENROD, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _NORMAN: + rgb_matrix_layer_helper(HSV_CORAL, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _MALTRON: + rgb_matrix_layer_helper(HSV_YELLOW, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _EUCALYN: + rgb_matrix_layer_helper(HSV_PINK, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; + case _CARPLAX: + rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_MODIFIER); + break; } + break; + } } } switch (biton32(default_layer_state)) { case _QWERTY: - rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0xFF); break; + rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0xFF); + break; case _COLEMAK: - rgb_matrix_set_color(is_ez ? 41 : 42, 0xFF, 0x00, 0xFF); break; + rgb_matrix_set_color(is_ez ? 41 : 42, 0xFF, 0x00, 0xFF); + break; case _DVORAK: - rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0x00); break; + rgb_matrix_set_color(is_ez ? 41 : 42, 0x00, 0xFF, 0x00); + break; case _WORKMAN: - rgb_matrix_set_color(is_ez ? 41 : 42, 0xD9, 0xA5, 0x21); break; + rgb_matrix_set_color(is_ez ? 41 : 42, 0xD9, 0xA5, 0x21); + break; } - if ( (this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1< 7 +# if __has_include("drashna_song_list.h") +# include "drashna_song_list.h" +# endif // if file exists +# endif // __GNUC__ -# define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f +# define AUDIO_CLICKY +# define STARTUP_SONG SONG(RICK_ROLL) +# define GOODBYE_SONG SONG(SONIC_RING) +# define DEFAULT_LAYER_SONGS \ + { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(OVERWATCH_THEME) } -# define UNICODE_SONG_OSX SONG(RICK_ROLL) -# define UNICODE_SONG_LNX SONG(RICK_ROLL) -# define UNICODE_SONG_WIN SONG(RICK_ROLL) -# define UNICODE_SONG_BSD SONG(RICK_ROLL) -# define UNICODE_SONG_WINC SONG(RICK_ROLL) +# define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f -#endif // !AUDIO_ENABLE +# define UNICODE_SONG_OSX SONG(RICK_ROLL) +# define UNICODE_SONG_LNX SONG(RICK_ROLL) +# define UNICODE_SONG_WIN SONG(RICK_ROLL) +# define UNICODE_SONG_BSD SONG(RICK_ROLL) +# define UNICODE_SONG_WINC SONG(RICK_ROLL) +#endif // !AUDIO_ENABLE #ifdef RGBLIGHT_ENABLE -# define RGBLIGHT_SLEEP -# undef RGBLIGHT_ANIMATIONS -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -#endif // RGBLIGHT_ENABLE +# define RGBLIGHT_SLEEP +# undef RGBLIGHT_ANIMATIONS +# define RGBLIGHT_EFFECT_BREATHING +# define RGBLIGHT_EFFECT_SNAKE +# define RGBLIGHT_EFFECT_KNIGHT +#endif // RGBLIGHT_ENABLE + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened) +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +// # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 +// # define EECONFIG_RGB_MATRIX (uint32_t *)16 + +# if defined(__AVR__) && !defined(__AVR_AT90USB1286__) +# 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 +# endif // AVR +#endif // RGB_MATRIX_ENABLE #ifndef ONESHOT_TAP_TOGGLE -# define ONESHOT_TAP_TOGGLE 2 -#endif // !ONESHOT_TAP_TOGGLE +# define ONESHOT_TAP_TOGGLE 2 +#endif // !ONESHOT_TAP_TOGGLE #ifndef ONESHOT_TIMEOUT -# define ONESHOT_TIMEOUT 3000 -#endif// !ONESHOT_TIMEOUT +# define ONESHOT_TIMEOUT 3000 +#endif // !ONESHOT_TIMEOUT #ifndef QMK_KEYS_PER_SCAN -# define QMK_KEYS_PER_SCAN 4 -#endif // !QMK_KEYS_PER_SCAN - - +# define QMK_KEYS_PER_SCAN 4 +#endif // !QMK_KEYS_PER_SCAN // this makes it possible to do rolling combos (zx) with keys that // convert to other keys on hold (z becomes ctrl when you hold it, @@ -55,27 +103,26 @@ #define FORCE_NKRO #ifndef TAPPING_TOGGLE -# define TAPPING_TOGGLE 1 +# define TAPPING_TOGGLE 1 #endif #ifdef TAPPING_TERM -# undef TAPPING_TERM -#endif // TAPPING_TERM +# undef TAPPING_TERM +#endif // TAPPING_TERM #if defined(KEYBOARD_ergodox_ez) -# define TAPPING_TERM 185 +# define TAPPING_TERM 185 #elif defined(KEYBOARD_crkbd) -# define TAPPING_TERM 200 +# define TAPPING_TERM 200 #else -# define TAPPING_TERM 175 +# define TAPPING_TERM 175 #endif - #define TAP_CODE_DELAY 5 /* Disable unused and unneeded features to reduce on firmware size */ #ifdef LOCKING_SUPPORT_ENABLE -# undef LOCKING_SUPPORT_ENABLE +# undef LOCKING_SUPPORT_ENABLE #endif #ifdef LOCKING_RESYNC_ENABLE -# undef LOCKING_RESYNC_ENABLE +# undef LOCKING_RESYNC_ENABLE #endif diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index acc6b9f9eda..c1809dad0a3 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -19,22 +19,21 @@ along with this program. If not, see . userspace_config_t userspace_config; #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE)) - #define DRASHNA_UNICODE_MODE UC_WIN +# define DRASHNA_UNICODE_MODE UC_WIN #else - // set to 2 for UC_WIN, set to 4 for UC_WINC - #define DRASHNA_UNICODE_MODE 2 +// set to 2 for UC_WIN, set to 4 for UC_WINC +# define DRASHNA_UNICODE_MODE 2 #endif - // This block is for all of the gaming macros, as they were all doing // the same thing, but with differring text sent. bool send_game_macro(const char *str, keyrecord_t *record, bool override) { if (!record->event.pressed || override) { uint16_t keycode; if (userspace_config.is_overwatch) { - keycode = KC_BSPC; + keycode = KC_BSPC; } else { - keycode = KC_ENTER; + keycode = KC_ENTER; } clear_keyboard(); tap_code(keycode); @@ -47,12 +46,12 @@ bool send_game_macro(const char *str, keyrecord_t *record, bool override) { return false; } -bool mod_key_press_timer (uint16_t code, uint16_t mod_code, bool pressed) { +bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed) { static uint16_t this_timer; - if(pressed) { - this_timer= timer_read(); + if (pressed) { + this_timer = timer_read(); } else { - if (timer_elapsed(this_timer) < TAPPING_TERM){ + if (timer_elapsed(this_timer) < TAPPING_TERM) { tap_code(code); } else { register_code(mod_code); @@ -63,11 +62,11 @@ bool mod_key_press_timer (uint16_t code, uint16_t mod_code, bool pressed) { return false; } -bool mod_key_press (uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer) { - if(pressed) { - this_timer= timer_read(); +bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer) { + if (pressed) { + this_timer = timer_read(); } else { - if (timer_elapsed(this_timer) < TAPPING_TERM){ + if (timer_elapsed(this_timer) < TAPPING_TERM) { tap_code(code); } else { register_code(mod_code); @@ -80,13 +79,13 @@ bool mod_key_press (uint16_t code, uint16_t mod_code, bool pressed, uint16_t thi void bootmagic_lite(void) { matrix_scan(); - #if defined(DEBOUNCING_DELAY) && DEBOUNCING_DELAY > 0 - wait_ms(DEBOUNCING_DELAY * 2); - #elif defined(DEBOUNCE) && DEBOUNCE > 0 - wait_ms(DEBOUNCE * 2); - #else - wait_ms(30); - #endif +#if defined(DEBOUNCING_DELAY) && DEBOUNCING_DELAY > 0 + wait_ms(DEBOUNCING_DELAY * 2); +#elif defined(DEBOUNCE) && DEBOUNCE > 0 + wait_ms(DEBOUNCE * 2); +#else + wait_ms(30); +#endif matrix_scan(); if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) { bootloader_jump(); @@ -97,7 +96,7 @@ void bootmagic_lite(void) { // This allows for a global, userspace functions, and continued // customization of the keymap. Use _keymap instead of _user // functions in the keymaps -__attribute__ ((weak)) +__attribute__((weak)) void matrix_init_keymap(void) {} // Call user matrix init, set default RGB colors and then @@ -105,64 +104,63 @@ void matrix_init_keymap(void) {} void matrix_init_user(void) { userspace_config.raw = eeconfig_read_user(); - #ifdef BOOTLOADER_CATERINA - DDRD &= ~(1<<5); - PORTD &= ~(1<<5); +#ifdef BOOTLOADER_CATERINA + DDRD &= ~(1 << 5); + PORTD &= ~(1 << 5); - DDRB &= ~(1<<0); - PORTB &= ~(1<<0); - #endif + DDRB &= ~(1 << 0); + PORTB &= ~(1 << 0); +#endif - #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE)) - set_unicode_input_mode(DRASHNA_UNICODE_MODE); - get_unicode_input_mode(); - #endif //UNICODE_ENABLE +#if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE)) + set_unicode_input_mode(DRASHNA_UNICODE_MODE); + get_unicode_input_mode(); +#endif // UNICODE_ENABLE matrix_init_keymap(); } __attribute__((weak)) -void keyboard_post_init_keymap(void){ } +void keyboard_post_init_keymap(void) {} -void keyboard_post_init_user(void){ +void keyboard_post_init_user(void) { #ifdef RGBLIGHT_ENABLE keyboard_post_init_rgb(); #endif keyboard_post_init_keymap(); } -__attribute__ ((weak)) +__attribute__((weak)) void shutdown_keymap(void) {} -void shutdown_user (void) { - #ifdef RGBLIGHT_ENABLE - rgblight_enable_noeeprom(); - rgblight_mode_noeeprom(1); - rgblight_setrgb_red(); - #endif // RGBLIGHT_ENABLE - #ifdef RGB_MATRIX_ENABLE - // uint16_t timer_start = timer_read(); - // rgb_matrix_set_color_all( 0xFF, 0x00, 0x00 ); - // while(timer_elapsed(timer_start) < 250) { wait_ms(1); } - #endif //RGB_MATRIX_ENABLE +void shutdown_user(void) { +#ifdef RGBLIGHT_ENABLE + rgblight_enable_noeeprom(); + rgblight_mode_noeeprom(1); + rgblight_setrgb_red(); +#endif // RGBLIGHT_ENABLE +#ifdef RGB_MATRIX_ENABLE + // uint16_t timer_start = timer_read(); + // rgb_matrix_set_color_all( 0xFF, 0x00, 0x00 ); + // while(timer_elapsed(timer_start) < 250) { wait_ms(1); } +#endif // RGB_MATRIX_ENABLE shutdown_keymap(); } -__attribute__ ((weak)) +__attribute__((weak)) void suspend_power_down_keymap(void) {} void suspend_power_down_user(void) { suspend_power_down_keymap(); } -__attribute__ ((weak)) +__attribute__((weak)) void suspend_wakeup_init_keymap(void) {} void suspend_wakeup_init_user(void) { suspend_wakeup_init_keymap(); } - -__attribute__ ((weak)) +__attribute__((weak)) void matrix_scan_keymap(void) {} // No global matrix scan code, so just run keymap's matrix @@ -176,20 +174,17 @@ void matrix_scan_user(void) { #ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. run_diablo_macro_check(); -#endif // TAP_DANCE_ENABLE +#endif // TAP_DANCE_ENABLE #ifdef RGBLIGHT_ENABLE matrix_scan_rgb(); -#endif // RGBLIGHT_ENABLE +#endif // RGBLIGHT_ENABLE matrix_scan_keymap(); } - -__attribute__ ((weak)) -layer_state_t layer_state_set_keymap (layer_state_t state) { - return state; -} +__attribute__((weak)) +layer_state_t layer_state_set_keymap(layer_state_t state) { return state; } // on layer change, no matter where the change was initiated // Then runs keymap's layer change check @@ -197,28 +192,25 @@ layer_state_t layer_state_set_user(layer_state_t state) { state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); #ifdef RGBLIGHT_ENABLE state = layer_state_set_rgb(state); -#endif // RGBLIGHT_ENABLE - return layer_state_set_keymap (state); +#endif // RGBLIGHT_ENABLE + return layer_state_set_keymap(state); } - -__attribute__ ((weak)) -layer_state_t default_layer_state_set_keymap (layer_state_t state) { - return state; -} +__attribute__((weak)) +layer_state_t default_layer_state_set_keymap(layer_state_t state) { return state; } // Runs state check and changes underglow color and animation layer_state_t default_layer_state_set_user(layer_state_t state) { state = default_layer_state_set_keymap(state); #if 0 -#ifdef RGBLIGHT_ENABLE +# ifdef RGBLIGHT_ENABLE state = default_layer_state_set_rgb(state); -#endif // RGBLIGHT_ENABLE +# endif // RGBLIGHT_ENABLE #endif return state; } -__attribute__ ((weak)) +__attribute__((weak)) void led_set_keymap(uint8_t usb_led) {} // Any custom LED code goes here. @@ -228,17 +220,19 @@ void led_set_user(uint8_t usb_led) { led_set_keymap(usb_led); } -__attribute__ ((weak)) +__attribute__((weak)) void eeconfig_init_keymap(void) {} void eeconfig_init_user(void) { - userspace_config.raw = 0; + userspace_config.raw = 0; userspace_config.rgb_layer_change = true; eeconfig_update_user(userspace_config.raw); - #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE)) +#if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE)) set_unicode_input_mode(DRASHNA_UNICODE_MODE); get_unicode_input_mode(); - #else +#else eeprom_update_byte(EECONFIG_UNICODEMODE, DRASHNA_UNICODE_MODE); - #endif +#endif + eeconfig_init_keymap(); + keyboard_init(); } diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index 507504f04e5..0d6dac380be 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -22,20 +22,15 @@ along with this program. If not, see . #include "wrappers.h" #include "process_records.h" #ifdef TAP_DANCE_ENABLE -# include "tap_dances.h" -#endif // TAP_DANCE_ENABLE +# include "tap_dances.h" +#endif // TAP_DANCE_ENABLE #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) -# include "rgb_stuff.h" -#endif -#if defined(AUDIO_ENABLE) && __GNUC__ > 7 -# if __has_include("drashna_song_list.h") -# include "drashna_song_list.h" -# endif +# include "rgb_stuff.h" #endif /* Define layer names */ enum userspace_layers { - _QWERTY = 0, + _QWERTY = 0, _NUMLOCK = 0, _COLEMAK, _DVORAK, @@ -58,47 +53,45 @@ enum userspace_layers { define modifiers here, since MOD_* doesn't seem to work for these */ - -bool mod_key_press_timer (uint16_t code, uint16_t mod_code, bool pressed); -bool mod_key_press (uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer); -bool send_game_macro(const char *str, keyrecord_t *record, bool override); -void matrix_init_keymap(void); -void shutdown_keymap(void); -void suspend_power_down_keymap(void); -void suspend_wakeup_init_keymap(void); -void matrix_scan_keymap(void); -layer_state_t layer_state_set_keymap (layer_state_t state); -layer_state_t default_layer_state_set_keymap (layer_state_t state); -void led_set_keymap(uint8_t usb_led); -void eeconfig_init_keymap(void); +bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed); +bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer); +bool send_game_macro(const char *str, keyrecord_t *record, bool override); +void matrix_init_keymap(void); +void shutdown_keymap(void); +void suspend_power_down_keymap(void); +void suspend_wakeup_init_keymap(void); +void matrix_scan_keymap(void); +layer_state_t layer_state_set_keymap(layer_state_t state); +layer_state_t default_layer_state_set_keymap(layer_state_t state); +void led_set_keymap(uint8_t usb_led); +void eeconfig_init_keymap(void); typedef union { uint32_t raw; struct { - bool rgb_layer_change :1; - bool is_overwatch :1; - bool nuke_switch :1; - uint8_t unicode_mod :4; - bool swapped_numbers :1; + bool rgb_layer_change :1; + bool is_overwatch :1; + bool nuke_switch :1; + uint8_t unicode_mod :4; + bool swapped_numbers :1; }; } userspace_config_t; extern userspace_config_t userspace_config; - /* Custom Keycodes for Diablo 3 layer But since TD() doesn't work when tap dance is disabled We use custom codes here, so we can substitute the right stuff */ #ifdef TAP_DANCE_ENABLE -# define KC_D3_1 TD(TD_D3_1) -# define KC_D3_2 TD(TD_D3_2) -# define KC_D3_3 TD(TD_D3_3) -# define KC_D3_4 TD(TD_D3_4) -#else // TAP_DANCE_ENABLE -# define KC_D3_1 KC_1 -# define KC_D3_2 KC_2 -# define KC_D3_3 KC_3 -# define KC_D3_4 KC_4 -#endif // TAP_DANCE_ENABLE +# define KC_D3_1 TD(TD_D3_1) +# define KC_D3_2 TD(TD_D3_2) +# define KC_D3_3 TD(TD_D3_3) +# define KC_D3_4 TD(TD_D3_4) +#else // TAP_DANCE_ENABLE +# define KC_D3_1 KC_1 +# define KC_D3_2 KC_2 +# define KC_D3_3 KC_3 +# define KC_D3_4 KC_4 +#endif // TAP_DANCE_ENABLE diff --git a/users/drashna/process_records.c b/users/drashna/process_records.c index 770219917e7..5666d052dcd 100644 --- a/users/drashna/process_records.c +++ b/users/drashna/process_records.c @@ -2,160 +2,161 @@ uint16_t copy_paste_timer; -__attribute__ ((weak)) -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - return true; -} +__attribute__((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } -__attribute__ ((weak)) -bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { - return true; -} +__attribute__((weak)) +bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { return true; } // Defines actions tor my global custom keycodes. Defined in drashna.h file // Then runs the _keymap's record handier if not processed here bool process_record_user(uint16_t keycode, keyrecord_t *record) { - - // If console is enabled, it will print the matrix position and status of each key pressed + // If console is enabled, it will print the matrix position and status of each key pressed #ifdef KEYLOGGER_ENABLE -# if defined(KEYBOARD_ergodox_ez) || defined(KEYBOARD_keebio_iris_rev2) - xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.row, record->event.key.col, record->event.pressed); -# else - xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); -# endif -#endif //KEYLOGGER_ENABLE +# if defined(KEYBOARD_ergodox_ez) || defined(KEYBOARD_keebio_iris_rev2) + xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.row, record->event.key.col, record->event.pressed); +# else + xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); +# endif +#endif // KEYLOGGER_ENABLE switch (keycode) { - case KC_QWERTY ... KC_CARPLAX: - if (record->event.pressed) { - set_single_persistent_default_layer(keycode - KC_QWERTY); - } - break; + case KC_QWERTY ... KC_CARPLAX: + if (record->event.pressed) { + set_single_persistent_default_layer(keycode - KC_QWERTY); + } + break; - case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader - if (!record->event.pressed) { - uint8_t temp_mod = get_mods(); - uint8_t temp_osm = get_oneshot_mods(); - clear_mods(); clear_oneshot_mods(); - send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), TAP_CODE_DELAY); + case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader + if (!record->event.pressed) { + uint8_t temp_mod = get_mods(); + uint8_t temp_osm = get_oneshot_mods(); + clear_mods(); + clear_oneshot_mods(); + send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), TAP_CODE_DELAY); #ifndef MAKE_BOOTLOADER - if ( ( temp_mod | temp_osm ) & MOD_MASK_SHIFT ) + if ((temp_mod | temp_osm) & MOD_MASK_SHIFT) #endif - { - #if defined(__arm__) - send_string_with_delay_P(PSTR(":dfu-util"), TAP_CODE_DELAY); - #elif defined(BOOTLOADER_DFU) - send_string_with_delay_P(PSTR(":dfu"), TAP_CODE_DELAY); - #elif defined(BOOTLOADER_HALFKAY) - send_string_with_delay_P(PSTR(":teensy"), TAP_CODE_DELAY); - #elif defined(BOOTLOADER_CATERINA) - send_string_with_delay_P(PSTR(":avrdude"), TAP_CODE_DELAY); - #endif // bootloader options - } - if ( ( temp_mod | temp_osm ) & MOD_MASK_CTRL) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), TAP_CODE_DELAY); } + { +#if defined(__arm__) + send_string_with_delay_P(PSTR(":dfu-util"), TAP_CODE_DELAY); +#elif defined(BOOTLOADER_DFU) + send_string_with_delay_P(PSTR(":dfu"), TAP_CODE_DELAY); +#elif defined(BOOTLOADER_HALFKAY) + send_string_with_delay_P(PSTR(":teensy"), TAP_CODE_DELAY); +#elif defined(BOOTLOADER_CATERINA) + send_string_with_delay_P(PSTR(":avrdude"), TAP_CODE_DELAY); +#endif // bootloader options + } + if ((temp_mod | temp_osm) & MOD_MASK_CTRL) { + send_string_with_delay_P(PSTR(" -j8 --output-sync"), TAP_CODE_DELAY); + } #ifdef RGB_MATRIX_SPLIT_RIGHT - send_string_with_delay_P(PSTR(" RGB_MATRIX_SPLIT_RIGHT=yes OLED_DRIVER_ENABLE=no"), TAP_CODE_DELAY); + send_string_with_delay_P(PSTR(" RGB_MATRIX_SPLIT_RIGHT=yes"), TAP_CODE_DELAY); +# ifndef OLED_DRIVER_ENABLE + send_string_with_delay_P(PSTR(" OLED_DRIVER_ENABLE=no"), TAP_CODE_DELAY); +# endif #endif - send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY); - } + send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY); + } - break; + break; - case VRSN: // Prints firmware version - if (record->event.pressed) { - send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY); - } - break; + case VRSN: // Prints firmware version + if (record->event.pressed) { + send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY); + } + break; - // These are a serious of gaming macros. - // Only enables for the viterbi, basically, - // to save on firmware space, since it's limited. + // These are a serious of gaming macros. + // Only enables for the viterbi, basically, + // to save on firmware space, since it's limited. #ifdef MACROS_ENABLED - case KC_OVERWATCH: // Toggle's if we hit "ENTER" or "BACKSPACE" to input macros - if (record->event.pressed) { userspace_config.is_overwatch ^= 1; eeconfig_update_user(userspace_config.raw); } -#ifdef RGBLIGHT_ENABLE - userspace_config.is_overwatch ? rgblight_mode_noeeprom(17) : rgblight_mode_noeeprom(18); -#endif //RGBLIGHT_ENABLE - break; - case KC_SALT: - return send_game_macro("Salt, salt, salt...", record, false); - case KC_MORESALT: - return send_game_macro("Please sir, can I have some more salt?!", record, false); - case KC_SALTHARD: - return send_game_macro("Your salt only makes me harder, and even more aggressive!", record, false); - case KC_GOODGAME: - return send_game_macro("Good game, everyone!", record, false); - case KC_GLHF: - return send_game_macro("Good luck, have fun!!!", record, false); - case KC_SYMM: - return send_game_macro("Left click to win!", record, false); - case KC_JUSTGAME: - return send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games.", record, false); - case KC_TORB: - return send_game_macro("That was positively riveting!", record, false); - case KC_AIM: - send_game_macro("That aim is absolutely amazing. It's almost like you're a machine!", record, true); - return send_game_macro("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!", record, false); - case KC_C9: - return send_game_macro("OMG!!! C9!!!", record, false); - case KC_GGEZ: - return send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!", record, false); -#endif // MACROS_ENABLED + case KC_OVERWATCH: // Toggle's if we hit "ENTER" or "BACKSPACE" to input macros + if (record->event.pressed) { + userspace_config.is_overwatch ^= 1; + eeconfig_update_user(userspace_config.raw); + } +# ifdef RGBLIGHT_ENABLE + userspace_config.is_overwatch ? rgblight_mode_noeeprom(17) : rgblight_mode_noeeprom(18); +# endif // RGBLIGHT_ENABLE + break; + case KC_SALT: + return send_game_macro("Salt, salt, salt...", record, false); + case KC_MORESALT: + return send_game_macro("Please sir, can I have some more salt?!", record, false); + case KC_SALTHARD: + return send_game_macro("Your salt only makes me harder, and even more aggressive!", record, false); + case KC_GOODGAME: + return send_game_macro("Good game, everyone!", record, false); + case KC_GLHF: + return send_game_macro("Good luck, have fun!!!", record, false); + case KC_SYMM: + return send_game_macro("Left click to win!", record, false); + case KC_JUSTGAME: + return send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games.", record, false); + case KC_TORB: + return send_game_macro("That was positively riveting!", record, false); + case KC_AIM: + send_game_macro("That aim is absolutely amazing. It's almost like you're a machine!", record, true); + return send_game_macro("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!", record, false); + case KC_C9: + return send_game_macro("OMG!!! C9!!!", record, false); + case KC_GGEZ: + return send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!", record, false); +#endif // MACROS_ENABLED - - case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them + case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them #ifdef TAP_DANCE_ENABLE - if (record->event.pressed) { - uint8_t dtime; - for (dtime = 0; dtime < 4; dtime++) { - diablo_timer[dtime].key_time = diablo_times[0]; + if (record->event.pressed) { + for (uint8_t index = 0; index < 4; index++) { + diablo_timer[index].key_interval = 0; + } } - } -#endif // TAP_DANCE_ENABLE - break; +#endif // TAP_DANCE_ENABLE + break; - - case KC_CCCV: // One key copy/paste - if(record->event.pressed){ - copy_paste_timer = timer_read(); + case KC_CCCV: // One key copy/paste + if (record->event.pressed) { + copy_paste_timer = timer_read(); } else { - if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy - register_code(KC_LCTL); - tap_code(KC_C); - unregister_code(KC_LCTL); - } else { // Tap, paste - register_code(KC_LCTL); - tap_code(KC_V); - unregister_code(KC_LCTL); + if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy + register_code(KC_LCTL); + tap_code(KC_C); + unregister_code(KC_LCTL); + } else { // Tap, paste + register_code(KC_LCTL); + tap_code(KC_V); + unregister_code(KC_LCTL); + } } - } - break; + break; #ifdef UNICODE_ENABLE - case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻ - if (record->event.pressed) { - send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B"); - } - break; - case UC_TABL: // ┬─┬ノ( º _ ºノ) - if (record->event.pressed) { - send_unicode_hex_string("252C 2500 252C 30CE 0028 0020 00BA 0020 005F 0020 00BA 30CE 0029"); - } - break; - case UC_SHRG: // ¯\_(ツ)_/¯ - if (record->event.pressed) { - send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF"); - } - break; - case UC_DISA: // ಠ_ಠ - if (record->event.pressed) { - send_unicode_hex_string("0CA0 005F 0CA0"); - } - break; + case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻ + if (record->event.pressed) { + send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B"); + } + break; + case UC_TABL: // ┬─┬ノ( º _ ºノ) + if (record->event.pressed) { + send_unicode_hex_string("252C 2500 252C 30CE 0028 0020 00BA 0020 005F 0020 00BA 30CE 0029"); + } + break; + case UC_SHRG: // ¯\_(ツ)_/¯ + if (record->event.pressed) { + send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF"); + } + break; + case UC_DISA: // ಠ_ಠ + if (record->event.pressed) { + send_unicode_hex_string("0CA0 005F 0CA0"); + } + break; #endif } return process_record_keymap(keycode, record) && #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) - process_record_user_rgb(keycode, record) && -#endif // RGBLIGHT_ENABLE - process_record_secrets(keycode, record); + process_record_user_rgb(keycode, record) && +#endif // RGBLIGHT_ENABLE + process_record_secrets(keycode, record); } diff --git a/users/drashna/process_records.h b/users/drashna/process_records.h index 35adec84cc7..8901a6f91c8 100644 --- a/users/drashna/process_records.h +++ b/users/drashna/process_records.h @@ -2,24 +2,24 @@ #include "drashna.h" #if defined(KEYMAP_SAFE_RANGE) -# define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE +# define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE #else -# define PLACEHOLDER_SAFE_RANGE SAFE_RANGE +# define PLACEHOLDER_SAFE_RANGE SAFE_RANGE #endif enum userspace_custom_keycodes { - VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info - KC_QWERTY, // Sets default layer to QWERTY - KC_COLEMAK, // Sets default layer to COLEMAK - KC_DVORAK, // Sets default layer to DVORAK - KC_WORKMAN, // Sets default layer to WORKMAN - KC_NORMAN, // Sets default layer to NORMAN - KC_MALTRON, // Sets default layer to MALTRON - KC_EUCALYN, // Sets default layer to EUCALYN - KC_CARPLAX, // Sets default layer to CARPLAX - KC_DIABLO_CLEAR, // Clears all Diablo Timers - KC_OVERWATCH, // Toggles game macro input mode (so in OW, it defaults to game chat) - KC_SALT, // See drashna.c for details + VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info + KC_QWERTY, // Sets default layer to QWERTY + KC_COLEMAK, // Sets default layer to COLEMAK + KC_DVORAK, // Sets default layer to DVORAK + KC_WORKMAN, // Sets default layer to WORKMAN + KC_NORMAN, // Sets default layer to NORMAN + KC_MALTRON, // Sets default layer to MALTRON + KC_EUCALYN, // Sets default layer to EUCALYN + KC_CARPLAX, // Sets default layer to CARPLAX + KC_DIABLO_CLEAR, // Clears all Diablo Timers + KC_OVERWATCH, // Toggles game macro input mode (so in OW, it defaults to game chat) + KC_SALT, // See drashna.c for details KC_MORESALT, KC_SALTHARD, KC_GOODGAME, @@ -30,27 +30,25 @@ enum userspace_custom_keycodes { KC_AIM, KC_C9, KC_GGEZ, - KC_MAKE, // Run keyboard's customized make command - KC_RGB_T, // Toggles RGB Layer Indication mode - KC_SECRET_1, // test1 - KC_SECRET_2, // test2 - KC_SECRET_3, // test3 - KC_SECRET_4, // test4 - KC_SECRET_5, // test5 - KC_CCCV, // Hold to copy, tap to paste - KC_NUKE, // NUCLEAR LAUNCH DETECTED!!! - UC_FLIP, // (ಠ痊ಠ)┻━┻ - UC_TABL, // ┬─┬ノ( º _ ºノ) - UC_SHRG, // ¯\_(ツ)_/¯ - UC_DISA, // ಠ_ಠ - NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes + KC_MAKE, // Run keyboard's customized make command + KC_RGB_T, // Toggles RGB Layer Indication mode + KC_SECRET_1, // test1 + KC_SECRET_2, // test2 + KC_SECRET_3, // test3 + KC_SECRET_4, // test4 + KC_SECRET_5, // test5 + KC_CCCV, // Hold to copy, tap to paste + KC_NUKE, // NUCLEAR LAUNCH DETECTED!!! + UC_FLIP, // (ಠ痊ಠ)┻━┻ + UC_TABL, // ┬─┬ノ( º _ ºノ) + UC_SHRG, // ¯\_(ツ)_/¯ + UC_DISA, // ಠ_ಠ + NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes }; bool process_record_secrets(uint16_t keycode, keyrecord_t *record); bool process_record_keymap(uint16_t keycode, keyrecord_t *record); - - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) @@ -74,10 +72,10 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record); #define KC_RST KC_RESET #ifdef SWAP_HANDS_ENABLE -#define KC_C1R3 SH_TT -#else // SWAP_HANDS_ENABLE -#define KC_C1R3 KC_BSPC -#endif // SWAP_HANDS_ENABLE +# define KC_C1R3 SH_TT +#else // SWAP_HANDS_ENABLE +# define KC_C1R3 KC_BSPC +#endif // SWAP_HANDS_ENABLE #define BK_LWER LT(_LOWER, KC_BSPC) #define SP_LWER LT(_LOWER, KC_SPC) diff --git a/users/drashna/readme.md b/users/drashna/readme.md index ffc60060f45..d98d1d0a6bb 100644 --- a/users/drashna/readme.md +++ b/users/drashna/readme.md @@ -2,192 +2,14 @@ This is my personal userspace file. Most of my code exists here, as it's heavily shared. -## Custom userspace handlers +* [RGB Customization](readme_rgb.md) +* [Diablo Tap Dancing](readme_tap_dance.md) +* [Keymap Wrappers](readme_wrappers.md) +* [Custom Function Handlers](readme_handlers.md) +* [Secret Macros](readme_secrets.md) +* [Custom Keycodes](readme_keycodes.md) -Specifically QMK works by using customized handlers for everything. This allows for multiple levels of customization. - -`matrix_scan` calls `matrix_scan_quantum`, which alls `matrix_scan_kb`, which calls `matrix_scan_user`. -`process_record` calls a bunch of stuff, but eventually calls `process_record_kb` which calls `process_record_user` -The same goes for `matrix_init`, `layer_state_set`, `led_set`, and a few other functions. - -All (most) `_user` functions are handled here instead. To allow keyboard specific configuration, I've created `_keymap` functions that can be called by the keymap.c files instead. - -This allows for keyboard specific configuration while maintaining the ability to customize the board. - -My [Ergodox EZ Keymap](https://github.com/qmk/qmk_firmware/blob/master/layouts/community/ergodox/drashna/keymap.c#L297) is a good example of this, as it uses the LEDs as modifier indicators. - -## Keyboard Layout Templates - -This borrows from @jola5's "Not quite neo" code. This allows me to maintain blocks of keymaps in the userspace, so that I can modify the userspace, and this is reflected in all of the keyboards that use it, at once. - -This makes adding tap/hold mods, or other special keycodes or functions to all keyboards super easy, as it's done to all of them at once. - -The caveat here is that the keymap needs a processor/wrapper, as it doesn't like the substitutions. However, this is as simple as just pushing it through a define. For instance: - -`#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)` - -Once that's been done and you've switched the keymaps to use the "wrapper", it will read the substitution blocks just fine. - -Credit goes to @jola5 for first implementing this awesome idea. - - -## Custom Keycodes - -Keycodes are defined in the drashna.h file and need to be included in the keymap.c files, so that they can be used there. - -A bunch of macros are present and are only included on boards that are not the Ergodox EZ or Orthodox, as they are not needed for those boards. - -Included is a custom macro for compiling my keyboards. This includes the bootloader target (`:teensy`, `:avrdude`, or `:dfu`), and keeps RGBLIGHT, AUDIO and/or FAUXCLICKY enabled, if it previously was (regardless of the rules file). - -This also includes a modified RESET keycode as well, that sets the underglow to red. - -## Layer Indication - -This uses the `layer_state_set_*` command to change the layer color, to indicate which layer it is on. This includes the default keymap, as well. - -Since this is done via userspace, it is the same between all systems. - -Additionally, there is a custom keycode to toggle layer indication. And all RGB keycodes disable layer indication by default, as well. This way, I can leave special effects doing when I want. - -Also. I use `rgblight_sethsv` since it works with animation modes (that support it). - -## Diablo Layer - -This layer has some special handling. - -When Tap Dances are enabled, this layer has the ability to "spam" keypresses. - -For instance, tapping the TD "1" twice causes the layer to hit "1" ever 1 second (appoximately). This is useful for auto-hotkeying skills (such as bone armor or devour). - -Tappind once disables this, and switching layers temporarily disables this, until you switch back to the layer. - -For critics that think this is cheating, search "diablo 3 num lock auto cast". This is just a simpler method, since I no longer own a normal (non QMK) numpad. - -## Secret Macros - -With help from gitter and Colinta, this adds the ability to add hidden macros from other users. - -First, I have several files that are hidden/excluded from Git/GitHub. These contain everything needed for the macros. To hide these files, open `.git/info/exclude` and add `secrets.c` and `secrets.h` to that file, below the comments. - -And this requires `KC_SECRET_1` through `KC_SECRET_5` to be defined in your `.h` file to define the keycodes for the new macros. - - -### .git/info/exclude - -``` -# git ls-files --others --exclude-from=.git/info/exclude -# Lines that start with '#' are comments. -# For a project mostly in C, the following would be a good set of -# exclude patterns (uncomment them if you want to use them): -# *.[oa] -# *~ -/users/drashna/secrets.c -/users/drashna/secrets.h -``` - -Then you can create these files: - -### secrets.c - -```c -#include "drashna.h" // replace with your keymap's "h" file, or whatever file stores the keycodes - -#if (__has_include("secrets.h") && !defined(NO_SECRETS)) -#include "secrets.h" -#else -// `PROGMEM const char secret[][x]` may work better, but it takes up more space in the firmware -// And I'm not familiar enough to know which is better or why... -static const char * const secret[] = { - "test1", - "test2", - "test3", - "test4", - "test5" -}; -#endif - -bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_SECRET_1 ... KC_SECRET_5: // Secrets! Externally defined strings, not stored in repo - if (!record->event.pressed) { - clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); - send_string_with_delay(secret[keycode - KC_SECRET_1], MACRO_TIMER); - } - return false; - break; - } - return true; -} -``` - -### secrets.h - -```c -static const char * const secrets[] = { - "secret1", - "secret2", - "secret3", - "secret4", - "secret5" -}; -``` - -Replacing the strings with the codes that you need. - -### name.c - -In the `.c` file, you will want to add this to the top: - -```c -__attribute__ ((weak)) -bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { - return true; -} -``` - -This is so that the function can be called here, and replaced in the `secrets.c` file, and so it won't error out if it doesn't exist. - -And then, in the `process_record_user` function, assuming you have `return process_record_keymap(keycode, record)` here, you'll want to replace the "final" return with the following. Otherwise, you want to replace the `return true;` with `return process_record_secrets(keycode, record);` - -```c - return process_record_keymap(keycode, record) && process_record_secrets(keycode, record); -} -``` - -### rules.mk - -Here, you want your `/users//rules.mk` file to "detect" the existence of the `secrets.c` file, and only add it if the file exists. To do so, add this block: - -```make -ifneq ("$(wildcard $(USER_PATH)/secrets.c)","") - SRC += secrets.c -endif -``` - -Additionally, if you want to make sure that you can disable the function without messing with the file, you need to add this to your `/users//rules.mk`, so that it catches the flag: - -```make -ifeq ($(strip $(NO_SECRETS)), yes) - OPT_DEFS += -DNO_SECRETS -endif -``` - -Then, if you run `make keyboard:name NO_SECRETS=yes`, it will default to the test strings in your `.c` file, rather than reading from your file. ## Pro Micro Hacking -Well, you can get the QMK DFU bootloader working on the ProMicro. But you need to change fuses. - -What worked to get into the firmware properly was: - -``` -Low: 0x5E High: 0xD9 Extended: 0xC3 Lock: 0x3F -``` - -The reason that there was some issues before, is that JTAG was still enabled, and using some of the pins that the keyboard uses. Disabling JTAG (either by fuse, or modifying the matrix code for splits fixes the issue). - -And for reference, if you want to go back to caterina, the default fuse settings I believe were: - -``` -Low: 0xFF High: 0xD8 Extended: 0xC3 Lock: 0x3F -``` +See [this thread](https://www.reddit.com/r/olkb/comments/8sxgzb/replace_pro_micro_bootloader_with_qmk_dfu/) for details on how to flash QMK DFU to Pro Micros. diff --git a/users/drashna/readme_handlers.md b/users/drashna/readme_handlers.md new file mode 100644 index 00000000000..4abaf514734 --- /dev/null +++ b/users/drashna/readme_handlers.md @@ -0,0 +1,97 @@ +# Custom Userspace Function handlers + +Specifically QMK works by using customized handlers for everything. This allows for multiple levels of customization. + +`matrix_scan` calls `matrix_scan_quantum`, which calls `matrix_scan_kb`, which calls `matrix_scan_user`. +`process_record` calls a bunch of stuff, but eventually calls `process_record_kb` which calls `process_record_user` +The same goes for `matrix_init`, `layer_state_set`, `led_set`, and a few other functions. + +All (most) `_user` functions are handled here, in the userspace instead. To allow keyboard specific configuration, I've created `_keymap` functions that can be called by the keymap.c files instead. + +This allows for keyboard specific configuration while maintaining the ability to customize the board. + +My [Ergodox EZ Keymap](https://github.com/qmk/qmk_firmware/blob/master/layouts/community/ergodox/drashna/keymap.c) is a good example of this, as it uses the LEDs as modifier indicators. + +But for a list: + +```c +__attribute__ ((weak)) +void matrix_init_keymap(void) {} + +void matrix_init_user(void) { + matrix_init_keymap(); +} + +__attribute__((weak)) +void keyboard_post_init_keymap(void){ } + +void keyboard_post_init_user(void){ + keyboard_post_init_keymap(); +} + +__attribute__ ((weak)) +void matrix_scan_keymap(void) {} + +void matrix_scan_user(void) { + matrix_scan_keymap(); +} + + +__attribute__ ((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return process_record_keymap(keycode, record); +} + + +__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) { + return layer_state_set_keymap (state); +} + + +__attribute__ ((weak)) +void led_set_keymap(uint8_t usb_led) {} + +void led_set_user(uint8_t usb_led) { + led_set_keymap(usb_led); +} + + +__attribute__ ((weak)) +void suspend_power_down_keymap(void) {} + +void suspend_power_down_user(void) { + suspend_power_down_keymap(); +} + + +__attribute__ ((weak)) +void suspend_wakeup_init_keymap(void) {} + +void suspend_wakeup_init_user(void) { + suspend_wakeup_init_keymap(); +} + + +__attribute__ ((weak)) +void shutdown_keymap(void) {} + +void shutdown_user (void) { + shutdown_keymap(); +} + +__attribute__ ((weak)) +void eeconfig_init_keymap(void) {} + +void eeconfig_init_user(void) { + eeconfig_init_keymap(); +} +``` diff --git a/users/drashna/readme_keycodes.md b/users/drashna/readme_keycodes.md new file mode 100644 index 00000000000..f5e6fb271ef --- /dev/null +++ b/users/drashna/readme_keycodes.md @@ -0,0 +1,10 @@ + +# Custom Keycodes + +Keycodes are defined in the drashna.h file and need to be included in the keymap.c files, so that they can be used there. + +A bunch of macros are present and are only included on boards that are not the Ergodox EZ or Orthodox, as they are not needed for those boards. + +Included is a custom macro for compiling my keyboards. This includes the bootloader target (`:teensy`, `:avrdude`, or `:dfu`), and keeps RGBLIGHT, AUDIO and/or FAUXCLICKY enabled, if it previously was (regardless of the rules file). + +This also includes a modified RESET keycode as well, that sets the underglow to red. diff --git a/users/drashna/readme_rgb.md b/users/drashna/readme_rgb.md new file mode 100644 index 00000000000..acf01b051e7 --- /dev/null +++ b/users/drashna/readme_rgb.md @@ -0,0 +1,43 @@ +# Layer Indication Code + +At least for RGB Light, the `layer_state_set` function is used to detect the current highest layer, and change the underglow based on that layer. + +This works for both the regular layers, and for the default layers, too. + +I use the sethsv variants of the commands, so that different modes can be used, as well. + +RGB Matrix uses a custom, per board implementation, at the moment. + +# RGB Light Startup Animation + +On startup, if enabled, the board will cycle through the entire hue wheel, starting and ending on the default layer color. + +```c +void keyboard_post_init_rgb(void) { +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_STARTUP_ANIMATION) + if (userspace_config.rgb_layer_change) { rgblight_enable_noeeprom(); } + if (rgblight_config.enable) { + layer_state_set_user(layer_state); + uint16_t old_hue = rgblight_config.hue; + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + for (uint16_t i = 255; i > 0; i--) { + rgblight_sethsv_noeeprom( ( i + old_hue) % 255, 255, 255); + matrix_scan(); + wait_ms(10); + } + } +#endif + layer_state_set_user(layer_state); +} +``` + +This could probably benefit from some cleanup and better handling. + + +# RGB Light Twinkling + +This enables random twinkling of the LEDs when typing. + +# RGB Light Mod Indicators + +Allows feedback of which mods (oneshot or otherwise) are enabled. diff --git a/users/drashna/readme_secrets.md b/users/drashna/readme_secrets.md new file mode 100644 index 00000000000..a9408dc2efb --- /dev/null +++ b/users/drashna/readme_secrets.md @@ -0,0 +1,123 @@ +# Secret Macros + +With help from gitter and Colinta, this adds the ability to add hidden macros from other users. + +First, I have several files that are hidden/excluded from Git/GitHub. These contain everything needed for the macros. To hide these files, open `.git/info/exclude` and add `secrets.c` and `secrets.h` to that file, below the comments. + +And this requires `KC_SECRET_1` through `KC_SECRET_5` to be added in your keycode enum (usually in your `.h` file) the keycodes for the new macros. + +## Git Exclusion + +To prevent `git` from seeing, or committing the secret files, you can exclude them. What's the point of having secrets if they're posted on GitHub for everyone to see!?! + +You can do this with the `.git/info/exclude` file, so that it's only ignored locally. Unfortunately, that means it's not consistently handled on each system. + +However, if you create a `.gitignore` file in the same folder, you keep things consistent between every system that the code is checked out on. + +```c +secrets.c +secrets.h +``` + +## secrets.c + +Here is the magic. This handles including the "secrets", and adding the custom macros to send them. + +```c +#include "drashna.h" // replace with your keymap's "h" file, or whatever file stores the keycodes + +#if (__has_include("secrets.h") && !defined(NO_SECRETS)) +#include "secrets.h" +#else +// `PROGMEM const char secret[][x]` may work better, but it takes up more space in the firmware +// And I'm not familiar enough to know which is better or why... +static const char * const secret[] = { + "test1", + "test2", + "test3", + "test4", + "test5" +}; +#endif + +bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_SECRET_1 ... KC_SECRET_5: // Secrets! Externally defined strings, not stored in repo + if (!record->event.pressed) { + clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); + send_string_with_delay(secret[keycode - KC_SECRET_1], MACRO_TIMER); + } + return false; + break; + } + return true; +} +``` + +## secrets.h + +Now, for the actual secrets! The file needs to look like + +```c +static const char * secrets[] = { + "secret1", + "secret2", + "secret3", + "secret4", + "secret5" +}; +``` + +Replacing the strings with the codes that you need. + +## Process Record + +In whichever file you have your `process_record_*` function in, you will want to add this to the top: + +```c +__attribute__ ((weak)) +bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { + return true; +} +``` + +This is so that the function can be called here, and replaced in the `secrets.c` file, and so it won't error out if it doesn't exist. + +And then, in the `process_record_user` function, assuming you have `return process_record_keymap(keycode, record)` here, you'll want to replace the "final" return with the following. Otherwise, you want to replace the `return true;` with `return process_record_secrets(keycode, record);` + +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // your existing macro code here. + return process_record_keymap(keycode, record) && process_record_secrets(keycode, record); +} +``` + +## rules.mk + +Here, you want your `/users//rules.mk` file to "detect" the existence of the `secrets.c` file, and only add it if the file exists. + +Additionally, to ensure that it's not added or processed in any way, it checks to see if `NO_SECRETS` is set. This way, if you run `make keyboard:name NO_SECRETS=yes`, it will remove the feature altogether. + +```make +ifneq ($(strip $(NO_SECRETS)), yes) + ifneq ("$(wildcard $(USER_PATH)/secrets.c)","") + SRC += secrets.c + endif +endif +``` + +Alternately, if you want to make sure that you can disable the function without messing with the file, you need to add this to your `/users//rules.mk`, so that it catches the flag: + +```make +ifneq ("$(wildcard $(USER_PATH)/secrets.c)","") + SRC += secrets.c +endif + +ifeq ($(strip $(NO_SECRETS)), yes) + OPT_DEFS += -DNO_SECRETS +endif +``` + +## Extras + +Additionally, because this file isn't present in the repo at all, you could add additional functionality that nobody else will see. diff --git a/users/drashna/readme_tap_dance.md b/users/drashna/readme_tap_dance.md new file mode 100644 index 00000000000..a61dd1f2b08 --- /dev/null +++ b/users/drashna/readme_tap_dance.md @@ -0,0 +1,119 @@ +# Diablo Tap Dances + +My [Tap Dance](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/tap_dances.c) file includes the tap dance declarations, and everything needed for them. + +This is used for making Diablo 3 much easier to plan, especially at high rift levels. + +This works by using Tap Dances. The taps don't actually "do anything". Instead, it sets up the interval for how often to send specific keypresses. As you can tell, this makes automating things very easy. + +For critics that think this is cheating, just search "[diablo 3 num lock auto cast](http://lmgtfy.com/?q=diablo+3+numlock+autocast)". This is just a simpler method, that doesn't require a numpad. + + +## Custom Tap Dance Type +The real fun here is that the tap dances use a custom defined Tap Dance type: + +```c +#define ACTION_TAP_DANCE_DIABLO(index, keycode) { \ + .fn = { NULL, (void *)diablo_tapdance_master, NULL }, \ + .user_data = (void *)&((diable_keys_t) { index, keycode }), \ + } +``` +This lets me set an index and keycode for the tap dance. This isn't the cool part yet, but this allows for the really cool stuff. + +The Index is needed because I don't know how to handle it otherwise. + +## The Actual Dances + +These are the custom defined dances that I'm using. It sets up everything for later, using the above custom dance type. + +```c +//Tap Dance Definitions, sets the index and the keycode. +qk_tap_dance_action_t tap_dance_actions[] = { + // tap once to disable, and more to enable timed micros + [TD_D3_1] = ACTION_TAP_DANCE_DIABLO(0, KC_1), + [TD_D3_2] = ACTION_TAP_DANCE_DIABLO(1, KC_2), + [TD_D3_3] = ACTION_TAP_DANCE_DIABLO(2, KC_3), + [TD_D3_4] = ACTION_TAP_DANCE_DIABLO(3, KC_4), +}; +``` + +## Custom Data Structures + +First, to get this all working, there are a couple of things that need to be set up. In a header file (or you could put it into the keymap), you need to create a couple of custom structures: + +```c +typedef struct { + uint16_t timer; + uint8_t key_interval; + uint8_t keycode; +} diablo_timer_t; + +typedef struct { + uint8_t index; + uint8_t keycode; +} diable_keys_t; +``` + +The first structure is for tracking each key that is being used. The second is to pass data from the Tap Dance action array to the actual function that we will need. + + +## Custom Arrays + +To facilitate things, you will need a couple of arrays in your `c` file. + +```c +//define diablo macro timer variables +diablo_timer_t diablo_timer[4]; + +// Set the default intervals. Always start with 0 so that it will disable on first hit. +// Otherwise, you will need to hit a bunch of times, or hit the "clear" command +uint8_t diablo_times[] = { 0, 1, 3, 5, 10, 30 }; +``` + +The first one (`diablo_timer`) is what keeps track of the timer used for the keys, the interval that it uses, and the actual keycode. This makes managing it a lot easier. + +The second array is a list of predefined intervals, in seconds. You can add more here, or remove entries. It doesn't matter how long the array is, as this is computed automatically. + +## The Magic - Part 1: Master function + +The first part of the magic here is the `diablo_tapdance_master` function. The Tap Dance feature calls this function, directly, and passes some data to the function. Namely, it passes the array of the index and the keycode (`diablo_keys_t` from above). This sets the keycode and the interval for the specific index of `diabolo_timer` based on the number of taps. If you hit it more than the number of items in the array, then it zeroes out the interval, disabling it. + +```c +// Cycle through the times for the macro, starting at 0, for disabled. +void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) { + diable_keys_t *diablo_keys = (diable_keys_t *)user_data; + // Sets the keycode based on the index + diablo_timer[diablo_keys->index].keycode = diablo_keys->keycode; + + // if the tapdance is hit more than the number of elemints in the array, reset + if (state->count >= (sizeof(diablo_times) / sizeof(uint8_t) ) ) { + diablo_timer[diablo_keys->index].key_interval = 0; + reset_tap_dance(state); + } else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one) + diablo_timer[diablo_keys->index].key_interval = diablo_times[state->count - 1]; + } +} +``` + +## The Magic - Part 2: The Coup de Grace + +The real core here is the `run_diablo_macro_check()` function. You need to call this from `matrix_scan_user`, as this handles the timer check. + +Specifically, it runs a check for each index of the timer. It checks to see if it's enabled, and if enough time has passed. If enough time has passed, it resets the timer, and will tap the keycode that you set for that index, but only if the Diablo layer is enabled. + +```c +// Checks each of the 4 timers/keys to see if enough time has elapsed +void run_diablo_macro_check(void) { + for (uint8_t index = 0; index < NUM_OF_DIABLO_KEYS; index++) { + // if key_interval is 0, it's disabled, so only run if it's set. If it's set, check the timer. + if ( diablo_timer[index].key_interval && timer_elapsed( diablo_timer[index].timer ) > ( diablo_timer[index].key_interval * 1000 ) ) { + // reset the timer, since enough time has passed + diablo_timer[index].timer = timer_read(); + // send keycode ONLY if we're on the diablo layer. + if (IS_LAYER_ON(_DIABLO)) { + tap_code(diablo_timer[index].keycode); + } + } + } +} +``` diff --git a/users/drashna/readme_wrappers.md b/users/drashna/readme_wrappers.md new file mode 100644 index 00000000000..fd62ff1609a --- /dev/null +++ b/users/drashna/readme_wrappers.md @@ -0,0 +1,11 @@ +## Keyboard Layout Templates + +This borrows from @jola5's "Not quite neo" code. This allows me to maintain blocks of keymaps in the userspace, so that I can modify the userspace, and this is reflected in all of the keyboards that use it, at once. + +This makes adding tap/hold mods, or other special keycodes or functions to all keyboards super easy, as it's done to all of them at once. + +The caveat here is that the keymap needs a processor/wrapper, as it doesn't like the substitutions. However, this is as simple as just pushing it through a define. For instance: + +`#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)` + +Once that's been done and you've switched the keymaps to use the "wrapper", it will read the substitution blocks just fine. diff --git a/users/drashna/rgb_stuff.c b/users/drashna/rgb_stuff.c index 7d364fa6868..12851e2616c 100644 --- a/users/drashna/rgb_stuff.c +++ b/users/drashna/rgb_stuff.c @@ -4,77 +4,75 @@ #if defined(RGBLIGHT_ENABLE) extern rgblight_config_t rgblight_config; -bool has_initialized; +bool has_initialized; #endif #ifdef RGBLIGHT_ENABLE -void rgblight_sethsv_default_helper(uint8_t index) { - rgblight_sethsv_at(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, index); -} -#endif // RGBLIGHT_ENABLE +void rgblight_sethsv_default_helper(uint8_t index) { rgblight_sethsv_at(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, index); } +#endif // RGBLIGHT_ENABLE #ifdef INDICATOR_LIGHTS void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) { if (userspace_config.rgb_layer_change && biton32(layer_state) == 0) { - if ( (this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1< 10) { - rgblight_fadeout *light = &lights[light_index]; - litup = true; + rgblight_fadeout *light = &lights[light_index]; + litup = true; - if (light->life) { - light->life -= 1; - if (biton32(layer_state) == 0) { - sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]); + if (light->life) { + light->life -= 1; + if (biton32(layer_state) == 0) { + sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]); + } + light->timer = timer_read(); + } else { + if (light->enabled && biton32(layer_state) == 0) { + rgblight_sethsv_default_helper(light_index); + } + litup = light->enabled = false; } - light->timer = timer_read(); - } - else { - if (light->enabled && biton32(layer_state) == 0) { - rgblight_sethsv_default_helper(light_index); - } - litup = light->enabled = false; - } } } if (litup && biton32(layer_state) == 0) { @@ -161,39 +157,37 @@ void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgb } void start_rgb_light(void) { - uint8_t indices[RGBLED_NUM]; - uint8_t indices_count = 0; - uint8_t min_life = 0xFF; + uint8_t indices_count = 0; + uint8_t min_life = 0xFF; uint8_t min_life_index = -1; - for (uint8_t index = 0 ; index < RGBLED_NUM ; ++index ) { - if (rgblight_twinkle_is_led_used(index)) { continue; } - if (lights[index].enabled) { - if (min_life_index == -1 || - lights[index].life < min_life) - { - min_life = lights[index].life; - min_life_index = index; + for (uint8_t index = 0; index < RGBLED_NUM; ++index) { + if (rgblight_twinkle_is_led_used(index)) { + continue; + } + if (lights[index].enabled) { + if (min_life_index == -1 || lights[index].life < min_life) { + min_life = lights[index].life; + min_life_index = index; + } + continue; } - continue; - } - indices[indices_count] = index; - ++indices_count; + indices[indices_count] = index; + ++indices_count; } uint8_t light_index; if (!indices_count) { light_index = min_life_index; - } - else { - light_index = indices[rand() % indices_count]; + } else { + light_index = indices[rand() % indices_count]; } rgblight_fadeout *light = &lights[light_index]; - light->enabled = true; - light->timer = timer_read(); - light->life = 0xC0 + rand() % 0x40; + light->enabled = true; + light->timer = timer_read(); + light->life = 0xC0 + rand() % 0x40; light->hue = rgblight_config.hue + (rand() % 0xB4) - 0x54; @@ -201,7 +195,6 @@ void start_rgb_light(void) { } #endif - bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) { if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; @@ -214,9 +207,12 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) { case KC_KP_SLASH ... KC_KP_DOT: case KC_F13 ... KC_F24: case KC_AUDIO_MUTE ... KC_MEDIA_REWIND: - if (record->event.pressed) { start_rgb_light(); } - return true; break; -#endif // RGBLIGHT_TWINKLE + if (record->event.pressed) { + start_rgb_light(); + } + return true; + break; +#endif // RGBLIGHT_TWINKLE case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) if (record->event.pressed) { @@ -224,41 +220,48 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) { xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); eeconfig_update_user(userspace_config.raw); if (userspace_config.rgb_layer_change) { - layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) + layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) } } -#endif // RGBLIGHT_ENABLE - return false; break; +#endif // RGBLIGHT_ENABLE + return false; + break; #ifdef RGBLIGHT_ENABLE - case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions - if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled + case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions + if (record->event.pressed) { // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled if (userspace_config.rgb_layer_change) { userspace_config.rgb_layer_change = false; xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); eeconfig_update_user(userspace_config.raw); } } - return true; break; -#endif // RGBLIGHT_ENABLE - } + return true; + break; +#endif // RGBLIGHT_ENABLE + } return true; } - - void keyboard_post_init_rgb(void) { #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_STARTUP_ANIMATION) - if (userspace_config.rgb_layer_change) { rgblight_enable_noeeprom(); } + bool is_enabled = rgblight_config.enable; + if (userspace_config.rgb_layer_change) { + rgblight_enable_noeeprom(); + } if (rgblight_config.enable) { layer_state_set_user(layer_state); uint16_t old_hue = rgblight_config.hue; rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); for (uint16_t i = 255; i > 0; i--) { - rgblight_sethsv_noeeprom( ( i + old_hue) % 255, 255, 255); + rgblight_sethsv_noeeprom((i + old_hue) % 255, 255, 255); matrix_scan(); wait_ms(10); } } + if (!is_enabled) { + rgblight_disable_noeeprom(); + } + #endif layer_state_set_user(layer_state); } @@ -266,15 +269,13 @@ void keyboard_post_init_rgb(void) { void matrix_scan_rgb(void) { #ifdef RGBLIGHT_TWINKLE scan_rgblight_fadeout(); -#endif // RGBLIGHT_ENABLE +#endif // RGBLIGHT_ENABLE #ifdef INDICATOR_LIGHTS matrix_scan_indicator(); #endif - } - layer_state_t layer_state_set_rgb(layer_state_t state) { #ifdef RGBLIGHT_ENABLE if (userspace_config.rgb_layer_change) { @@ -307,40 +308,73 @@ layer_state_t layer_state_set_rgb(layer_state_t state) { rgblight_sethsv_noeeprom_red(); rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); break; - default: // for any other layers, or the default layer + default: // for any other layers, or the default layer switch (biton32(default_layer_state)) { case _COLEMAK: - rgblight_sethsv_noeeprom_magenta(); break; + rgblight_sethsv_noeeprom_magenta(); + break; case _DVORAK: - rgblight_sethsv_noeeprom_springgreen(); break; + rgblight_sethsv_noeeprom_springgreen(); + break; case _WORKMAN: - rgblight_sethsv_noeeprom_goldenrod(); break; + rgblight_sethsv_noeeprom_goldenrod(); + break; case _NORMAN: - rgblight_sethsv_noeeprom_coral(); break; + rgblight_sethsv_noeeprom_coral(); + break; case _MALTRON: - rgblight_sethsv_noeeprom_yellow(); break; + rgblight_sethsv_noeeprom_yellow(); + break; case _EUCALYN: - rgblight_sethsv_noeeprom_pink(); break; + rgblight_sethsv_noeeprom_pink(); + break; case _CARPLAX: - rgblight_sethsv_noeeprom_blue(); break; + rgblight_sethsv_noeeprom_blue(); + break; default: - rgblight_sethsv_noeeprom_cyan(); break; + rgblight_sethsv_noeeprom_cyan(); + break; } - biton32(state) == _MODS ? rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING) : rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); // if _MODS layer is on, then breath to denote it + biton32(state) == _MODS ? rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING) : rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); // if _MODS layer is on, then breath to denote it break; } } -#endif // RGBLIGHT_ENABLE +#endif // RGBLIGHT_ENABLE return state; } #ifdef RGB_MATRIX_ENABLE +# include "lib/lib8tion/lib8tion.h" extern led_config_t g_led_config; -void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, uint8_t led_type) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { - if (HAS_FLAGS(g_led_config.flags[i], led_type)) { - rgb_matrix_set_color( i, red, green, blue ); +void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type) { + HSV hsv = {hue, sat, val}; + if (hsv.v > rgb_matrix_config.hsv.v) { + hsv.v = rgb_matrix_config.hsv.v; + } + + switch (mode) { + case 1: // breathing + { + uint16_t time = scale16by8(g_rgb_counters.tick, speed / 8); + hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); + RGB rgb = hsv_to_rgb(hsv); + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + if (HAS_FLAGS(g_led_config.flags[i], led_type)) { + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + } + break; + } + default: // Solid Color + { + RGB rgb = hsv_to_rgb(hsv); + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + if (HAS_FLAGS(g_led_config.flags[i], led_type)) { + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + } + break; } } } diff --git a/users/drashna/rgb_stuff.h b/users/drashna/rgb_stuff.h index f5bbd0f3b5f..ce45d6a00bb 100644 --- a/users/drashna/rgb_stuff.h +++ b/users/drashna/rgb_stuff.h @@ -1,23 +1,23 @@ #pragma once #include "quantum.h" #ifdef RGB_MATRIX_ENABLE - #include "rgb_matrix.h" +# include "rgb_matrix.h" #endif typedef struct { - bool enabled; - uint8_t hue; + bool enabled; + uint8_t hue; uint16_t timer; - uint8_t life; + uint8_t life; } rgblight_fadeout; -bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record); -void scan_rgblight_fadeout(void); -void keyboard_post_init_rgb(void); -void matrix_scan_rgb(void); +bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record); +void scan_rgblight_fadeout(void); +void keyboard_post_init_rgb(void); +void matrix_scan_rgb(void); layer_state_t layer_state_set_rgb(layer_state_t state); layer_state_t default_layer_state_set_rgb(layer_state_t state); -void rgblight_sethsv_default_helper(uint8_t index); -void rgb_matrix_set_color_all( uint8_t red, uint8_t green, uint8_t blue ); +void rgblight_sethsv_default_helper(uint8_t index); +void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, uint8_t led_type); +void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type); diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk index cdb9e543604..b414036a473 100644 --- a/users/drashna/rules.mk +++ b/users/drashna/rules.mk @@ -2,6 +2,7 @@ SRC += drashna.c \ process_records.c LINK_TIME_OPTIMIZATION_ENABLE = yes +SPACE_CADET_ENABLE = no ifneq ("$(wildcard $(USER_PATH)/secrets.c)","") SRC += secrets.c diff --git a/users/drashna/send_unicode.h b/users/drashna/send_unicode.h deleted file mode 100644 index 743abc58b42..00000000000 --- a/users/drashna/send_unicode.h +++ /dev/null @@ -1,71 +0,0 @@ -#pragma once - -#include "quantum.h" - -void send_unicode_hex_string(const char* str); - -/* use X(n) to call the */ -#ifdef UNICODEMAP_ENABLE -enum unicode_name { - THINK, // thinking face 🤔 - GRIN, // grinning face 😊 - SMRK, // smirk 😏 - WEARY, // good shit 😩 - UNAMU, // unamused 😒 - - SNEK, // snke 🐍 - PENGUIN, // 🐧 - DRAGON, // 🐉 - MONKEY, // 🐒 - CHICK, // 🐥 - BOAR, // 🐗 - - OKOK, // 👌 - EFFU, // 🖕 - INUP, // 👆 - THUP, // 👍 - THDN, // 👎 - - BBB, // dat B 🅱 - POO, // poop 💩 - HUNDR, // 100 💯 - EGGPL, // EGGPLANT 🍆 - WATER, // wet 💦 - TUMBLER, // 🥃 - - LIT, // fire 🔥 - BANG, // ‽ - IRONY, // ⸮ - DEGREE // ° -}; - - -const uint32_t PROGMEM unicode_map[] = { - [THINK] = 0x1F914, - [GRIN] = 0x1F600, - [BBB] = 0x1F171, - [POO] = 0x1F4A9, - [HUNDR] = 0x1F4AF, - [SMRK] = 0x1F60F, - [WEARY] = 0x1F629, - [EGGPL] = 0x1F346, - [WATER] = 0x1F4A6, - [LIT] = 0x1F525, - [UNAMU] = 0x1F612, - [SNEK] = 0x1F40D, - [PENGUIN] = 0x1F427, - [BOAR] = 0x1F417, - [MONKEY] = 0x1F412, - [CHICK] = 0x1F425, - [DRAGON] = 0x1F409, - [OKOK] = 0x1F44C, - [EFFU] = 0x1F595, - [INUP] = 0x1F446, - [THDN] = 0x1F44E, - [THUP] = 0x1F44D, - [TUMBLER] = 0x1F943, - [BANG] = 0x0203D, - [IRONY] = 0x02E2E, - [DEGREE] = 0x000B0 - }; -#endif // UNICODEMAP_ENABLE diff --git a/users/drashna/tap_dances.c b/users/drashna/tap_dances.c index 18ca96e187e..65019ab7512 100644 --- a/users/drashna/tap_dances.c +++ b/users/drashna/tap_dances.c @@ -1,65 +1,56 @@ #include "tap_dances.h" +#define NUM_OF_DIABLO_KEYS 4 +// define diablo macro timer variables +diablo_timer_t diablo_timer[NUM_OF_DIABLO_KEYS]; -//define diablo macro timer variables -diablo_timer_t diablo_timer[4]; - -uint8_t diablo_times[] = { 0, 0, 1, 3, 5, 10, 30 }; - -// has the correct number of seconds elapsed (as defined by diablo_times) -bool check_dtimer(uint8_t dtimer) { return (timer_elapsed(diablo_timer[dtimer].key_time) < (diablo_timer[dtimer].timer * 1000)) ? false : true; }; +// Set the default intervals. Always start with 0 so that it will disable on first hit. +// Otherwise, you will need to hit a bunch of times, or hit the "clear" command +uint8_t diablo_times[] = {0, 1, 3, 5, 10, 30}; // Cycle through the times for the macro, starting at 0, for disabled. -// Max of six values, so don't exceed void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) { - int index = (int)user_data; - if (state->count >= 7) { - diablo_timer[index].key_time = diablo_times[0]; + diable_keys_t *diablo_keys = (diable_keys_t *)user_data; + // Sets the keycode based on the index + diablo_timer[diablo_keys->index].keycode = diablo_keys->keycode; + + // if the tapdance is hit more than the number of elemints in the array, reset + if (state->count >= (sizeof(diablo_times) / sizeof(uint8_t))) { + diablo_timer[diablo_keys->index].key_interval = 0; reset_tap_dance(state); - } else { - diablo_timer[index].key_time = diablo_times[state->count]; + } else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one) + diablo_timer[diablo_keys->index].key_interval = diablo_times[state->count - 1]; } } -// One funtion to rule them all!! -#define ACTION_TAP_DANCE_DIABLO(arg) { \ +// clang-format off +// One function to rule them all!! Where the Magic Sauce lies +#define ACTION_TAP_DANCE_DIABLO(index, keycode) { \ .fn = { NULL, (void *)diablo_tapdance_master, NULL }, \ - .user_data = (void *)arg, \ + .user_data = (void *)&((diable_keys_t) { index, keycode }), \ } +// clang-format on -//Tap Dance Definitions +// Tap Dance Definitions, sets the index and the keycode. qk_tap_dance_action_t tap_dance_actions[] = { // tap once to disable, and more to enable timed micros - [TD_D3_1] = ACTION_TAP_DANCE_DIABLO(0), - [TD_D3_2] = ACTION_TAP_DANCE_DIABLO(1), - [TD_D3_3] = ACTION_TAP_DANCE_DIABLO(2), - [TD_D3_4] = ACTION_TAP_DANCE_DIABLO(3), + [TD_D3_1] = ACTION_TAP_DANCE_DIABLO(0, KC_1), + [TD_D3_2] = ACTION_TAP_DANCE_DIABLO(1, KC_2), + [TD_D3_3] = ACTION_TAP_DANCE_DIABLO(2, KC_3), + [TD_D3_4] = ACTION_TAP_DANCE_DIABLO(3, KC_4), }; -// Sends the key press to system, but only if on the Diablo layer -void send_diablo_keystroke(uint8_t diablo_key) { - if (IS_LAYER_ON(_DIABLO)) { - switch (diablo_key) { - case 0: - tap_code(KC_1); break; - case 1: - tap_code(KC_2); break; - case 2: - tap_code(KC_3); break; - case 3: - tap_code(KC_4); break; - } - } -} - // Checks each of the 4 timers/keys to see if enough time has elapsed -// Runs the "send string" command if enough time has passed, and resets the timer. void run_diablo_macro_check(void) { - uint8_t dtime; - for (dtime = 0; dtime < 4; dtime++) { - if (check_dtimer(dtime) && diablo_timer[dtime].key_time) { - diablo_timer[dtime].timer = timer_read(); - send_diablo_keystroke(dtime); + for (uint8_t index = 0; index < NUM_OF_DIABLO_KEYS; index++) { + // if key_interval is 0, it's disabled, so only run if it's set. If it's set, check the timer. + if (diablo_timer[index].key_interval && timer_elapsed(diablo_timer[index].timer) > (diablo_timer[index].key_interval * 1000)) { + // reset the timer, since enough time has passed + diablo_timer[index].timer = timer_read(); + // send keycode ONLY if we're on the diablo layer. + if (IS_LAYER_ON(_DIABLO)) { + tap_code(diablo_timer[index].keycode); + } } } } diff --git a/users/drashna/tap_dances.h b/users/drashna/tap_dances.h index 4a293b25820..44fa0b93487 100644 --- a/users/drashna/tap_dances.h +++ b/users/drashna/tap_dances.h @@ -1,22 +1,30 @@ #pragma once #include "drashna.h" -//define diablo macro timer variables +// define diablo macro timer variables extern uint8_t diablo_times[]; typedef struct { uint16_t timer; - uint8_t key_time; + uint8_t key_interval; + uint8_t keycode; } diablo_timer_t; -extern diablo_timer_t diablo_timer[4]; +typedef struct { + uint8_t index; + uint8_t keycode; +} diable_keys_t; + +extern diablo_timer_t diablo_timer[]; void run_diablo_macro_check(void); #ifdef TAP_DANCE_ENABLE +// clang-format off enum { TD_D3_1 = 0, TD_D3_2, TD_D3_3, TD_D3_4 }; -#endif // TAP_DANCE_ENABLE +// clang-format on +#endif // TAP_DANCE_ENABLE diff --git a/users/drashna/wrappers.h b/users/drashna/wrappers.h index 93f842f4b2b..a87247071f3 100644 --- a/users/drashna/wrappers.h +++ b/users/drashna/wrappers.h @@ -6,9 +6,10 @@ arguments, we need a wrapper in order for these definitions to be expanded before being used as arguments to the LAYOUT_xxx macro. */ #if (!defined(LAYOUT) && defined(KEYMAP)) -# define LAYOUT KEYMAP +# define LAYOUT KEYMAP #endif +// clang-format off #define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) #define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__) #define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__) @@ -135,6 +136,15 @@ NOTE: These are all the same length. If you do a search/replace #define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH +#define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT +#define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B +#define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q + +#define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U +#define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O // KC_I +#define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z + + #define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 #define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0 #define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 @@ -170,3 +180,5 @@ NOTE: These are all the same length. If you do a search/replace #define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5 #define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN #define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT + +// clang-format on From 3261c408e454dbc3cc2a1591ba62575036af19ad Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 22 Jul 2019 20:23:57 -0700 Subject: [PATCH 032/115] Add support for TAP_CODE_DELAY to Hold-Tap keys (#5400) * Add support for TAP_CODE_DELAY to Hold-Tap keys * Better handling for tap code delay and caps version --- tmk_core/common/action.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 285786cb7c2..5172e8650ad 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -44,6 +44,9 @@ int retro_tapping_counter = 0; #include #endif +#ifndef TAP_CODE_DELAY +# define TAP_CODE_DELAY 0 +#endif #ifndef TAP_HOLD_CAPS_DELAY # define TAP_HOLD_CAPS_DELAY 80 #endif @@ -330,6 +333,9 @@ void process_action(keyrecord_t *record, action_t action) } else { if (tap_count > 0) { dprint("MODS_TAP: Tap: unregister_code\n"); + if (action.layer_tap.code == KC_CAPS) { + wait_ms(TAP_HOLD_CAPS_DELAY); + } unregister_code(action.key.code); } else { dprint("MODS_TAP: No tap: add_mods\n"); @@ -522,7 +528,9 @@ void process_action(keyrecord_t *record, action_t action) dprint("KEYMAP_TAP_KEY: Tap: unregister_code\n"); if (action.layer_tap.code == KC_CAPS) { wait_ms(TAP_HOLD_CAPS_DELAY); - } + } else { + wait_ms(TAP_CODE_DELAY); + } unregister_code(action.layer_tap.code); } else { dprint("KEYMAP_TAP_KEY: No tap: Off on release\n"); @@ -618,6 +626,7 @@ void process_action(keyrecord_t *record, action_t action) if (event.pressed) { register_code(action.swap.code); } else { + wait_ms(TAP_CODE_DELAY); unregister_code(action.swap.code); *record = (keyrecord_t){}; // hack: reset tap mode } @@ -670,8 +679,7 @@ void process_action(keyrecord_t *record, action_t action) retro_tapping_counter = 0; } else { if (retro_tapping_counter == 2) { - register_code(action.layer_tap.code); - unregister_code(action.layer_tap.code); + tap_code(action.layer_tap.code); } retro_tapping_counter = 0; } @@ -858,12 +866,9 @@ void tap_code(uint8_t code) { register_code(code); if (code == KC_CAPS) { wait_ms(TAP_HOLD_CAPS_DELAY); - } - #if TAP_CODE_DELAY > 0 - else { + } else { wait_ms(TAP_CODE_DELAY); } - #endif unregister_code(code); } From 2e8cdb126e0d0830fa4303a672fbd95b914b72f1 Mon Sep 17 00:00:00 2001 From: mechmerlin Date: Mon, 22 Jul 2019 20:07:12 -0700 Subject: [PATCH 033/115] update docs based on fireworm's comments --- keyboards/unikorn/readme.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/keyboards/unikorn/readme.md b/keyboards/unikorn/readme.md index 953d5be7926..3175cddc2de 100644 --- a/keyboards/unikorn/readme.md +++ b/keyboards/unikorn/readme.md @@ -26,7 +26,11 @@ Flashing ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods. -**Reset Key:** Short the two holes labeled `FW_JP` beside the Tab key. At this time there is no reset key to press. +**Reset Key:** Short the two holes labeled `FW_JP` underneath the PCB, beside the Tab key while plugging in the keyboard. + +Do not confuse this with the LED holes of the switch in the `Tab` position. `FW_JP` is not reachable from the top as the plate blocks access to it. + +It is recommended to program a `RESET` key in your keymap. Windows: 1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash). From 8060e52946872a6d8335b323bfe9e4138ac50c81 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 22 Jul 2019 23:28:25 -0700 Subject: [PATCH 034/115] [Keyboard] Align Planck EZ config with ZSA/Ergodox config (#6371) --- keyboards/planck/ez/config.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index a252b252842..d007873bbaa 100644 --- a/keyboards/planck/ez/config.h +++ b/keyboards/planck/ez/config.h @@ -138,3 +138,14 @@ #define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL #define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +#define IGNORE_MOD_TAP_INTERRUPT + +#define TAPPING_TOGGLE 1 + +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 From c966da89da613fe6f2f28cc23e4acbb1f43559aa Mon Sep 17 00:00:00 2001 From: Will Sturgiss Date: Tue, 23 Jul 2019 02:59:12 -0400 Subject: [PATCH 035/115] [Keymap] Added wsturgiss keymap for mechmini2 (#4917) * basic layout v1.0 * changed KC_TRNS to _______ * most symbols are on double tap, except quote, that was cancer * better formatting and set toggle for game layer * added colors to layers to make knowing your current layer easy * have an empty macro working * enabled unicode * moved stuff to my folder and removed edits from communal files * cleanup * removed the game layer. Never used it * made changes requested by drashna and vomindoraan * got rid of some unnecessary code * got very basic unicode on mac working * added ctrl_esc * more changes as requested by noroadsleft * more leader additions, removed macros because leader stuff replaces that functionality * removed an old macro I forgot to remove earlier * final deletion at noroadsleft request * changed a line to explicitly specify a purple color. --- .../mechmini/v2/keymaps/wsturgiss/config.h | 11 ++ .../mechmini/v2/keymaps/wsturgiss/keymap.c | 106 ++++++++++++++++++ .../mechmini/v2/keymaps/wsturgiss/rules.mk | 11 ++ 3 files changed, 128 insertions(+) create mode 100755 keyboards/mechmini/v2/keymaps/wsturgiss/config.h create mode 100644 keyboards/mechmini/v2/keymaps/wsturgiss/keymap.c create mode 100755 keyboards/mechmini/v2/keymaps/wsturgiss/rules.mk diff --git a/keyboards/mechmini/v2/keymaps/wsturgiss/config.h b/keyboards/mechmini/v2/keymaps/wsturgiss/config.h new file mode 100755 index 00000000000..262c423cc41 --- /dev/null +++ b/keyboards/mechmini/v2/keymaps/wsturgiss/config.h @@ -0,0 +1,11 @@ +/* tapdance */ +#define TAPPING_TERM 180 + +/* space cadet stuff */ +#define LSPO_KEY KC_9 +#define RSPC_KEY KC_0 +#define DISABLE_SPACE_CADET_ROLLOVER + +/* leader stuff */ +#define LEADER_TIMEOUT 400 +#define LEADER_PER_KEY_TIMING 300 diff --git a/keyboards/mechmini/v2/keymaps/wsturgiss/keymap.c b/keyboards/mechmini/v2/keymaps/wsturgiss/keymap.c new file mode 100644 index 00000000000..f6f10872041 --- /dev/null +++ b/keyboards/mechmini/v2/keymaps/wsturgiss/keymap.c @@ -0,0 +1,106 @@ +#include QMK_KEYBOARD_H + +#define base 0 +#define raise 1 +#define lower 2 + +//Tap Dance Declarations +enum { + TD_SEMI_QUOT = 0, + TD_COMM_MINUS = 1, + TD_DOT_EQUAL = 2, + TD_SLASH_BACKSLASH = 3 +}; + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for ;, twice for ' -not using this currently + [TD_SEMI_QUOT] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_QUOT), + //Tap once for , twice for - + [TD_COMM_MINUS] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_MINUS), + //Tap once for . twice for = + [TD_DOT_EQUAL] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_EQUAL), + //Tap once for / twice for '\' + [TD_SLASH_BACKSLASH] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS) +}; + +#define CTRL_ESC CTL_T(KC_ESC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [base] = LAYOUT_2u_space_ortho( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTRL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TD(1), TD(2), TD(3), KC_RSPC, + KC_LCTL, KC_LEAD, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_VOLD, KC_MPLY, KC_VOLU, KC_GRV), + + [raise] = LAYOUT_2u_space_ortho( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_QUOT, _______, + _______, KC_HOME, KC_END, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, _______, KC_MNXT, EEP_RST), + + [lower] = LAYOUT_2u_space_ortho( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, KC_4, KC_5, KC_6, KC_KP_PLUS, _______, + _______, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, _______, _______, KC_1, KC_2, KC_3, KC_KP_MINUS, _______, + _______, _______, _______, _______, _______, _______, _______, KC_0, _______, _______, _______) + + +}; + +//Leader maps + + +LEADER_EXTERNS(); + +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY(KC_F) { + // Anything you can do in a macro. + SEND_STRING("QMK is awesome."); + } + //tableflip (LEADER - TF) + SEQ_TWO_KEYS(KC_T, KC_F) { + set_unicode_input_mode(UC_OSX); + send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B"); + } + //screencap (LEADER - SC) + SEQ_TWO_KEYS(KC_S, KC_C) { + SEND_STRING(SS_LGUI(SS_LSFT(SS_TAP(X_4)))); + } + //screencap (LEADER - TM) + SEQ_TWO_KEYS(KC_T, KC_M) { + set_unicode_input_mode(UC_OSX); + send_unicode_hex_string("2122"); + } + /* + SEQ_THREE_KEYS(KC_D, KC_D, KC_S) { + SEND_STRING("https://start.duckduckgo.com"SS_TAP(X_ENTER)); + } + */ + } +} + +//change colors and rgb modes on layer change +uint32_t layer_state_set_user(uint32_t state) { + switch (biton32(state)) { + case raise: + rgblight_mode_noeeprom(1); + rgblight_setrgb(0xc7, 0x00, 0xf4); + break; + case lower: + rgblight_mode_noeeprom(1); + rgblight_setrgb(0x00, 0xa3, 0x0d); + break; + default: // for any other layers, or the default layer + rgblight_mode_noeeprom(5); + rgblight_setrgb(0xFF, 0xB6, 0x00); + break; + } + return state; +}; + diff --git a/keyboards/mechmini/v2/keymaps/wsturgiss/rules.mk b/keyboards/mechmini/v2/keymaps/wsturgiss/rules.mk new file mode 100755 index 00000000000..a2c78f8db05 --- /dev/null +++ b/keyboards/mechmini/v2/keymaps/wsturgiss/rules.mk @@ -0,0 +1,11 @@ +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = yes # 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 = yes +TAP_DANCE_ENABLE = yes +UNICODE_ENABLE = yes +LEADER_ENABLE = yes From 7ec583e5efb276ce90a40a1df985de7d0d0b8f46 Mon Sep 17 00:00:00 2001 From: Jarred Steenvoorden Date: Tue, 23 Jul 2019 17:07:57 +1000 Subject: [PATCH 036/115] [Keymap] Jarred's Plaid keymap (#6049) * Add my plaid keymap * Move planck / plaid keymaps to common layout folder --- keyboards/planck/keymaps/jarred/keymap.c | 34 ------------------- keyboards/planck/keymaps/jarred/readme.md | 9 ----- layouts/community/ortho_4x12/jarred/keymap.c | 22 ++++++++++++ layouts/community/ortho_4x12/jarred/readme.md | 22 ++++++++++++ users/jarred/jarred.h | 1 + users/jarred/readme.md | 11 +++++- 6 files changed, 55 insertions(+), 44 deletions(-) delete mode 100644 keyboards/planck/keymaps/jarred/keymap.c delete mode 100644 keyboards/planck/keymaps/jarred/readme.md create mode 100644 layouts/community/ortho_4x12/jarred/keymap.c create mode 100644 layouts/community/ortho_4x12/jarred/readme.md diff --git a/keyboards/planck/keymaps/jarred/keymap.c b/keyboards/planck/keymaps/jarred/keymap.c deleted file mode 100644 index 5911669086c..00000000000 --- a/keyboards/planck/keymaps/jarred/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2018 Jarred Steenvoorden - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "planck.h" -#include "jarred.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = LAYOUT_planck_grid_wrapper(QWERTY_4x12), - [_GAME] = LAYOUT_planck_grid_wrapper(GAME_4x12), - [_LW] = LAYOUT_planck_grid_wrapper(LOWER_4x12), - [_NV] = LAYOUT_planck_grid_wrapper(NAV_4x12), - [_NP] = LAYOUT_planck_grid_wrapper(NUMPAD_4x12), - [_MS] = LAYOUT_planck_grid_wrapper(MOUSE_4x12) -}; - -#ifdef RGB_MATRIX_H -void rgb_matrix_indicators_user(void) { - // Disable light in middle of 2U position - rgb_matrix_set_color(42, 0, 0, 0); -} -#endif diff --git a/keyboards/planck/keymaps/jarred/readme.md b/keyboards/planck/keymaps/jarred/readme.md deleted file mode 100644 index e6be5641226..00000000000 --- a/keyboards/planck/keymaps/jarred/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Jarred's Planck Layout - -Check out [user space readme](../../../../users/jarred/readme.md) for more info - -# Build - -``` -make planck/rev4:jarred:dfu -``` diff --git a/layouts/community/ortho_4x12/jarred/keymap.c b/layouts/community/ortho_4x12/jarred/keymap.c new file mode 100644 index 00000000000..4be5f9ed695 --- /dev/null +++ b/layouts/community/ortho_4x12/jarred/keymap.c @@ -0,0 +1,22 @@ +#include QMK_KEYBOARD_H +#include "jarred.h" + +#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = LAYOUT_ortho_4x12_wrapper(QWERTY_4x12), + [_GAME] = LAYOUT_ortho_4x12_wrapper(GAME_4x12), + [_LW] = LAYOUT_ortho_4x12_wrapper(LOWER_4x12), + [_NV] = LAYOUT_ortho_4x12_wrapper(NAV_4x12), + [_NP] = LAYOUT_ortho_4x12_wrapper(NUMPAD_4x12), + [_MS] = LAYOUT_ortho_4x12_wrapper(MOUSE_4x12) +}; + +#ifdef RGB_MATRIX_ENABLE +void rgb_matrix_indicators_user(void) { + #ifdef KEYBOARD_planck_light + // Disable light in middle of 2U position of Planck Light + rgb_matrix_set_color(42, 0, 0, 0); + #endif +} +#endif diff --git a/layouts/community/ortho_4x12/jarred/readme.md b/layouts/community/ortho_4x12/jarred/readme.md new file mode 100644 index 00000000000..05f1ff08660 --- /dev/null +++ b/layouts/community/ortho_4x12/jarred/readme.md @@ -0,0 +1,22 @@ +# Jarred's ortho 4x12 keymap + +[User space](../../../../users/jarred/readme.md) + +Boards used on: +- [Planck](../../../../keyboards/planck/readme.md) +- [Plaid](../../../../keyboards/plaid/readme.md) + +# Plaid build notes + +Enter Bootloader: +Press Reset / Press Boot / Release Reset / Release Boot + +Install libusbK driver for usbasp: +https://zadig.akeo.ie/ + +make plaid:jarred:program + +Press Reset + +https://github.com/hsgw/plaid/blob/master/doc/en/bootloader.md +https://github.com/hsgw/plaid/blob/master/doc/en/firmware.md diff --git a/users/jarred/jarred.h b/users/jarred/jarred.h index ae48adb70c1..49b1253be5f 100644 --- a/users/jarred/jarred.h +++ b/users/jarred/jarred.h @@ -50,6 +50,7 @@ enum { // Wrappers #define LAYOUT_planck_grid_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__) +#define LAYOUT_plaid_grid_wrapper(...) LAYOUT_plaid_grid(__VA_ARGS__) #define LAYOUT_atreus62_grid_wrapper(...) LAYOUT(__VA_ARGS__) #define LAYOUT_ergotravel_grid_wrapper(...) LAYOUT(__VA_ARGS__) diff --git a/users/jarred/readme.md b/users/jarred/readme.md index 9d4e926e743..e2f44219b01 100644 --- a/users/jarred/readme.md +++ b/users/jarred/readme.md @@ -2,4 +2,13 @@ Keymaps: -- [Planck](../../keyboards/planck/keymaps/jarred/readme.md) +- [Ortho 4x12](../../layouts/community/ortho_4x12/jarred/readme.md) + +- [CRKBD](../../keyboards/crkbd/keymaps/jarred/readme.md) +- [Atreus 62](../../keyboards/ergotravel/keymaps/jarred/readme.md) +- [ErgoTravel](../../keyboards/ergotravel/keymaps/jarred/readme.md) +- [xd75](../../keyboards/xd75/keymaps/jarred/readme.md) + +- [satan](../../keyboards/satan/keymaps/jarred/readme.md) +- [dz60](../../keyboards/dz60/keymaps/jarred/readme.md) +- [org60](../../keyboards/org60/keymaps/jarred/readme.md) From b1691ba696db90f0d9143a8e0213a2b93434c9b1 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 23 Jul 2019 14:11:37 +0100 Subject: [PATCH 037/115] Fix MATRIX_X_PINS_RIGHT ARM compilation (#6395) --- quantum/split_common/matrix.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quantum/split_common/matrix.c b/quantum/split_common/matrix.c index 3c3daf3d3b5..41a15ace4e4 100644 --- a/quantum/split_common/matrix.c +++ b/quantum/split_common/matrix.c @@ -253,13 +253,13 @@ void matrix_init(void) { // Set pinout for right half if pinout for that half is defined if (!isLeftHand) { #ifdef MATRIX_ROW_PINS_RIGHT - const uint8_t row_pins_right[MATRIX_ROWS] = MATRIX_ROW_PINS_RIGHT; + const pin_t row_pins_right[MATRIX_ROWS] = MATRIX_ROW_PINS_RIGHT; for (uint8_t i = 0; i < MATRIX_ROWS; i++) { row_pins[i] = row_pins_right[i]; } #endif #ifdef MATRIX_COL_PINS_RIGHT - const uint8_t col_pins_right[MATRIX_COLS] = MATRIX_COL_PINS_RIGHT; + const pin_t col_pins_right[MATRIX_COLS] = MATRIX_COL_PINS_RIGHT; for (uint8_t i = 0; i < MATRIX_COLS; i++) { col_pins[i] = col_pins_right[i]; } From 207fde997f11bfed92087327b91cc16ed0fbb3dc Mon Sep 17 00:00:00 2001 From: Danny Date: Tue, 23 Jul 2019 18:06:47 -0400 Subject: [PATCH 038/115] [Keyboard] Add ergodicity (#6396) * Initial addition of Ergodicity * Add QMK configurator JSON --- keyboards/keebio/ergodicity/config.h | 233 ++++++++++++++++++ keyboards/keebio/ergodicity/ergodicity.c | 51 ++++ keyboards/keebio/ergodicity/ergodicity.h | 41 +++ keyboards/keebio/ergodicity/info.json | 82 ++++++ .../ergodicity/keymaps/default/config.h | 19 ++ .../ergodicity/keymaps/default/keymap.c | 73 ++++++ .../ergodicity/keymaps/default/readme.md | 1 + keyboards/keebio/ergodicity/readme.md | 15 ++ keyboards/keebio/ergodicity/rules.mk | 80 ++++++ 9 files changed, 595 insertions(+) create mode 100644 keyboards/keebio/ergodicity/config.h create mode 100644 keyboards/keebio/ergodicity/ergodicity.c create mode 100644 keyboards/keebio/ergodicity/ergodicity.h create mode 100644 keyboards/keebio/ergodicity/info.json create mode 100644 keyboards/keebio/ergodicity/keymaps/default/config.h create mode 100644 keyboards/keebio/ergodicity/keymaps/default/keymap.c create mode 100644 keyboards/keebio/ergodicity/keymaps/default/readme.md create mode 100644 keyboards/keebio/ergodicity/readme.md create mode 100644 keyboards/keebio/ergodicity/rules.mk diff --git a/keyboards/keebio/ergodicity/config.h b/keyboards/keebio/ergodicity/config.h new file mode 100644 index 00000000000..a743816276f --- /dev/null +++ b/keyboards/keebio/ergodicity/config.h @@ -0,0 +1,233 @@ +/* +Copyright 2019 Keebio + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0xCB10 +#define PRODUCT_ID 0x125F +#define DEVICE_VER 0x0001 +#define MANUFACTURER Keebio +#define PRODUCT Ergodicity +#define DESCRIPTION Low-profile ergo 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, C7, B6, B4 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, D7, D6, D4, D3, D2, D1, D0, B7, B3 } +#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 B5 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 7 + +#define RGB_DI_PIN B2 +#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 +#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_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 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/keebio/ergodicity/ergodicity.c b/keyboards/keebio/ergodicity/ergodicity.c new file mode 100644 index 00000000000..0bbcf611784 --- /dev/null +++ b/keyboards/keebio/ergodicity/ergodicity.c @@ -0,0 +1,51 @@ +/* Copyright 2019 Keebio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "ergodicity.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 + + 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); +} + +*/ diff --git a/keyboards/keebio/ergodicity/ergodicity.h b/keyboards/keebio/ergodicity/ergodicity.h new file mode 100644 index 00000000000..156ad828a37 --- /dev/null +++ b/keyboards/keebio/ergodicity/ergodicity.h @@ -0,0 +1,41 @@ +/* Copyright 2019 Keebio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 LAYOUT( \ + kA1, kA2, kA3, kE3, kA4, kA5, kA6, kA7, kA8, kA9, kA10, kA11, kA12, kA13, kA15, \ + kB1, kB2, kB3, kB4, kB5, kB6, kB7, kB8, kB9, kB10, kB11, kB12, kB13, kB14, kB15, \ + kC1, kC2, kC3, kC4, kC5, kC6, kC7, kC8, kC9, kC10, kC11, kC12, kC13, kC15, \ + kD2, kD3, kD4, kD5, kD6, kD7, kD8, kD9, kD10, kD11, kD12, kD13, kD14, kD15, \ + kE2, kE4, kE6, kE7, kE9, kE11, kE15 \ +) \ +{ \ + { kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9, kA10, kA11, kA12, kA13, KC_NO, kA15 }, \ + { kB1, kB2, kB3, kB4, kB5, kB6, kB7, kB8, kB9, kB10, kB11, kB12, kB13, kB14, kB15 }, \ + { kC1, kC2, kC3, kC4, kC5, kC6, kC7, kC8, kC9, kC10, kC11, kC12, kC13, KC_NO, kC15 }, \ + { KC_NO, kD2, kD3, kD4, kD5, kD6, kD7, kD8, kD9, kD10, kD11, kD12, kD13, kD14, kD15 }, \ + { KC_NO, kE2, kE3, kE4, KC_NO, kE6, kE7, KC_NO, kE9, KC_NO, kE11, KC_NO, KC_NO, kE15 } \ +} diff --git a/keyboards/keebio/ergodicity/info.json b/keyboards/keebio/ergodicity/info.json new file mode 100644 index 00000000000..b019da3aaec --- /dev/null +++ b/keyboards/keebio/ergodicity/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "Ergodicity", + "url": "https://keeb.io", + "maintainer": "Keebio", + "width": 19.5, + "height": 5.25, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"`", "x":1.75, "y":0.25}, + {"label":"1", "x":2.75, "y":0.25}, + {"label":"2", "x":3.75, "y":0}, + {"label":"3", "x":4.75, "y":0.25}, + {"label":"4", "x":5.75, "y":0.25}, + {"label":"5", "x":6.75, "y":0.25}, + {"label":"6", "x":7.75, "y":0.25}, + {"label":"7", "x":11, "y":0.25}, + {"label":"8", "x":12, "y":0.25}, + {"label":"9", "x":13, "y":0.25}, + {"label":"0", "x":14, "y":0.25}, + {"label":"-", "x":15, "y":0}, + {"label":"=", "x":16, "y":0.25}, + {"label":"Backspace", "x":17, "y":0.25, "w":2}, + + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.5, "y":1.25, "w":1.5}, + {"label":"Q", "x":3, "y":1.25}, + {"label":"W", "x":4.25, "y":1.25}, + {"label":"E", "x":5.25, "y":1.25}, + {"label":"R", "x":6.25, "y":1.25}, + {"label":"T", "x":7.25, "y":1.25}, + {"label":"Y", "x":10.5, "y":1.25}, + {"label":"U", "x":11.5, "y":1.25}, + {"label":"I", "x":12.5, "y":1.25}, + {"label":"O", "x":13.5, "y":1.25}, + {"label":"P", "x":14.75, "y":1.25}, + {"label":"[", "x":15.75, "y":1.25}, + {"label":"]", "x":16.75, "y":1.25}, + {"label":"Backslash", "x":17.75, "y":1.25, "w":1.5}, + + {"label":"PgDn", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.25, "y":2.25, "w":2}, + {"label":"A", "x":3.25, "y":2.25}, + {"label":"S", "x":4.5, "y":2.25}, + {"label":"D", "x":5.5, "y":2.25}, + {"label":"F", "x":6.5, "y":2.25}, + {"label":"G", "x":7.5, "y":2.25}, + {"label":"H", "x":10.75, "y":2.25}, + {"label":"J", "x":11.75, "y":2.25}, + {"label":"K", "x":12.75, "y":2.25}, + {"label":"L", "x":13.75, "y":2.25}, + {"label":";", "x":15.25, "y":2.25}, + {"label":"'", "x":16.25, "y":2.25}, + {"label":"Enter", "x":17.25, "y":2.25, "w":2}, + + {"label":"Shift", "x":1.25, "y":3.25, "w":2.5}, + {"label":"Z", "x":3.75, "y":3.25}, + {"label":"X", "x":5, "y":3.25}, + {"label":"C", "x":6, "y":3.25}, + {"label":"V", "x":7, "y":3.25}, + {"label":"B", "x":8, "y":3.25}, + {"label":"B", "x":10.25, "y":3.25}, + {"label":"N", "x":11.25, "y":3.25}, + {"label":"M", "x":12.25, "y":3.25}, + {"label":",", "x":13.25, "y":3.25}, + {"label":".", "x":14.75, "y":3.25}, + {"label":"/", "x":15.75, "y":3.25}, + {"label":"Shift", "x":16.75, "y":3.25, "w":1.5}, + {"label":"Fn", "x":18.25, "y":3.25}, + + {"label":"Alt", "x":1.25, "y":4.25, "w":1.5}, + {"label":"Gui", "x":5, "y":4.25, "w":1.5}, + {"label":"Space", "x":6.5, "y":4.25, "w":2}, + {"label":"Menu", "x":8.5, "y":4.25}, + {"label":"Space", "x":10.25, "y":4.25, "w":2.5}, + {"label":"Alt", "x":12.75, "y":4.25, "w":1.5}, + {"label":"Fn", "x":17.75, "y":4.25, "w":1.5} + ] + } + } +} diff --git a/keyboards/keebio/ergodicity/keymaps/default/config.h b/keyboards/keebio/ergodicity/keymaps/default/config.h new file mode 100644 index 00000000000..6079c0b0f3e --- /dev/null +++ b/keyboards/keebio/ergodicity/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 Keebio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// place overrides here diff --git a/keyboards/keebio/ergodicity/keymaps/default/keymap.c b/keyboards/keebio/ergodicity/keymaps/default/keymap.c new file mode 100644 index 00000000000..b33031ca5ec --- /dev/null +++ b/keyboards/keebio/ergodicity/keymaps/default/keymap.c @@ -0,0 +1,73 @@ +/* Copyright 2019 Keebio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 +enum custom_keycodes { + QMKBEST = SAFE_RANGE, + QMKURL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_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_B, 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( + _______, _______, 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_MOD, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + BL_STEP, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______ \ + ), +}; + +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/keebio/ergodicity/keymaps/default/readme.md b/keyboards/keebio/ergodicity/keymaps/default/readme.md new file mode 100644 index 00000000000..906b26c649d --- /dev/null +++ b/keyboards/keebio/ergodicity/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for ergodicity diff --git a/keyboards/keebio/ergodicity/readme.md b/keyboards/keebio/ergodicity/readme.md new file mode 100644 index 00000000000..0f841d6e3eb --- /dev/null +++ b/keyboards/keebio/ergodicity/readme.md @@ -0,0 +1,15 @@ +# Ergodicity + +![ergodicity](imgur.com image replace me!) + +A short description of the keyboard/project + +Keyboard Maintainer: [nooges/bakingpy](https://github.com/nooges) +Hardware Supported: Ergodicity PCB w/ATmega32u4 +Hardware Availability: [Keebio](https://keeb.io) + +Make example for this keyboard (after setting up your build environment): + + make keebio/ergodicity:default:dfu + +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/keebio/ergodicity/rules.mk b/keyboards/keebio/ergodicity/rules.mk new file mode 100644 index 00000000000..974f75afdf2 --- /dev/null +++ b/keyboards/keebio/ergodicity/rules.mk @@ -0,0 +1,80 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +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 +# 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 +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +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 = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +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 (+400) From 827f8ce1bc83caef8255968367474ed9d6987b14 Mon Sep 17 00:00:00 2001 From: Danny Date: Tue, 23 Jul 2019 18:07:39 -0400 Subject: [PATCH 039/115] [Keyboard] Add QMK configurator JSON for Alice PCB (#6397) --- keyboards/projectkb/alice/info.json | 83 +++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 keyboards/projectkb/alice/info.json diff --git a/keyboards/projectkb/alice/info.json b/keyboards/projectkb/alice/info.json new file mode 100644 index 00000000000..16d2bd7f491 --- /dev/null +++ b/keyboards/projectkb/alice/info.json @@ -0,0 +1,83 @@ +{ + "keyboard_name": "Alice", + "url": "https://store.projectkeyboard.com/", + "maintainer": "qmk", + "width": 19.75, + "height": 5.25, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"`", "x":1.75, "y":0.25}, + {"label":"1", "x":2.75, "y":0.25}, + {"label":"2", "x":3.75, "y":0}, + {"label":"3", "x":4.75, "y":0.25}, + {"label":"4", "x":5.75, "y":0.25}, + {"label":"5", "x":6.75, "y":0.25}, + {"label":"6", "x":7.75, "y":0.25}, + {"label":"7", "x":11, "y":0.25}, + {"label":"8", "x":12, "y":0.25}, + {"label":"9", "x":13, "y":0.25}, + {"label":"0", "x":14, "y":0.25}, + {"label":"-", "x":15, "y":0}, + {"label":"=", "x":16, "y":0.25}, + {"label":"Del", "x":17, "y":0.25}, + {"label":"Backspace", "x":18, "y":0.25}, + + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.5, "y":1.25, "w":1.5}, + {"label":"Q", "x":3, "y":1.25}, + {"label":"W", "x":4.25, "y":1.25}, + {"label":"E", "x":5.25, "y":1.25}, + {"label":"R", "x":6.25, "y":1.25}, + {"label":"T", "x":7.25, "y":1.25}, + {"label":"Y", "x":10.5, "y":1.25}, + {"label":"U", "x":11.5, "y":1.25}, + {"label":"I", "x":12.5, "y":1.25}, + {"label":"O", "x":13.5, "y":1.25}, + {"label":"P", "x":14.75, "y":1.25}, + {"label":"{", "x":15.75, "y":1.25}, + {"label":"}", "x":16.75, "y":1.25}, + {"label":"|", "x":17.75, "y":1.25, "w":1.5}, + + {"label":"PgDn", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.5, "y":2.25, "w":1.75}, + {"label":"A", "x":3.25, "y":2.25}, + {"label":"S", "x":4.5, "y":2.25}, + {"label":"D", "x":5.5, "y":2.25}, + {"label":"F", "x":6.5, "y":2.25}, + {"label":"G", "x":7.5, "y":2.25}, + {"label":"H", "x":10.75, "y":2.25}, + {"label":"J", "x":11.75, "y":2.25}, + {"label":"K", "x":12.75, "y":2.25}, + {"label":"L", "x":13.75, "y":2.25}, + {"label":":", "x":15.25, "y":2.25}, + {"label":"\"", "x":16.25, "y":2.25}, + {"label":"Enter", "x":17.25, "y":2.25, "w":2.25}, + + {"label":"Shift", "x":1.5, "y":3.25, "w":2.25}, + {"label":"Z", "x":3.75, "y":3.25}, + {"label":"X", "x":5, "y":3.25}, + {"label":"C", "x":6, "y":3.25}, + {"label":"V", "x":7, "y":3.25}, + {"label":"B", "x":8, "y":3.25}, + {"label":"Fn", "x":10.25, "y":3.25}, + {"label":"N", "x":11.25, "y":3.25}, + {"label":"M", "x":12.25, "y":3.25}, + {"label":"<", "x":13.25, "y":3.25}, + {"label":">", "x":15, "y":3.25}, + {"label":"?", "x":16, "y":3.25}, + {"label":"Shift", "x":17, "y":3.25, "w":1.75}, + {"label":"Fn", "x":18.75, "y":3.25}, + + {"label":"Ctrl", "x":1.5, "y":4.25, "w":1.5}, + {"label":"Alt", "x":5, "y":4.25, "w":1.5}, + {"label":"Space", "x":6.5, "y":4.25, "w":2}, + {"label":"Menu", "x":8.5, "y":4.25}, + {"label":"Space", "x":10.25, "y":4.25, "w":2.25}, + {"label":"Alt", "x":12.5, "y":4.25, "w":1.5}, + {"label":"Ctrl", "x":18, "y":4.25, "w":1.5} + ] + } + } +} From 4381dea621659cb2ddd0ba06f18a8f0722638476 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 23 Jul 2019 19:31:24 -0700 Subject: [PATCH 040/115] QMK Configurator fix for ProjectKB Alice info.json (#6400) File was referencing an incorrect layout macro name. --- keyboards/projectkb/alice/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/projectkb/alice/info.json b/keyboards/projectkb/alice/info.json index 16d2bd7f491..fbeef50cc31 100644 --- a/keyboards/projectkb/alice/info.json +++ b/keyboards/projectkb/alice/info.json @@ -5,7 +5,7 @@ "width": 19.75, "height": 5.25, "layouts": { - "LAYOUT": { + "LAYOUT_default": { "layout": [ {"label":"Esc", "x":0.5, "y":0}, {"label":"`", "x":1.75, "y":0.25}, From 0a7222b703c9d2ec166f3a9877171678059afbf8 Mon Sep 17 00:00:00 2001 From: Kosuke Adachi Date: Thu, 25 Jul 2019 09:57:22 +0900 Subject: [PATCH 041/115] [Keymap] Refactor the default keymap for crkbd and add a new keymap for me (#6404) * Remap default keys * Remove self defined keys * Remove unnedessary breaks * Unable read_keylogs * Add a keymap for foostan * Remove unnecessary spaces * Remove "include" that it automatically including --- keyboards/crkbd/keymaps/default/keymap.c | 66 ++----- keyboards/crkbd/keymaps/foostan/config.h | 44 +++++ keyboards/crkbd/keymaps/foostan/keymap.c | 241 +++++++++++++++++++++++ keyboards/crkbd/keymaps/foostan/rules.mk | 10 + 4 files changed, 316 insertions(+), 45 deletions(-) create mode 100644 keyboards/crkbd/keymaps/foostan/config.h create mode 100644 keyboards/crkbd/keymaps/foostan/keymap.c create mode 100644 keyboards/crkbd/keymaps/foostan/rules.mk diff --git a/keyboards/crkbd/keymaps/default/keymap.c b/keyboards/crkbd/keymaps/default/keymap.c index 5bb89d2594a..348da2c7628 100644 --- a/keyboards/crkbd/keymaps/default/keymap.c +++ b/keyboards/crkbd/keymaps/default/keymap.c @@ -1,5 +1,4 @@ #include QMK_KEYBOARD_H -#include "bootloader.h" #ifdef PROTOCOL_LUFA #include "lufa.h" #include "split_util.h" @@ -39,70 +38,52 @@ enum macro_keycodes { KC_SAMPLEMACRO, }; -#define KC______ KC_TRNS -#define KC_XXXXX KC_NO -#define KC_LOWER LOWER -#define KC_RAISE RAISE -#define KC_RST RESET -#define KC_LRST RGBRST -#define KC_LTOG RGB_TOG -#define KC_LHUI RGB_HUI -#define KC_LHUD RGB_HUD -#define KC_LSAI RGB_SAI -#define KC_LSAD RGB_SAD -#define KC_LVAI RGB_VAI -#define KC_LVAD RGB_VAD -#define KC_LMOD RGB_MOD -#define KC_CTLTB CTL_T(KC_TAB) -#define KC_GUIEI GUI_T(KC_LANG2) -#define KC_ALTKN ALT_T(KC_LANG1) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( \ + [_QWERTY] = LAYOUT( \ //,-----------------------------------------. ,-----------------------------------------. - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,\ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_BSPC,\ //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, A, S, D, F, G, H, J, K, L, SCLN, QUOT,\ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT,\ //|------+------+------+------+------+------| |------+------+------+------+------+------| - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT,\ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_RSFT,\ //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ + KC_LGUI, LOWER,KC_SPC, KC_ENT, RAISE,KC_RALT \ //`--------------------' `--------------------' ), - [_LOWER] = LAYOUT_kc( \ + [_LOWER] = LAYOUT( \ //,-----------------------------------------. ,-----------------------------------------. - ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,\ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_BSPC,\ //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, XXXXX,\ + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT,KC_NO,KC_NO,\ //|------+------+------+------+------+------| |------+------+------+------+------+------| - LSFT, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, XXXXX,\ + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\ //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ + KC_LGUI, LOWER,KC_SPC, KC_ENT, RAISE,KC_RALT \ //`--------------------' `--------------------' ), - [_RAISE] = LAYOUT_kc( \ + [_RAISE] = LAYOUT( \ //,-----------------------------------------. ,-----------------------------------------. - ESC, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, BSPC,\ + KC_ESC,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,\ //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, MINS, EQL, LCBR, RCBR, PIPE, GRV,\ + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS,KC_EQL,KC_LCBR,KC_RCBR,KC_PIPE,KC_GRV,\ //|------+------+------+------+------+------| |------+------+------+------+------+------| - LSFT, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, UNDS, PLUS, LBRC, RBRC, BSLS, TILD,\ + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS,KC_PLUS,KC_LBRC,KC_RBRC,KC_BSLS,KC_TILD,\ //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ + KC_LGUI, LOWER,KC_SPC, KC_ENT, RAISE,KC_RALT \ //`--------------------' `--------------------' ), - [_ADJUST] = LAYOUT_kc( \ + [_ADJUST] = LAYOUT( \ //,-----------------------------------------. ,-----------------------------------------. - RST, LRST, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + RESET,RGBRST, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\ //|------+------+------+------+------+------| |------+------+------+------+------+------| - LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + RGB_TOG,RGB_HUI,RGB_SAI,RGB_VAI,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\ //|------+------+------+------+------+------| |------+------+------+------+------+------| - LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + RGB_MOD,RGB_HUD,RGB_SAD,RGB_VAD,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\ //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ + KC_LGUI, LOWER,KC_SPC, KC_ENT, RAISE,KC_RALT \ //`--------------------' `--------------------' ) }; @@ -157,7 +138,7 @@ void matrix_render_user(struct CharacterMatrix *matrix) { // If you want to change the display of OLED, you need to change here matrix_write_ln(matrix, read_layer_state()); matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); + //matrix_write_ln(matrix, read_keylogs()); //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); //matrix_write_ln(matrix, read_host_led_state()); //matrix_write_ln(matrix, read_timelog()); @@ -195,7 +176,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { persistent_default_layer_set(1UL<<_QWERTY); } return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -205,7 +185,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); } return false; - break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); @@ -215,7 +194,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); } return false; - break; case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); @@ -223,7 +201,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_off(_ADJUST); } return false; - break; case RGB_MOD: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { @@ -233,7 +210,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #endif return false; - break; case RGBRST: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { diff --git a/keyboards/crkbd/keymaps/foostan/config.h b/keyboards/crkbd/keymaps/foostan/config.h new file mode 100644 index 00000000000..644e8136509 --- /dev/null +++ b/keyboards/crkbd/keymaps/foostan/config.h @@ -0,0 +1,44 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define SSD1306OLED + +#define USE_SERIAL_PD2 + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 27 +#define RGBLIGHT_LIMIT_VAL 120 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/crkbd/keymaps/foostan/keymap.c b/keyboards/crkbd/keymaps/foostan/keymap.c new file mode 100644 index 00000000000..5235b783637 --- /dev/null +++ b/keyboards/crkbd/keymaps/foostan/keymap.c @@ -0,0 +1,241 @@ +#include QMK_KEYBOARD_H +#ifdef PROTOCOL_LUFA + #include "lufa.h" + #include "split_util.h" +#endif +#ifdef SSD1306OLED + #include "ssd1306.h" +#endif + +extern keymap_config_t keymap_config; + +#ifdef RGBLIGHT_ENABLE +//Following line allows macro to read current RGB settings +extern rgblight_config_t rgblight_config; +#endif + +extern uint8_t is_master; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _LOWER 1 +#define _RAISE 2 +#define _ADJUST 3 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, + BACKLIT, + RGBRST +}; + +enum macro_keycodes { + KC_SAMPLEMACRO, +}; + +#define KC______ KC_TRNS +#define KC_XXXXX KC_NO +#define KC_LOWER LOWER +#define KC_RAISE RAISE +#define KC_RST RESET +#define KC_LRST RGBRST +#define KC_LTOG RGB_TOG +#define KC_LHUI RGB_HUI +#define KC_LHUD RGB_HUD +#define KC_LSAI RGB_SAI +#define KC_LSAD RGB_SAD +#define KC_LVAI RGB_VAI +#define KC_LVAD RGB_VAD +#define KC_LMOD RGB_MOD +#define KC_GUIEI GUI_T(KC_LANG2) +#define KC_ALTKN ALT_T(KC_LANG1) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ESC,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ + //`--------------------' `--------------------' + ), + + [_LOWER] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + TAB, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + LCTL, F1, F2, F3, F4, F5, LEFT, DOWN, UP, RIGHT, XXXXX, XXXXX,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + LSFT, F6, F7, F8, F9, F10, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ + //`--------------------' `--------------------' + ), + + [_RAISE] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + TAB, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, BSPC,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + LCTL, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, MINS, EQL, LCBR, RCBR, PIPE, GRV,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + LSFT, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, UNDS, PLUS, LBRC, RBRC, BSLS, TILD,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ + //`--------------------' `--------------------' + ), + + [_ADJUST] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + RST, LRST, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ + //`--------------------' `--------------------' + ) +}; + +int RGB_current_mode; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +// Setting ADJUST layer RGB back to default +void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + layer_on(layer3); + } else { + layer_off(layer3); + } +} + +void matrix_init_user(void) { + #ifdef RGBLIGHT_ENABLE + RGB_current_mode = rgblight_config.mode; + #endif + //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h + #ifdef SSD1306OLED + iota_gfx_init(!has_usb()); // turns on the display + #endif +} + +//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h +#ifdef SSD1306OLED + +// When add source files to SRC in rules.mk, you can use functions. +const char *read_layer_state(void); +const char *read_logo(void); +void set_keylog(uint16_t keycode, keyrecord_t *record); +const char *read_keylog(void); +const char *read_keylogs(void); + +// const char *read_mode_icon(bool swap); +// const char *read_host_led_state(void); +// void set_timelog(void); +// const char *read_timelog(void); + +void matrix_scan_user(void) { + iota_gfx_task(); +} + +void matrix_render_user(struct CharacterMatrix *matrix) { + if (is_master) { + // If you want to change the display of OLED, you need to change here + matrix_write_ln(matrix, read_layer_state()); + matrix_write_ln(matrix, read_keylog()); + matrix_write_ln(matrix, read_keylogs()); + //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); + //matrix_write_ln(matrix, read_host_led_state()); + //matrix_write_ln(matrix, read_timelog()); + } else { + matrix_write(matrix, read_logo()); + } +} + +void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { + if (memcmp(dest->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 + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { +#ifdef SSD1306OLED + set_keylog(keycode, record); +#endif + // set_timelog(); + } + + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); + } + return false; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + case RGB_MOD: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_config.mode; + } + #endif + return false; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + RGB_current_mode = rgblight_config.mode; + } + #endif + break; + } + return true; +} diff --git a/keyboards/crkbd/keymaps/foostan/rules.mk b/keyboards/crkbd/keymaps/foostan/rules.mk new file mode 100644 index 00000000000..f84e5b2af86 --- /dev/null +++ b/keyboards/crkbd/keymaps/foostan/rules.mk @@ -0,0 +1,10 @@ + +# If you want to change the display of OLED, you need to change here +SRC += ./lib/glcdfont.c \ + ./lib/rgb_state_reader.c \ + ./lib/layer_state_reader.c \ + ./lib/logo_reader.c \ + ./lib/keylogger.c \ + # ./lib/mode_icon_reader.c \ + # ./lib/host_led_state_reader.c \ + # ./lib/timelogger.c \ From 1ab008eabd10a4c295f7e792033f8504e441f3ac Mon Sep 17 00:00:00 2001 From: Alex Mayer Date: Thu, 25 Jul 2019 10:55:53 -0400 Subject: [PATCH 042/115] 1up60hse: Add Layer Diagrams (#6408) --- .../1up60hse/keymaps/default/keymap.c | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/default/keymap.c b/keyboards/1upkeyboards/1up60hse/keymaps/default/keymap.c index 39473f60673..97bece94b32 100644 --- a/keyboards/1upkeyboards/1up60hse/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/1up60hse/keymaps/default/keymap.c @@ -17,6 +17,19 @@ #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 | - | = | Backspace | + * |-----------------------------------------------------------------------------------------+ + * | 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 | L1 | 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, @@ -25,6 +38,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL ), + /* Function + * ,-----------------------------------------------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del | + * |-----------------------------------------------------------------------------------------+ + * | | | Up | | | | | | | |PrtSc|ScrLk|Pause| | + * |-----------------------------------------------------------------------------------------+ + * | |Left |Down |Right| | | | | | Ins |Home |PgUp | | + * |-----------------------------------------------------------------------------------------+ + * | |VolUp|VolDn|VolMu| | | | | | End |PgDn | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | L2 | | | + * `-----------------------------------------------------------------------------------------' + */ [1] = LAYOUT_60_ansi( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, @@ -33,6 +59,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS ), + /* RGB + * ,-----------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | Reset | + * |-----------------------------------------------------------------------------------------+ + * | BL Tog |BLInc|BLDec|BLStp| | | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | RGB Tog |Mode |Hue I|Sat I|Val I|Spd I|Plain|Breat|Rnbow|Swirl| | | | + * |-----------------------------------------------------------------------------------------+ + * | |RMode|Hue D|Sat D|Val D|Spd D|Snake|Knigh|Xmas |Gradi| | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | | + * `-----------------------------------------------------------------------------------------' + */ [2] = LAYOUT_60_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, From a747953dfae85d3bdfdfe205fc3d4ae6f8d1fe05 Mon Sep 17 00:00:00 2001 From: thomas-d-11 <41303137+thomas-d-11@users.noreply.github.com> Date: Thu, 25 Jul 2019 13:53:19 -0500 Subject: [PATCH 043/115] [Docs] Add Sections and MO(layer)/TG(layer) Example (#6308) * Add Sections and MO(layer)/TG(layer) Example Major changes: 1. Added sub-section headings to the portion before the examples. 2. Added a new Example 6, that allows MO(layer) and TG(layer) functionality to be embedded within tap dance functions. Minor Changes: 1. Edited some text to better fit with new sub-headings. * Update feature_tap_dance.md * Update feature_tap_dance.md --- docs/feature_tap_dance.md | 150 ++++++++++++++++++++++++++++++++++---- 1 file changed, 137 insertions(+), 13 deletions(-) diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index b5e5218b093..73e0471a012 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -1,22 +1,33 @@ # Tap Dance: A Single Key Can Do 3, 5, or 100 Different Things - - +## Introduction Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a colon. Hit it three times, and your keyboard's LEDs do a wild dance. That's just one example of what Tap Dance can do. It's one of the nicest community-contributed features in the firmware, conceived and created by [algernon](https://github.com/algernon) in [#451](https://github.com/qmk/qmk_firmware/pull/451). Here's how algernon describes the feature: With this feature one can specify keys that behave differently, based on the amount of times they have been tapped, and when interrupted, they get handled before the interrupter. -To make it clear how this is different from `ACTION_FUNCTION_TAP`, let's explore a certain setup! We want one key to send `Space` on single tap, but `Enter` on double-tap. +## Explanatory Comparison with `ACTION_FUNCTION_TAP` +`ACTION_FUNCTION_TAP` can offer similar functionality to Tap Dance, but it's worth noting some important differences. To do this, let's explore a certain setup! We want one key to send `Space` on single-tap, but `Enter` on double-tap. -With `ACTION_FUNCTION_TAP`, it is quite a rain-dance to set this up, and has the problem that when the sequence is interrupted, the interrupting key will be sent first. Thus, `SPC a` will result in `a SPC` being sent, if they are typed within `TAPPING_TERM`. With the tap dance feature, that'll come out as `SPC a`, correctly. +With `ACTION_FUNCTION_TAP`, it is quite a rain-dance to set this up, and has the problem that when the sequence is interrupted, the interrupting key will be sent first. Thus, `SPC a` will result in `a SPC` being sent, if `SPC` and `a` are both typed within `TAPPING_TERM`. With the Tap Dance feature, that'll come out correctly as `SPC a` (even if both `SPC` and `a` are typed within the `TAPPING_TERM`. -The implementation hooks into two parts of the system, to achieve this: into `process_record_quantum()`, and the matrix scan. We need the latter to be able to time out a tap sequence even when a key is not being pressed, so `SPC` alone will time out and register after `TAPPING_TERM` time. +To achieve this correct handling of interrupts, the implementation of Tap Dance hooks into two parts of the system: `process_record_quantum()`, and the matrix scan. These two parts are explained below, but for now the point to note is that we need the latter to be able to time out a tap sequence even when a key is not being pressed. That way, `SPC` alone will time out and register after `TAPPING_TERM` time. -But lets start with how to use it, first! +## How to Use Tap Dance +But enough of the generalities; lets look at how to actually use Tap Dance! -First, you will need `TAP_DANCE_ENABLE=yes` in your `rules.mk`, because the feature is disabled by default. This adds a little less than 1k to the firmware size. Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro, that - similar to `F()`, takes a number, which will later be used as an index into the `tap_dance_actions` array. +First, you will need `TAP_DANCE_ENABLE=yes` in your `rules.mk`, because the feature is disabled by default. This adds a little less than 1k to the firmware size. -This array specifies what actions shall be taken when a tap-dance key is in action. Currently, there are five possible options: +Optionally, you might want to set a custom `TAPPING_TERM` time by adding something like this in you `config.h`: + +``` +#define TAPPING_TERM 175 +``` + +The `TAPPING_TERM` time is the maximum time allowed between taps of your Tap Dance key, and is measured in milliseconds. For example, if you used the above `#define` statement and set up a Tap Dance key that sends `Space` on single-tap and `Enter` on double-tap, then this key will send `ENT` only if you tap this key twice in less than 175ms. If you tap the key, wait more than 175ms, and tap the key again you'll end up sending `SPC SPC` instead. + +Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro, that - similar to `F()` - takes a number, which will later be used as an index into the `tap_dance_actions` array. + +After this, you'll want to use the `tap_dance_actions` array to specify what actions shall be taken when a tap-dance key is in action. Currently, there are five possible options: * `ACTION_TAP_DANCE_DOUBLE(kc1, kc2)`: Sends the `kc1` keycode when tapped once, `kc2` otherwise. When the key is held, the appropriate keycode is registered: `kc1` when pressed and held, `kc2` when tapped once, then pressed and held. * `ACTION_TAP_DANCE_DUAL_ROLE(kc, layer)`: Sends the `kc` keycode when tapped once, or moves to `layer`. (this functions like the `TO` layer keycode). @@ -24,17 +35,22 @@ This array specifies what actions shall be taken when a tap-dance key is in acti * `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function when the dance action finishes (like the previous option), and the last function when the tap dance action resets. * `ACTION_TAP_DANCE_FN_ADVANCED_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`: This functions identically to the `ACTION_TAP_DANCE_FN_ADVANCED` function, but uses a custom tapping term for it, instead of the predefined `TAPPING_TERM`. -The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. +The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. !> Keep in mind that only [basic keycodes](keycodes_basic.md) are supported here. Custom keycodes are not supported. -And that's the bulk of it! +Similar to the first option, the second option is good for simple layer-switching cases. -And now, on to the explanation of how it works! +For more complicated cases, use the third or fourth options (examples of each are listed below). -The main entry point is `process_tap_dance()`, called from `process_record_quantum()`, which is run for every keypress, and our handler gets to run early. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. If it was the same, we increment the counter and the timer. +Finally, the fifth option is particularly useful if your non-Tap-Dance keys start behaving weirdly after adding the code for your Tap Dance keys. The likely problem is that you changed the `TAPPING_TERM` time to make your Tap Dance keys easier for you to use, and that this has changed the way your other keys handle interrupts. -This means that you have `TAPPING_TERM` time to tap the key again, you do not have to input all the taps within that timeframe. This allows for longer tap counts, with minimal impact on responsiveness. +## Implementation Details +Well, that's the bulk of it! You should now be able to work through the examples below, and to develop your own Tap Dance functionality. But if you want a deeper understanding of what's going on behind the scenes, then read on for the explanation of how it all works! + +The main entry point is `process_tap_dance()`, called from `process_record_quantum()`, which is run for every keypress, and our handler gets to run early. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. If it was the same, we increment the counter and reset the timer. + +This means that you have `TAPPING_TERM` time to tap the key again; you do not have to input all the taps within a single `TAPPING_TERM` timeframe. This allows for longer tap counts, with minimal impact on responsiveness. Our next stop is `matrix_scan_tap_dance()`. This handles the timeout of tap-dance keys. @@ -397,3 +413,111 @@ qk_tap_dance_action_t tap_dance_actions[] = { ``` Wrap each tapdance keycode in `TD()` when including it in your keymap, e.g. `TD(ALT_LP)`. + +### Example 6: Using tap dance for momentary-layer-switch and layer-toggle keys + +Tap Dance can be used to mimic MO(layer) and TG(layer) functionality. For this example, we will set up a key to function as `KC_QUOT` on single-tap, as `MO(_MY_LAYER)` on single-hold, and `TG(_MY_LAYER)` on double-tap. + +The first step is to include the following code towards the beginning of your `keymap.c`: + +``` +typedef struct { + bool is_press_action; + int state; +} tap; + +//Define a type for as many tap dance states as you need +enum { + SINGLE_TAP = 1, + SINGLE_HOLD = 2, + DOUBLE_TAP = 3 +}; + +enum { + QUOT_LAYR = 0 //Our custom tap dance key; add any other tap dance keys to this enum +}; + +//Declare the functions to be used with your tap dance key(s) + +//Function associated with all tap dances +int cur_dance (qk_tap_dance_state_t *state); + +//Functions associated with individual tap dances +void ql_finished (qk_tap_dance_state_t *state, void *user_data); +void ql_reset (qk_tap_dance_state_t *state, void *user_data); + +//Declare variable to track which layer is active +int active_layer; +``` + +The above code is similar to that used in previous examples. The one point to note is that you need to declare a variable to keep track of what layer is currently the active layer. We'll see why shortly. + +Towards the bottom of your `keymap.c`, include the following code: + +``` +//Update active_layer +uint32_t layer_state_set_user(uint32_t state) { + switch (biton32(state)) { + case 1: + active_layer = 1; + break; + case 2: + active_layer = 2; + break; + case 3: + active_layer = 3; + break; + default: + active_layer = 0; + break; + } + return state; +} + +//Determine the current tap dance state +int cur_dance (qk_tap_dance_state_t *state) { + if (state->count == 1) { + if (!state->pressed) {return SINGLE_TAP;} + else return SINGLE_HOLD; + } else if (state->count == 2) {return DOUBLE_TAP;} + else return 8; +} + +//Initialize tap structure associated with example tap dance key +static tap ql_tap_state = { + .is_press_action = true, + .state = 0 +}; + +//Functions that control what our tap dance key does +void ql_finished (qk_tap_dance_state_t *state, void *user_data) { + ql_tap_state.state = cur_dance(state); + switch (ql_tap_state.state) { + case SINGLE_TAP: tap_code(KC_QUOT); break; + case SINGLE_HOLD: layer_on(_MY_LAYER); break; + case DOUBLE_TAP: + if (active_layer==_MY_LAYER) {layer_off(_MY_LAYER);} + else layer_on(_MY_LAYER); + } +} + +void ql_reset (qk_tap_dance_state_t *state, void *user_data) { + if (ql_tap_state.state==SINGLE_HOLD) {layer_off(_MY_LAYER);} + ql_tap_state.state = 0; +} + +//Associate our tap dance key with its functionality +qk_tap_dance_action_t tap_dance_actions[] = { + [QUOT_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ql_finished, ql_reset, 275) +}; +``` + +The is where the real logic of our tap dance key gets worked out. Since `layer_state_set_user()` is called on any layer switch, we use it to update `active_layer`. Our example is assuming that your `keymap.c` includes 4 layers, so adjust the switch statement here to fit your actual number of layers. + +The use of `cur_dance()` and `ql_tap_state` mirrors the above examples. + +The `case:SINGLE_TAP` in `ql_finished` is similar to the above examples. The `case:SINGLE_HOLD` works in conjunction with `ql_reset()` to switch to `_MY_LAYER` while the tap dance key is held, and to switch away from `_MY_LAYER` when the key is released. This mirrors the use of `MO(_MY_LAYER)`. The `case:DOUBLE_TAP` works by checking whether `_MY_LAYER` is the active layer, and toggling it on or off accordingly. This mirrors the use of `TG(_MY_LAYER)`. + +`tap_dance_actions[]` works similar to the above examples. Note that I used `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` instead of `ACTION_TAP_DANCE_FN_ADVANCED()`. This is because I like my `TAPPING_TERM` to be short (~175ms) for my non-tap-dance keys but find that this is too quick for me to reliably complete tap dance actions - thus the increased time of 275ms here. + +Finally, to get this tap dance key working, be sure to include `TD(QUOT_LAYR)` in your `keymaps[]`. From 20c0533c4c66b9d222b6ced2fad3ec6be6cad76e Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Thu, 25 Jul 2019 13:56:29 -0500 Subject: [PATCH 044/115] [User] Xulkal Keymaps Update (#6392) * Xulkal changes Refactor rgb & encoder menu Hadron Keymap Refactor oled menu * Fixing horizontal OLED data display * Reverting changes to take to separate prs --- keyboards/hadron/ver3/keymaps/xulkal/config.h | 1 + keyboards/hadron/ver3/keymaps/xulkal/keymap.c | 73 ++++++ keyboards/hadron/ver3/keymaps/xulkal/rules.mk | 4 + .../massdrop/ctrl/keymaps/default/keymap.c | 4 +- .../massdrop/ctrl/keymaps/xulkal/config.h | 23 ++ .../massdrop/ctrl/keymaps/xulkal/keymap.c | 13 +- keyboards/rgbkb/sol/keymaps/xulkal/config.h | 31 +++ keyboards/rgbkb/sol/keymaps/xulkal/keymap.c | 6 +- keyboards/rgbkb/sol/keymaps/xulkal/rules.mk | 10 +- users/xulkal/custom_encoder.c | 67 +++++- users/xulkal/custom_keycodes.h | 12 + users/xulkal/custom_oled.c | 213 +++++++++--------- users/xulkal/custom_rgb.c | 64 ++++++ users/xulkal/custom_rgb.h | 14 ++ users/xulkal/custom_tap_dance.c | 16 +- users/xulkal/custom_tap_dance.h | 7 +- users/xulkal/layouts.h | 4 +- users/xulkal/process_records.c | 35 +-- users/xulkal/process_records.h | 1 + users/xulkal/rules.mk | 20 +- 20 files changed, 460 insertions(+), 158 deletions(-) create mode 100644 keyboards/hadron/ver3/keymaps/xulkal/config.h create mode 100644 keyboards/hadron/ver3/keymaps/xulkal/keymap.c create mode 100644 keyboards/hadron/ver3/keymaps/xulkal/rules.mk create mode 100644 keyboards/massdrop/ctrl/keymaps/xulkal/config.h create mode 100644 keyboards/rgbkb/sol/keymaps/xulkal/config.h create mode 100644 users/xulkal/custom_rgb.c create mode 100644 users/xulkal/custom_rgb.h diff --git a/keyboards/hadron/ver3/keymaps/xulkal/config.h b/keyboards/hadron/ver3/keymaps/xulkal/config.h new file mode 100644 index 00000000000..6f70f09beec --- /dev/null +++ b/keyboards/hadron/ver3/keymaps/xulkal/config.h @@ -0,0 +1 @@ +#pragma once diff --git a/keyboards/hadron/ver3/keymaps/xulkal/keymap.c b/keyboards/hadron/ver3/keymaps/xulkal/keymap.c new file mode 100644 index 00000000000..0b7fd6f5e5f --- /dev/null +++ b/keyboards/hadron/ver3/keymaps/xulkal/keymap.c @@ -0,0 +1,73 @@ +#include QMK_KEYBOARD_H +#include "xulkal.h" + +#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty Layout + * ,-----------------------------------------------------------------------------------. + * | GESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BkSp | + * |------+------+------+------+------+------|------+------+------+------+------+------+--------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ | 7 | 8 | 9 | + * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------| + * |FN(CAPS)| A | S | D | F | G | H | J | K | L | ; | Enter| 4 | 5 | 6 | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Sft[ | Z | X | C | V | B | N | M | , | . | / | Sft] | 1 | 2 | 3 | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctl- | Win | LOWER| RAISE| Alt | Space| Space| Left | Up | Down | Right| Ctl= | 0 | . | = | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------' + */ + [_QWERTY] = EXPAND_LAYOUT( \ + _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,\ + _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_P7, KC_P8, KC_P9, \ + _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_P4, KC_P5, KC_P6, \ + _________________QWERTY_L4_________________, _________________QWERTY_R4_________________, KC_P1, KC_P2, KC_P3, \ + _________________QWERTY_L5_________________, _________________QWERTY_R5_________________, KC_P0, KC_DOT, KC_EQL \ + ), + +#ifndef GAMELAYER_DISABLE + [_GAME] = EXPAND_LAYOUT( \ + ___________________GAME_L1_________________, ___________________GAME_R1_________________, \ + ___________________GAME_L2_________________, ___________________GAME_R2_________________, _______, _______, _______, \ + ___________________GAME_L3_________________, ___________________GAME_R3_________________, _______, _______, _______, \ + ___________________GAME_L4_________________, ___________________GAME_R4_________________, _______, _______, _______, \ + ___________________GAME_L5_________________, ___________________GAME_R5_________________, _______, _______, _______ \ + ), +#endif + + [_LOWER] = EXPAND_LAYOUT( \ + __________________LOWER_L1_________________, __________________LOWER_R1_________________, \ + __________________LOWER_L2_________________, __________________LOWER_R2_________________, _______, _______, _______, \ + __________________LOWER_L3_________________, __________________LOWER_R3_________________, _______, _______, _______, \ + __________________LOWER_L4_________________, __________________LOWER_R4_________________, _______, _______, _______, \ + __________________LOWER_L5_________________, __________________LOWER_R5_________________, _______, _______, _______ \ + ), + + [_RAISE] = EXPAND_LAYOUT( \ + __________________RAISE_L1_________________, __________________RAISE_R1_________________, \ + __________________RAISE_L2_________________, __________________RAISE_R2_________________, _______, _______, _______, \ + __________________RAISE_L3_________________, __________________RAISE_R3_________________, _______, _______, _______, \ + __________________RAISE_L4_________________, __________________RAISE_R4_________________, _______, _______, _______, \ + __________________RAISE_L5_________________, __________________RAISE_R5_________________, _______, _______, _______ \ + ), + +#ifdef TRILAYER_ENABLED + [_ADJUST] = EXPAND_LAYOUT( \ + _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, \ + _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, _______, _______, _______, \ + _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, _______, _______, _______, \ + _________________ADJUST_L4_________________, _________________ADJUST_R4_________________, _______, _______, _______, \ + _________________ADJUST_L5_________________, _________________ADJUST_R5_________________, _______, _______, _______ \ + ), +#endif +}; + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} diff --git a/keyboards/hadron/ver3/keymaps/xulkal/rules.mk b/keyboards/hadron/ver3/keymaps/xulkal/rules.mk new file mode 100644 index 00000000000..0305226b321 --- /dev/null +++ b/keyboards/hadron/ver3/keymaps/xulkal/rules.mk @@ -0,0 +1,4 @@ +# Overridden build options + +COMMAND_ENABLE = no +ENCODER_ENABLER = no diff --git a/keyboards/massdrop/ctrl/keymaps/default/keymap.c b/keyboards/massdrop/ctrl/keymaps/default/keymap.c index 53c96d95d0e..39122ee49cc 100644 --- a/keyboards/massdrop/ctrl/keymaps/default/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/default/keymap.c @@ -102,11 +102,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT); + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); rgb_matrix_set_color_all(0, 0, 0); } break; - case LED_FLAG_KEYLIGHT: { + case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: { rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); rgb_matrix_set_color_all(0, 0, 0); } diff --git a/keyboards/massdrop/ctrl/keymaps/xulkal/config.h b/keyboards/massdrop/ctrl/keymaps/xulkal/config.h new file mode 100644 index 00000000000..a078fece0f7 --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/xulkal/config.h @@ -0,0 +1,23 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define RGB_MATRIX_TOG_LAYERS diff --git a/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c b/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c index 8b45b53ecb5..debfa3b478b 100644 --- a/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c @@ -8,7 +8,6 @@ enum ctrl_keycodes { 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 }; #define TG_NKRO MAGIC_TOGGLE_NKRO //Toggle 6KRO / NKRO mode @@ -21,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, TD_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, TD_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_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TD_COMM, TD_DOT, KC_SLSH, KC_RSPC, KC_UP, \ + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TD_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, \ KC_LCPO, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LOWER, KC_APP, KC_RCPC, KC_LEFT, KC_DOWN, KC_RGHT \ ), @@ -39,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, \ _______, RGB_RMOD,RGB_MOD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, \ - RGB_SPI, RGB_SAI, RGB_VAI, RGB_HUI, MD_BOOT, QWERTY, _______, U_T_AUTO,U_T_AGCR,_______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, \ + RGB_SPI, RGB_SAI, RGB_VAI, RGB_HUI, RESET, QWERTY, _______, U_T_AUTO,U_T_AGCR,_______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, \ RGB_SPD, RGB_SAD, RGB_VAD, RGB_HUD, RGBRST, GAME, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ @@ -62,8 +61,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - static uint16_t reset_timer; - switch (keycode) { case U_T_AUTO: if (record->event.pressed && MODS_SHIFT && MODS_CTRL) @@ -89,12 +86,6 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) if (record->event.pressed) TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse"); return false; - case MD_BOOT: - if (record->event.pressed) - reset_timer = timer_read() + 500; - else if (timer_expired(reset_timer)) - reset_keyboard(); - return false; } return true; diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/config.h b/keyboards/rgbkb/sol/keymaps/xulkal/config.h new file mode 100644 index 00000000000..a5c35cfae87 --- /dev/null +++ b/keyboards/rgbkb/sol/keymaps/xulkal/config.h @@ -0,0 +1,31 @@ +/* +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 + +// Xulkal custom stuff +#if KEYBOARD_rgbkb_sol_rev2 + #define OLED_90ROTATION + #define RGB_MATRIX_TOG_LAYERS + #define RGB_MATRIX_HUE_STEP 8 + #define RGB_MATRIX_SAT_STEP 8 + #define RGB_MATRIX_VAL_STEP 8 + #define RGB_MATRIX_SPD_STEP 8 +#endif diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/keymap.c b/keyboards/rgbkb/sol/keymaps/xulkal/keymap.c index e51edd90710..c508b0ca884 100644 --- a/keyboards/rgbkb/sol/keymaps/xulkal/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/xulkal/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| * | Sft[ | Z | X | C | V | B | RGB | |RGBRST| N | M | , | . | / | Sft] | * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - * | Ctl- | Win | LOWER| RAISE| Alt | Space|RGBRMOD| |RGBMOD| Space| Left | Up | Down | Right| Ctl= | + * | Ctl- | Win | LOWER| RAISE| Alt | Space| ENC1 | | ENC2 | Space| Left | Up | Down | Right| Ctl= | * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------' * | Space| DEL | | Enter| Space| * `-------------' `-------------' @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _________________QWERTY_L2_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R2_________________, \ _________________QWERTY_L3_________________, KC_GRV, KC_QUOT, _________________QWERTY_R3_________________, \ _________________QWERTY_L4_________________, RGB_TOG, RGBRST, _________________QWERTY_R4_________________, \ - _________________QWERTY_L5_________________, RGB_RMOD, RGB_MOD, _________________QWERTY_R5_________________, \ + _________________QWERTY_L5_________________, KC_ENC1, KC_ENC2, _________________QWERTY_R5_________________, \ KC_SPC, TD_DEL, KC_ENT, KC_SPC \ ), @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ___________________GAME_L2_________________, KC_LBRC, KC_RBRC, ___________________GAME_R2_________________, \ ___________________GAME_L3_________________, KC_GRV, KC_QUOT, ___________________GAME_R3_________________, \ ___________________GAME_L4_________________, RGB_TOG, RGBRST, ___________________GAME_R4_________________, \ - ___________________GAME_L5_________________, RGB_RMOD, RGB_MOD, ___________________GAME_R5_________________, \ + ___________________GAME_L5_________________, KC_ENC1, KC_ENC2, ___________________GAME_R5_________________, \ KC_SPC, KC_DEL, KC_ENT, KC_SPC \ ), #endif diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk b/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk index 238d1cf234a..6a14a99af5b 100644 --- a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk +++ b/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk @@ -10,8 +10,14 @@ FULLHAND_ENABLE = yes # Enables the additional 24 Full Hand LEDs # Misc OLED_DRIVER_ENABLE = yes # Enable the OLED Driver - - +# Not using the encoder for rev1 +ifeq ($(strip $(KEYBOARD)), rgbkb/sol/rev1) + ENCODER_ENABLE = no + RGB_OLED_MENU = no +else + ENCODER_ENABLE = yes + RGB_OLED_MENU = 0 +endif # Do not edit past here diff --git a/users/xulkal/custom_encoder.c b/users/xulkal/custom_encoder.c index 076a9891a32..cd029944ff3 100644 --- a/users/xulkal/custom_encoder.c +++ b/users/xulkal/custom_encoder.c @@ -1,13 +1,72 @@ #include "custom_encoder.h" +#include "custom_keycodes.h" + +#ifdef RGB_OLED_MENU +#include "custom_rgb.h" + +// I'm lazy and like constants over calculations, also using it as a compile time check +#if defined(RGB_MATRIX_ENABLE) + #define RGB_FUNCTION_COUNT 6 +#elif defined(RGBLIGHT_ENABLE) + #define RGB_FUNCTION_COUNT 5 +#endif + +typedef void (*rgb_f)(void); + +const rgb_f rgb_functions[RGB_FUNCTION_COUNT][2] = { +#if defined(RGB_MATRIX_ENABLE) + { rgb_matrix_increase_hue, rgb_matrix_decrease_hue }, + { rgb_matrix_increase_sat, rgb_matrix_decrease_sat }, + { rgb_matrix_increase_val, rgb_matrix_decrease_val }, + { rgb_matrix_increase_speed, rgb_matrix_decrease_speed }, + { rgb_matrix_step, rgb_matrix_step_reverse }, + { rgb_matrix_increase_flags, rgb_matrix_decrease_flags } +#elif defined(RGBLIGHT_ENABLE) + { rgblight_increase_hue, rgblight_decrease_hue }, + { rgblight_increase_sat, rgblight_decrease_sat }, + { rgblight_increase_val, rgblight_decrease_val }, + { rgblight_increase_speed, rgblight_decrease_speed }, + { rgblight_step, rgblight_step_reverse } +#endif +}; + +// Start at the end for mode +uint8_t rgb_encoder_state = 4; + +bool process_record_encoder(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) + { + case RGB_ENC: + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + rgb_encoder_state = (rgb_encoder_state - 1); + if (rgb_encoder_state >= RGB_FUNCTION_COUNT) + rgb_encoder_state = RGB_FUNCTION_COUNT - 1; + } else { + rgb_encoder_state = (rgb_encoder_state + 1) % RGB_FUNCTION_COUNT; + } + } + return false; + } + return true; +} +#endif // RGB_OLED_MENU -#ifdef ENCODER_ENABLE const uint16_t PROGMEM encoders[][2] = { { KC_PGUP, KC_PGDN }, - { KC_DOWN, KC_UP } + { KC_VOLU, KC_VOLD } }; void encoder_update_user(uint8_t index, bool clockwise) { - tap_code16(pgm_read_word(&encoders[index][clockwise])); + if (!is_keyboard_master()) + return; + +#ifdef RGB_OLED_MENU + if (index == RGB_OLED_MENU) + (*rgb_functions[rgb_encoder_state][clockwise])(); + else +#endif // RGB_OLED_MENU + tap_code16(pgm_read_word(&encoders[index][clockwise])); } -#endif diff --git a/users/xulkal/custom_keycodes.h b/users/xulkal/custom_keycodes.h index d4ae0bd477b..7ced92bf4ce 100644 --- a/users/xulkal/custom_keycodes.h +++ b/users/xulkal/custom_keycodes.h @@ -9,6 +9,9 @@ enum custom_keycodes { TD_DEL, TD_DOT, TD_MAX, +#endif +#ifdef ENCODER_ENABLE + RGB_ENC, #endif KEYMAP_SAFE_RANGE }; @@ -26,3 +29,12 @@ enum custom_keycodes { #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) + + +#ifdef ENCODER_ENABLE +#define KC_ENC1 RGB_ENC +#define KC_ENC2 KC_MPLY +#else +#define KC_ENC1 RGB_RMOD +#define KC_ENC2 RGB_MOD +#endif diff --git a/users/xulkal/custom_oled.c b/users/xulkal/custom_oled.c index 7280ef7019f..448e6ca107e 100644 --- a/users/xulkal/custom_oled.c +++ b/users/xulkal/custom_oled.c @@ -3,12 +3,15 @@ #include -#ifdef OLED_DRIVER_ENABLE - #ifdef RGBLIGHT_ENABLE rgblight_config_t rgblight_config; #endif +#if KEYBOARD_helix_rev2 +extern uint8_t is_master; +bool is_keyboard_master(void) { return is_master; } +#endif + static void render_logo(void) { static const char PROGMEM font_logo[] = { @@ -18,21 +21,38 @@ static void render_logo(void) oled_write_P(font_logo, false); } -#if defined(OLED_90ROTATION) - -// TODO: Need to define this function / extern only for helix based split common keyboards -extern uint8_t is_master; -bool is_keyboard_master(void) +static void render_icon(void) { - return is_master; +#ifdef OLED_90ROTATION + static const char PROGMEM font_icon[] = { + 0x9b,0x9c,0x9d,0x9e,0x9f, + 0xbb,0xbc,0xbd,0xbe,0xbf, + 0xdb,0xdc,0xdd,0xde,0xdf,0 + }; +#else + static const char PROGMEM font_icon[] = { + // Use \r (0x0d) to jump to the next line without clearing the rest of the current line + 0x9b,0x9c,0x9d,0x9e,0x9f,0x0d, + 0xbb,0xbc,0xbd,0xbe,0xbf,0x0d, + 0xdb,0xdc,0xdd,0xde,0xdf,0 + }; +#endif + oled_write_P(font_icon, false); } -static void render_layer(uint8_t layer) +static void render_layer(void) { + uint8_t layer = layer_state ? biton(layer_state) : biton32(default_layer_state); +#ifdef OLED_90ROTATION + oled_write_P(PSTR("Layer"), false); +#else + oled_write_P(PSTR("Layer: "), false); +#endif + switch (layer) { case _QWERTY: - oled_write_P(PSTR("DFLT "), false); + oled_write_P(PSTR("BASE "), false); break; #ifndef GAMELAYER_DISABLE case _GAME: @@ -53,125 +73,110 @@ static void render_layer(uint8_t layer) } } +static void render_keyboard_leds(void) +{ + // Host Keyboard LED Status + uint8_t led_state = host_keyboard_leds(); +#ifdef OLED_90ROTATION + oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUMLK") : PSTR(" "), false); + oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLK") : PSTR(" "), false); + oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false); +#else + oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPS ") : PSTR(" "), false); + oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRL") : PSTR(" "), false); +#endif +} + +#ifdef RGB_OLED_MENU +extern uint8_t rgb_encoder_state; +#endif + +#if defined(OLED_90ROTATION) + +#ifdef RGB_ENABLE +static void render_rgb_state(void) +{ + // TODO: need to do a bit more handling here for horizontal rendering +#if defined(RGB_MATRIX_ENABLE) + static char buffer[31] = {0}; + snprintf(buffer, sizeof(buffer), "h%3d s%3d v%3d s%3d m%3d e%3d ", rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v, rgb_matrix_config.speed, rgb_matrix_config.mode, rgb_matrix_get_flags()); +#elif defined(RGBLIGHT_ENABLE) + static char buffer[26] = {0}; + snprintf(buffer, sizeof(buffer), "h%3d s%3d v%3d s%3d m%3d ", rgblight_config.hue, rgblight_config.sat, rgblight_config.val, rgblight_config.speed, rgblight_config.mode); +#endif + +#ifdef RGB_OLED_MENU + buffer[4 + rgb_encoder_state * 5] = '<'; +#endif + oled_write(buffer, false); +} +#endif + static void render_status(void) { - // Render to mode icon - static const char PROGMEM mode_logo[2][4] = { - {0x97,0x98,0x0a,0}, - {0xb7,0xb8,0x0a,0} }; - - oled_write_P(mode_logo[0], false); - oled_write_P(mode_logo[1], false); - - oled_write_P(PSTR("Layer"), false); - uint8_t layer = biton(layer_state); - if (layer != _QWERTY) - render_layer(layer); - else - render_layer(biton32(default_layer_state)); + render_icon(); + render_layer(); // Host Keyboard LED Status - uint8_t led_usb_state = host_keyboard_leds(); - oled_write_P(led_usb_state & (1<event.pressed) - { - eeconfig_update_rgblight_default(); - rgblight_enable(); - } -#elif defined(RGB_MATRIX_ENABLE) - if (record->event.pressed) - eeconfig_update_rgb_matrix_default(); +#ifdef RGB_ENABLE + if (record->event.pressed) + rgb_reset(); #endif - } return false; case RESET: { @@ -42,9 +38,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) reset_keyboard(); } return false; +#ifdef RGB_MATRIX_TOG_LAYERS + case RGB_TOG: + if (record->event.pressed) { + rgb_matrix_decrease_flags(); + } + return false; +#endif } - return process_record_keymap(keycode, record); + return process_record_encoder(keycode, record) && process_record_keymap(keycode, record); } __attribute__ ((weak)) @@ -52,3 +55,9 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } + +__attribute__ ((weak)) +bool process_record_encoder(uint16_t keycode, keyrecord_t *record) +{ + return true; +} diff --git a/users/xulkal/process_records.h b/users/xulkal/process_records.h index 701ef7e74f3..c219394f8e4 100644 --- a/users/xulkal/process_records.h +++ b/users/xulkal/process_records.h @@ -15,3 +15,4 @@ enum layer_number { }; bool process_record_keymap(uint16_t keycode, keyrecord_t *record); +bool process_record_encoder(uint16_t keycode, keyrecord_t *record); diff --git a/users/xulkal/rules.mk b/users/xulkal/rules.mk index ab0231d7dcf..c3834ff5f0b 100644 --- a/users/xulkal/rules.mk +++ b/users/xulkal/rules.mk @@ -1,8 +1,6 @@ SRC += xulkal.c \ process_records.c \ custom_tap_dance.c \ - custom_encoder.c \ - custom_oled.c \ timer_utils.c # Some usual defaults @@ -15,3 +13,21 @@ ifneq ($(strip $(DISABLE_LTO)), yes) OPT_DEFS += -DNO_ACTION_MACRO OPT_DEFS += -DNO_ACTION_FUNCTION endif + +ifeq ($(strip $(ENCODER_ENABLE)), yes) + SRC += custom_encoder.c +endif + +ifneq ($(strip $(RGB_MATRIX_ENABLE)), no) + OPT_DEFS += -DRGB_ENABLE + SRC += custom_rgb.c +endif + +ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) + OPT_DEFS += -DRGB_ENABLE + SRC += custom_rgb.c +endif + +ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes) + SRC += custom_oled.c +endif From f3acaff65bf3590d6151013af5c36e059e1a633a Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Thu, 25 Jul 2019 13:57:28 -0500 Subject: [PATCH 045/115] [Keymap] Fix default layer display (#6398) --- keyboards/rgbkb/sol/keymaps/default/keymap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/rgbkb/sol/keymaps/default/keymap.c b/keyboards/rgbkb/sol/keymaps/default/keymap.c index f948dc450f8..1fae6cc971a 100644 --- a/keyboards/rgbkb/sol/keymaps/default/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/default/keymap.c @@ -324,7 +324,8 @@ static void render_status(void) { // Define layers here oled_write_P(PSTR("Layer"), false); - switch (biton32(layer_state)) { + uint8_t layer = layer_state ? biton(layer_state) : biton32(default_layer_state); + switch (layer) { case _QWERTY: oled_write_P(PSTR("BASE "), false); break; From f204ed67f210b1dde20333727c79c47a5b70518a Mon Sep 17 00:00:00 2001 From: kakunpc <15257475+kakunpc@users.noreply.github.com> Date: Fri, 26 Jul 2019 04:30:15 +0900 Subject: [PATCH 046/115] [Keyboard] Set RGBLIGHT ENABLE for angel64 (#6405) * set RGBLIGHT * remove default keymap RGB enable * set limit value * Revert "set limit value" This reverts commit 2374b2aa204f05f7bcea8ed65623b0c46a011aa2. --- keyboards/angel64/config.h | 22 +++++++++++----------- keyboards/angel64/rules.mk | 10 +++++----- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/keyboards/angel64/config.h b/keyboards/angel64/config.h index 2289d666708..fb683bc1532 100644 --- a/keyboards/angel64/config.h +++ b/keyboards/angel64/config.h @@ -48,16 +48,16 @@ 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 64 -// #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 +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 64 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 25 /* 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 @@ -74,7 +74,7 @@ along with this program. If not, see . // /*==== 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 +#endif /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/angel64/rules.mk b/keyboards/angel64/rules.mk index b1ef9b76544..06169e8df92 100644 --- a/keyboards/angel64/rules.mk +++ b/keyboards/angel64/rules.mk @@ -61,17 +61,17 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +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 on B7 by default -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID From 36d3902504d6aa0d2bdac88c90339c902ade11b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20=C4=90or=C4=91evi=C4=87?= Date: Thu, 25 Jul 2019 21:31:40 +0200 Subject: [PATCH 047/115] [User] Update personal userspace and keymaps, add reactive underglow (#6410) * Update MODERN_DOLCH_RED color * Remove unused RAL_LAL tap dance * Disable Space Cadet on all boards * Rework SEND_STRING_CLEAN into CLEAN_MODS, fix DST_P_R/DST_N_A * Disable unnecessary underglow animations * Rearrange feature flags in rules.mk files * Change custom colors from structs to defines * Add some explicit initializers * Add MODERN_DOLCH_CYAN color * Add IS_LAYER_ON_STATE()/IS_LAYER_OFF_STATE() macros * Add led_set_keymap() template function * Change underglow color based on Caps/Fn state * Preserve val when changing underglow colors * Only trigger Fn light for Fn layer * Refactor fn_light() and caps_light() slightly * Add comments to fn_light() and caps_light() --- .../kbdfans/kbd6x/keymaps/konstantin/config.h | 1 - .../kbdfans/kbd6x/keymaps/konstantin/keymap.c | 42 ++++++++++++++- .../kbdfans/kbd6x/keymaps/konstantin/rules.mk | 22 ++++---- .../melody96/keymaps/konstantin/keymap.c | 2 +- .../melody96/keymaps/konstantin/rules.mk | 21 ++++---- keyboards/wasdat/keymaps/konstantin/rules.mk | 18 ++++--- .../whitefox/keymaps/konstantin/rules.mk | 22 ++++---- users/konstantin/config.h | 6 +++ users/konstantin/konstantin.c | 52 ++++++++++++------- users/konstantin/konstantin.h | 22 ++++---- users/konstantin/rgb.c | 7 +-- users/konstantin/rgb.h | 12 +++-- users/konstantin/tap_dance.c | 2 +- users/konstantin/tap_dance.h | 4 +- 14 files changed, 151 insertions(+), 82 deletions(-) diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h b/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h index 16387fa2f61..4b511eb8484 100644 --- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h +++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h @@ -1,4 +1,3 @@ #pragma once #define LAYER_FN -#define SEND_STRING_CLEAN diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c index b348b0b7bf6..c5c8c09636a 100644 --- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c +++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c @@ -10,7 +10,7 @@ enum layers_keymap { }; void eeconfig_init_keymap(void) { - rgblight_sethsv(MODERN_DOLCH_RED.h, MODERN_DOLCH_RED.s, MODERN_DOLCH_RED.v); + rgblight_sethsv(MODERN_DOLCH_RED); rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL); } @@ -31,6 +31,46 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } } +static bool skip_caps = false; + +static void fn_light(uint32_t state) { + if (IS_LAYER_ON_STATE(state, L_FN)) { + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_sethsv_noeeprom(modern_dolch_red.h, modern_dolch_red.s, rgblight_get_val()); + skip_caps = true; + } else { + rgblight_config_t saved = { .raw = eeconfig_read_rgblight() }; + rgblight_sethsv_noeeprom(saved.hue, saved.sat, saved.val); + rgblight_mode_noeeprom(saved.mode); + } + // caps_light will be called automatically after this +} + +static void caps_light(uint8_t usb_led) { + if (skip_caps) { + skip_caps = false; + return; // Skip calls triggered by the Fn layer turning on + } + if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_sethsv_noeeprom(modern_dolch_cyan.h, modern_dolch_cyan.s, rgblight_get_val()); + } else { + fn_light(layer_state); // Caps is off, check if Fn light should be on + } +} + +uint32_t layer_state_set_keymap(uint32_t state) { + static uint32_t prev_state = L_BASE; + if (IS_LAYER_ON_STATE(state, L_FN) != IS_LAYER_ON_STATE(prev_state, L_FN)) { + fn_light(state); // Fn state changed since last time + } + return prev_state = state; +} + +void led_set_keymap(uint8_t usb_led) { + caps_light(usb_led); +} + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base layer * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk b/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk index f7cf0758b78..7262c6db665 100644 --- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk +++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk @@ -1,11 +1,11 @@ -BOOTMAGIC_ENABLE = no -COMMAND_ENABLE = yes -CONSOLE_ENABLE = no -EXTRAKEY_ENABLE = yes -MOUSEKEY_ENABLE = yes -NKRO_ENABLE = yes -TAP_DANCE_ENABLE = yes -UNICODEMAP_ENABLE = no - -BACKLIGHT_ENABLE = yes -RGBLIGHT_ENABLE = yes +BACKLIGHT_ENABLE = no +BOOTMAGIC_ENABLE = no +COMMAND_ENABLE = yes +CONSOLE_ENABLE = yes +EXTRAKEY_ENABLE = yes +MOUSEKEY_ENABLE = yes +NKRO_ENABLE = yes +RGBLIGHT_ENABLE = yes +SPACE_CADET_ENABLE = no +TAP_DANCE_ENABLE = yes +UNICODEMAP_ENABLE = no diff --git a/keyboards/melody96/keymaps/konstantin/keymap.c b/keyboards/melody96/keymaps/konstantin/keymap.c index c2b0431047b..e02ba0f85ec 100644 --- a/keyboards/melody96/keymaps/konstantin/keymap.c +++ b/keyboards/melody96/keymaps/konstantin/keymap.c @@ -1,7 +1,7 @@ #include QMK_KEYBOARD_H #include "konstantin.h" -static const HSV *colors[] = { &GODSPEED_BLUE, &GODSPEED_YELLOW }; +static const HSV *colors[] = { &godspeed_blue, &godspeed_yellow }; static const size_t cnum = sizeof colors / sizeof *colors; static size_t cidx = 0; diff --git a/keyboards/melody96/keymaps/konstantin/rules.mk b/keyboards/melody96/keymaps/konstantin/rules.mk index 47a859d0891..995402cb053 100644 --- a/keyboards/melody96/keymaps/konstantin/rules.mk +++ b/keyboards/melody96/keymaps/konstantin/rules.mk @@ -1,10 +1,11 @@ -BOOTMAGIC_ENABLE = no -COMMAND_ENABLE = yes -CONSOLE_ENABLE = no -EXTRAKEY_ENABLE = yes -MOUSEKEY_ENABLE = yes -NKRO_ENABLE = yes -TAP_DANCE_ENABLE = yes -UNICODEMAP_ENABLE = yes - -BACKLIGHT_ENABLE = no +BACKLIGHT_ENABLE = no +BOOTMAGIC_ENABLE = no +COMMAND_ENABLE = yes +CONSOLE_ENABLE = no +EXTRAKEY_ENABLE = yes +MOUSEKEY_ENABLE = yes +NKRO_ENABLE = yes +RGBLIGHT_ENABLE = yes +SPACE_CADET_ENABLE = no +TAP_DANCE_ENABLE = yes +UNICODEMAP_ENABLE = yes diff --git a/keyboards/wasdat/keymaps/konstantin/rules.mk b/keyboards/wasdat/keymaps/konstantin/rules.mk index 4bb1ee65880..041d3211459 100644 --- a/keyboards/wasdat/keymaps/konstantin/rules.mk +++ b/keyboards/wasdat/keymaps/konstantin/rules.mk @@ -1,8 +1,10 @@ -BOOTMAGIC_ENABLE = no -COMMAND_ENABLE = yes -CONSOLE_ENABLE = yes -EXTRAKEY_ENABLE = yes -MOUSEKEY_ENABLE = yes -NKRO_ENABLE = yes -TAP_DANCE_ENABLE = yes -UNICODEMAP_ENABLE = yes +BACKLIGHT_ENABLE = no +BOOTMAGIC_ENABLE = no +COMMAND_ENABLE = yes +CONSOLE_ENABLE = yes +EXTRAKEY_ENABLE = yes +MOUSEKEY_ENABLE = yes +NKRO_ENABLE = yes +SPACE_CADET_ENABLE = no +TAP_DANCE_ENABLE = yes +UNICODEMAP_ENABLE = yes diff --git a/keyboards/whitefox/keymaps/konstantin/rules.mk b/keyboards/whitefox/keymaps/konstantin/rules.mk index 625ef346c8d..bced6e8a707 100644 --- a/keyboards/whitefox/keymaps/konstantin/rules.mk +++ b/keyboards/whitefox/keymaps/konstantin/rules.mk @@ -1,11 +1,11 @@ -BOOTMAGIC_ENABLE = no -COMMAND_ENABLE = yes -CONSOLE_ENABLE = yes -EXTRAKEY_ENABLE = yes -MOUSEKEY_ENABLE = yes -NKRO_ENABLE = yes -TAP_DANCE_ENABLE = yes -UNICODEMAP_ENABLE = yes - -BACKLIGHT_ENABLE = no -VISUALIZER_ENABLE = no +BACKLIGHT_ENABLE = no +BOOTMAGIC_ENABLE = no +COMMAND_ENABLE = yes +CONSOLE_ENABLE = yes +EXTRAKEY_ENABLE = yes +MOUSEKEY_ENABLE = yes +NKRO_ENABLE = yes +SPACE_CADET_ENABLE = no +TAP_DANCE_ENABLE = yes +UNICODEMAP_ENABLE = yes +VISUALIZER_ENABLE = no diff --git a/users/konstantin/config.h b/users/konstantin/config.h index 4edab2baabe..d712e79d3f5 100644 --- a/users/konstantin/config.h +++ b/users/konstantin/config.h @@ -13,6 +13,12 @@ #define NO_ACTION_MACRO #define NO_ACTION_ONESHOT +#undef RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE + #define PERMISSIVE_HOLD #define TAPPING_TERM 200 #define TAPPING_TOGGLE 2 diff --git a/users/konstantin/konstantin.c b/users/konstantin/konstantin.c index 9e3caca4147..c56c9490fcd 100644 --- a/users/konstantin/konstantin.c +++ b/users/konstantin/konstantin.c @@ -32,26 +32,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { - case CLEAR: - if (record->event.pressed) { - SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE)); - } - return false; - - case DST_P_R: - (record->event.pressed ? register_code16 : unregister_code16)( - (get_mods() & DST_MOD_MASK) ? DST_REM : DST_PRV - ); - return false; - - case DST_N_A: - (record->event.pressed ? register_code16 : unregister_code16)( - (get_mods() & DST_MOD_MASK) ? DST_ADD : DST_NXT - ); - return false; - + uint16_t kc; #ifdef LAYER_FN - static bool fn_lock; + static bool fn_lock = false; case FN_FNLK: if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { @@ -77,6 +60,28 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; + case CLEAR: + if (record->event.pressed) { + CLEAN_MODS( + SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE)); + ) + } + return false; + + case DST_P_R: + kc = (get_mods() & DST_MOD_MASK) ? DST_REM : DST_PRV; + CLEAN_MODS( + (record->event.pressed ? register_code16 : unregister_code16)(kc); + ) + return false; + + case DST_N_A: + kc = (get_mods() & DST_MOD_MASK) ? DST_ADD : DST_NXT; + CLEAN_MODS( + (record->event.pressed ? register_code16 : unregister_code16)(kc); + ) + return false; + default: return true; } @@ -91,7 +96,7 @@ uint32_t layer_state_set_user(uint32_t state) { state = layer_state_set_keymap(state); #ifdef LAYER_NUMPAD - bool numpad = state & 1UL< Date: Sun, 21 Apr 2019 23:01:58 +0900 Subject: [PATCH 048/115] Add support for Choco60 --- keyboards/choco60/choco60.c | 51 +++++++++++++ keyboards/choco60/choco60.h | 46 ++++++++++++ keyboards/choco60/config.h | 55 ++++++++++++++ keyboards/choco60/info.json | 12 +++ keyboards/choco60/keymaps/default/config.h | 19 +++++ keyboards/choco60/keymaps/default/keymap.c | 41 +++++++++++ keyboards/choco60/keymaps/default/readme.md | 1 + keyboards/choco60/readme.md | 15 ++++ keyboards/choco60/rules.mk | 82 +++++++++++++++++++++ 9 files changed, 322 insertions(+) create mode 100644 keyboards/choco60/choco60.c create mode 100644 keyboards/choco60/choco60.h create mode 100644 keyboards/choco60/config.h create mode 100644 keyboards/choco60/info.json create mode 100644 keyboards/choco60/keymaps/default/config.h create mode 100644 keyboards/choco60/keymaps/default/keymap.c create mode 100644 keyboards/choco60/keymaps/default/readme.md create mode 100644 keyboards/choco60/readme.md create mode 100644 keyboards/choco60/rules.mk diff --git a/keyboards/choco60/choco60.c b/keyboards/choco60/choco60.c new file mode 100644 index 00000000000..e38f335c1c5 --- /dev/null +++ b/keyboards/choco60/choco60.c @@ -0,0 +1,51 @@ +/* Copyright 2019 Naoto Takai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "choco60.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 + + 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); +} + +*/ diff --git a/keyboards/choco60/choco60.h b/keyboards/choco60/choco60.h new file mode 100644 index 00000000000..fedcf942bfd --- /dev/null +++ b/keyboards/choco60/choco60.h @@ -0,0 +1,46 @@ +/* Copyright 2019 Naoto Takai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, R06, R07, R08, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, R16, R17, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, R36, \ + L40, L41, L43, R40, R41, R43, R44 \ +) \ +{ \ + { L00, L01, L02, L03, L04, L05, KC_NO, KC_NO, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, KC_NO, KC_NO, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, KC_NO, KC_NO, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, KC_NO, KC_NO, KC_NO }, \ + { L40, L41, KC_NO, L43, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, R06, R07, R08 }, \ + { R10, R11, R12, R13, R14, R15, R16, R17, KC_NO }, \ + { R20, R21, R22, R23, R24, R25, R26, KC_NO, KC_NO }, \ + { R30, R31, R32, R33, R34, R35, R36, KC_NO, KC_NO }, \ + { R40, R41, KC_NO, R43, R44, KC_NO, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/choco60/config.h b/keyboards/choco60/config.h new file mode 100644 index 00000000000..97d7c61acdb --- /dev/null +++ b/keyboards/choco60/config.h @@ -0,0 +1,55 @@ +/* +Copyright 2019 Naoto Takai + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0xC0C0 +#define PRODUCT_ID 0x6000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Naoto Takai +#define PRODUCT choco60 +#define DESCRIPTION A 60% split keyboard for programmers. + +/* key matrix size */ +#define MATRIX_ROWS 10 +#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) + * +*/ +#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, D1 } +#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 D3 // or D1, D2, D3, E6 +#define SPLIT_HAND_PIN D0 diff --git a/keyboards/choco60/info.json b/keyboards/choco60/info.json new file mode 100644 index 00000000000..3918dcb5f01 --- /dev/null +++ b/keyboards/choco60/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Choco60", + "url": "https://keys.recompile.net/projects/choco60/", + "maintainer": "Naoto Takai", + "width": 16, + "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":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":"~", "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":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":"Delete", "x":14.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":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":"Return", "x":13.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":8.25, "y":3}, {"label":"M", "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":"Fn", "x":15, "y":3}, {"label":"Opt", "x":1.5, "y":4}, {"label":"\u2318", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":2.75}, {"label":"Opt", "x":7.75, "y":4}, {"x":8.75, "y":4, "w":2.25}, {"label":"\u2318", "x":11, "y":4, "w":1.5}, {"label":"Ctrl", "x":12.5, "y":4}] + } + } +} diff --git a/keyboards/choco60/keymaps/default/config.h b/keyboards/choco60/keymaps/default/config.h new file mode 100644 index 00000000000..cf4c8bcbe6e --- /dev/null +++ b/keyboards/choco60/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 Naoto Takai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// place overrides here diff --git a/keyboards/choco60/keymaps/default/keymap.c b/keyboards/choco60/keymaps/default/keymap.c new file mode 100644 index 00000000000..ab3f2c6a2bc --- /dev/null +++ b/keyboards/choco60/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2019 Naoto Takai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN, +}; + +#define KC_FN MO(_FN) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSLASH, KC_GRAVE, + 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_BSPACE, + KC_LCTRL, 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_LSHIFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, KC_FN, + KC_LALT, KC_LGUI, KC_SPACE, KC_SPACE, KC_SPACE, KC_RGUI, KC_RALT + ), + [_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, KC_INSERT, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCREEN, KC_SCROLLLOCK, KC_PAUSE, KC_UP, KC_RBRACKET, KC_BSPACE, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_ENTER, + RESET, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDOWN, KC_DOWN, KC_RSHIFT, KC_FN, + _______, _______, _______, _______, _______, KC_STOP, _______ + ) +}; diff --git a/keyboards/choco60/keymaps/default/readme.md b/keyboards/choco60/keymaps/default/readme.md new file mode 100644 index 00000000000..f55e392c391 --- /dev/null +++ b/keyboards/choco60/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for choco60 diff --git a/keyboards/choco60/readme.md b/keyboards/choco60/readme.md new file mode 100644 index 00000000000..ca309fdcbca --- /dev/null +++ b/keyboards/choco60/readme.md @@ -0,0 +1,15 @@ +# choco60 + +![choco60](https://keys.recompile.net/images/choco60-main@600w.jpg) + +A 60% split keyboard for programmers. + +Keyboard Maintainer: [Naoto Takai](https://github.com/takai) +Hardware Supported: The Choco60 PCBs, Pro Micro supported +Hardware Availability: https://keys.recompile.net/projects/choco60/ + +Make example for this keyboard (after setting up your build environment): + + make choco60: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/choco60/rules.mk b/keyboards/choco60/rules.mk new file mode 100644 index 00000000000..343469db2b3 --- /dev/null +++ b/keyboards/choco60/rules.mk @@ -0,0 +1,82 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = caterina + + +# 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 +# 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 +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +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 (+400) + +SPLIT_KEYBOARD = yes # Enable split keyboard From feddc496ee1a6e1edc92adc35e6a6b5836bfae9b Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 25 Jul 2019 11:56:55 +1000 Subject: [PATCH 049/115] [Keymap] Tzarc's Luddite keymap (#6416) --- .../luddite/keymaps/default/keymap.c | 22 +++++++------- .../luddite/keymaps/tzarc/config.h | 6 ++++ .../luddite/keymaps/tzarc/keymap.c | 30 +++++++++++++++++++ .../luddite/keymaps/tzarc/rules.mk | 1 + keyboards/40percentclub/luddite/luddite.h | 3 +- 5 files changed, 48 insertions(+), 14 deletions(-) create mode 100644 keyboards/40percentclub/luddite/keymaps/tzarc/config.h create mode 100644 keyboards/40percentclub/luddite/keymaps/tzarc/keymap.c create mode 100644 keyboards/40percentclub/luddite/keymaps/tzarc/rules.mk diff --git a/keyboards/40percentclub/luddite/keymaps/default/keymap.c b/keyboards/40percentclub/luddite/keymaps/default/keymap.c index 4d6ae0d524e..fa3a83ba878 100644 --- a/keyboards/40percentclub/luddite/keymaps/default/keymap.c +++ b/keyboards/40percentclub/luddite/keymaps/default/keymap.c @@ -1,7 +1,5 @@ #include QMK_KEYBOARD_H -extern keymap_config_t keymap_config; - // 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 @@ -15,18 +13,18 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_60_ansi( - 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ - KC_LCTL , KC_LGUI , KC_LALT , KC_SPC , KC_RALT , KC_RGUI , MO(_FN1) , KC_RCTL + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT , KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL ), [_FN1] = LAYOUT_60_ansi( - KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, \ - RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,\ - BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - KC_GRV, _______, _______, _______, _______, _______, _______, _______ + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/40percentclub/luddite/keymaps/tzarc/config.h b/keyboards/40percentclub/luddite/keymaps/tzarc/config.h new file mode 100644 index 00000000000..f8feb798d42 --- /dev/null +++ b/keyboards/40percentclub/luddite/keymaps/tzarc/config.h @@ -0,0 +1,6 @@ +#undef RGBLED_NUM +#define RGBLED_NUM 16 + +#define QMK_ESC_OUTPUT F4 +#define QMK_ESC_INPUT D3 +#define QMK_LED B0 diff --git a/keyboards/40percentclub/luddite/keymaps/tzarc/keymap.c b/keyboards/40percentclub/luddite/keymaps/tzarc/keymap.c new file mode 100644 index 00000000000..dfa1c499c29 --- /dev/null +++ b/keyboards/40percentclub/luddite/keymaps/tzarc/keymap.c @@ -0,0 +1,30 @@ +#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 _BASE 0 +#define _FN1 1 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60_ansi( + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT , KC_SPC, KC_RALT, KC_APP, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_60_ansi( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, KC_RGUI, _______, _______ + ) +}; diff --git a/keyboards/40percentclub/luddite/keymaps/tzarc/rules.mk b/keyboards/40percentclub/luddite/keymaps/tzarc/rules.mk new file mode 100644 index 00000000000..0613ea8667c --- /dev/null +++ b/keyboards/40percentclub/luddite/keymaps/tzarc/rules.mk @@ -0,0 +1 @@ +BOOTLOADER = qmk-dfu diff --git a/keyboards/40percentclub/luddite/luddite.h b/keyboards/40percentclub/luddite/luddite.h index 1ba743e9e77..5b8b95fea46 100644 --- a/keyboards/40percentclub/luddite/luddite.h +++ b/keyboards/40percentclub/luddite/luddite.h @@ -3,7 +3,7 @@ #include "quantum.h" #define LAYOUT_60_ansi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K10, K11, K12, K13, K14, K15, \ + K00, K01, K02, K03, K04, K05, K06, K07, K10, 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, K46, K47, K50, \ K51, K52, K53, K54, K55, K56, K57, K60, K61, K62, K63, K64, \ @@ -18,4 +18,3 @@ { K60, K61, K62, K63, K64, K65, K66, K67 }, \ { K70, K71, K72, K73, K74 }, \ } - From 0bd03150e5952978e0a7044dcfea1bb617c2390d Mon Sep 17 00:00:00 2001 From: fauxpark Date: Sat, 27 Jul 2019 10:37:33 +1000 Subject: [PATCH 050/115] Remove NO_BACKLIGHT_CLOCK (#6418) --- keyboards/ares/config.h | 1 - keyboards/bfake/config.h | 1 - keyboards/canoe/config.h | 1 - keyboards/donutcables/budget96/config.h | 1 - keyboards/facew/config.h | 1 - keyboards/ft/mars80/config.h | 1 - keyboards/jc65/v32a/config.h | 1 - keyboards/panc60/config.h | 1 - keyboards/singa/config.h | 1 - keyboards/unikorn/config.h | 1 - quantum/template/ps2avrgb/config.h | 1 - 11 files changed, 11 deletions(-) diff --git a/keyboards/ares/config.h b/keyboards/ares/config.h index cca26aab3ee..dd01d156594 100644 --- a/keyboards/ares/config.h +++ b/keyboards/ares/config.h @@ -36,7 +36,6 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 -#define NO_BACKLIGHT_CLOCK #define BACKLIGHT_LEVELS 1 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/bfake/config.h b/keyboards/bfake/config.h index 235181d0954..8a43aacd9b8 100644 --- a/keyboards/bfake/config.h +++ b/keyboards/bfake/config.h @@ -37,7 +37,6 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 -#define NO_BACKLIGHT_CLOCK #define BACKLIGHT_LEVELS 1 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/canoe/config.h b/keyboards/canoe/config.h index cddb749dc1c..45581b54932 100644 --- a/keyboards/canoe/config.h +++ b/keyboards/canoe/config.h @@ -37,7 +37,6 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 -#define NO_BACKLIGHT_CLOCK #define BACKLIGHT_LEVELS 1 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/donutcables/budget96/config.h b/keyboards/donutcables/budget96/config.h index 75aacb4d4fe..b8772fc8656 100644 --- a/keyboards/donutcables/budget96/config.h +++ b/keyboards/donutcables/budget96/config.h @@ -36,6 +36,5 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 -#define NO_BACKLIGHT_CLOCK #define BACKLIGHT_LEVELS 1 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/facew/config.h b/keyboards/facew/config.h index 239783f8ba2..62ba98be59d 100644 --- a/keyboards/facew/config.h +++ b/keyboards/facew/config.h @@ -36,6 +36,5 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 -#define NO_BACKLIGHT_CLOCK #define BACKLIGHT_LEVELS 1 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/ft/mars80/config.h b/keyboards/ft/mars80/config.h index b56adb11462..1bf93928725 100644 --- a/keyboards/ft/mars80/config.h +++ b/keyboards/ft/mars80/config.h @@ -38,7 +38,6 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 -#define NO_BACKLIGHT_CLOCK #define BACKLIGHT_LEVELS 1 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/jc65/v32a/config.h b/keyboards/jc65/v32a/config.h index a5ec23ae4d7..e91f46aeb2d 100644 --- a/keyboards/jc65/v32a/config.h +++ b/keyboards/jc65/v32a/config.h @@ -28,7 +28,6 @@ along with this program. If not, see . #define MATRIX_ROWS 8 #define MATRIX_COLS 16 -#define NO_BACKLIGHT_CLOCK #define BACKLIGHT_LEVELS 1 #define RGBLED_NUM 16 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/panc60/config.h b/keyboards/panc60/config.h index b5889180e80..921d8da303a 100644 --- a/keyboards/panc60/config.h +++ b/keyboards/panc60/config.h @@ -36,6 +36,5 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 -#define NO_BACKLIGHT_CLOCK #define BACKLIGHT_LEVELS 1 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/singa/config.h b/keyboards/singa/config.h index 29110bd4ea4..dda54ccf4c9 100644 --- a/keyboards/singa/config.h +++ b/keyboards/singa/config.h @@ -36,6 +36,5 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 -#define NO_BACKLIGHT_CLOCK #define BACKLIGHT_LEVELS 1 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/unikorn/config.h b/keyboards/unikorn/config.h index 161956b88ec..a871c0e276f 100644 --- a/keyboards/unikorn/config.h +++ b/keyboards/unikorn/config.h @@ -35,7 +35,6 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 -#define NO_BACKLIGHT_CLOCK #define BACKLIGHT_LEVELS 1 #ifdef RGBLIGHT_ENABLE #define RGBLED_NUM 17 diff --git a/quantum/template/ps2avrgb/config.h b/quantum/template/ps2avrgb/config.h index 9117bf1f917..3ab841d7455 100644 --- a/quantum/template/ps2avrgb/config.h +++ b/quantum/template/ps2avrgb/config.h @@ -39,7 +39,6 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 -#define NO_BACKLIGHT_CLOCK #define BACKLIGHT_LEVELS 1 #define RGBLIGHT_ANIMATIONS From 2367e3e1fd6e5b93fe998399befa26d4de6a93ab Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Fri, 26 Jul 2019 21:49:29 -0700 Subject: [PATCH 051/115] [Keyboard] TGR Jane v2 (#6361) * initial commit TGR Jane * lighting support * use the default keymap lifted from community layouts for LAYOUT_tkl_ansi * add information regarding reset key, hardware supported, and hardware availability * document that it supports v1.1 as well thanks to nickheller's confirmation * update some verbage in the readme * add QMK Configurator support * establish switch matrix for three main layouts * add community layout support * readme fixes * Update keyboards/tgr/jane/info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/tgr/jane/rules.mk Co-Authored-By: Drashna Jaelre * Update keyboards/tgr/jane/config.h Co-Authored-By: fauxpark --- keyboards/tgr/jane/config.h | 38 ++ keyboards/tgr/jane/info.json | 20 + keyboards/tgr/jane/jane.c | 88 +++++ keyboards/tgr/jane/jane.h | 77 ++++ keyboards/tgr/jane/keymaps/default/config.h | 19 + keyboards/tgr/jane/keymaps/default/keymap.c | 27 ++ keyboards/tgr/jane/keymaps/default/readme.md | 1 + keyboards/tgr/jane/keymaps/default/rules.mk | 0 keyboards/tgr/jane/readme.md | 47 +++ keyboards/tgr/jane/rules.mk | 50 +++ keyboards/tgr/jane/usbconfig.h | 393 +++++++++++++++++++ 11 files changed, 760 insertions(+) create mode 100644 keyboards/tgr/jane/config.h create mode 100644 keyboards/tgr/jane/info.json create mode 100644 keyboards/tgr/jane/jane.c create mode 100644 keyboards/tgr/jane/jane.h create mode 100644 keyboards/tgr/jane/keymaps/default/config.h create mode 100644 keyboards/tgr/jane/keymaps/default/keymap.c create mode 100644 keyboards/tgr/jane/keymaps/default/readme.md create mode 100644 keyboards/tgr/jane/keymaps/default/rules.mk create mode 100644 keyboards/tgr/jane/readme.md create mode 100644 keyboards/tgr/jane/rules.mk create mode 100644 keyboards/tgr/jane/usbconfig.h diff --git a/keyboards/tgr/jane/config.h b/keyboards/tgr/jane/config.h new file mode 100644 index 00000000000..a5d63f621bb --- /dev/null +++ b/keyboards/tgr/jane/config.h @@ -0,0 +1,38 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +#define VENDOR_ID 0x20A0 +#define PRODUCT_ID 0x422D +#define MANUFACTURER TGR +#define PRODUCT Jane + +#define MATRIX_ROWS 8 +#define MATRIX_COLS 15 + +// 0 1 2 3 4 5 6 7 8 9 A B C D E +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7 } +#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2, D7 } +#define UNUSED_PINS + +#define DIODE_DIRECTION COL2ROW +#define DEBOUNCE 5 + +#define BACKLIGHT_LEVELS 1 diff --git a/keyboards/tgr/jane/info.json b/keyboards/tgr/jane/info.json new file mode 100644 index 00000000000..6fab4db1ed6 --- /dev/null +++ b/keyboards/tgr/jane/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "TGR Jane v2", + "url": "", + "maintainer": "qmk", + "width": 18.25, + "height": 6.5, + "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.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.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}, {"x":13.75, "y":3.5, "w":1.25}, {"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, "y":4.5}, {"x":16.25, "y":4.5}, {"x":0, "y":5.5, "w":1.25}, {"x":1.25, "y":5.5}, {"x":2.25, "y":5.5}, {"x":3.25, "y":5.5, "w":1.25}, {"x":4.5, "y":5.5, "w":1.25}, {"x":5.75, "y":5.5, "w":1.25}, {"x":7, "y":5.5, "w":1.25}, {"x":8.25, "y":5.5, "w":1.25}, {"x":9.5, "y":5.5, "w":1.25}, {"x":10.75, "y":5.5}, {"x":11.75, "y":5.5}, {"x":12.75, "y":5.5}, {"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}] + }, + + "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}] + }, + + "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.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":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}, {"x":13.75, "y":2.5, "w":1.25, "h":2}, {"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":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/tgr/jane/jane.c b/keyboards/tgr/jane/jane.c new file mode 100644 index 00000000000..c17cb008486 --- /dev/null +++ b/keyboards/tgr/jane/jane.c @@ -0,0 +1,88 @@ +/* Copyright 2019 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 "i2c_master.h" +#include "quantum.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +extern rgblight_config_t rgblight_config; + +void rgblight_set(void) { + if (!rgblight_config.enable) { + for (uint8_t i = 0; i < RGBLED_NUM; i++) { + led[i].r = 0; + led[i].g = 0; + led[i].b = 0; + } + } + + i2c_init(); + i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100); +} +#endif + +void matrix_init_kb(void) { +#ifdef RGBLIGHT_ENABLE + if (rgblight_config.enable) { + i2c_init(); + i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100); + } +#endif + // call user level keymaps, if any + matrix_init_user(); +} + +void matrix_scan_kb(void) { +#ifdef RGBLIGHT_ENABLE + rgblight_task(); +#endif + matrix_scan_user(); + /* Nothing else for now. */ +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +void backlight_init_ports(void) { + // initialize pins D0, D1, D4 and D6 as output + setPinOutput(D0); + setPinOutput(D1); + setPinOutput(D4); + setPinOutput(D6); + + // turn backlight LEDs on + writePinHigh(D0); + writePinHigh(D1); + writePinHigh(D4); + writePinHigh(D6); +} + +void backlight_set(uint8_t level) { + if (level == 0) { + // turn backlight LEDs off + writePinLow(D0); + writePinLow(D1); + writePinLow(D4); + writePinLow(D6); + } else { + // turn backlight LEDs on + writePinHigh(D0); + writePinHigh(D1); + writePinHigh(D4); + writePinHigh(D6); + } +} \ No newline at end of file diff --git a/keyboards/tgr/jane/jane.h b/keyboards/tgr/jane/jane.h new file mode 100644 index 00000000000..2008d49d9a2 --- /dev/null +++ b/keyboards/tgr/jane/jane.h @@ -0,0 +1,77 @@ +/* Copyright 2019 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" + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k6B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k6C, k6D, k6E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k7C, k7D, k7E, \ + 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, k2E, \ + k50, k51, k52, k53, k54, k55, k57, k58, k59, k5A, k5B, k5C, k5D, k5E, k3E, 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, 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, k4C, k4D, k4E }, \ + { k50, k51, k52, k53, k54, k55, KC_NO, k57, k58, k59, k5A, k5B, k5C, k5D, k5E }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k6B, k6C, k6D, k6E }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k7C, k7D, k7E }, \ +} + + +#define LAYOUT_tkl_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k6B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k6C, k6D, k6E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k7C, k7D, k7E, \ + 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, k2E, \ + k50, k51, k52, k55, k58, k59, k5A, k5D, k5E, k3E, 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, KC_NO }, \ + { 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, KC_NO, k3D, k3E }, \ + { k40, KC_NO, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, KC_NO, k4E }, \ + { k50, k51, k52, KC_NO, KC_NO, k55, KC_NO, KC_NO, k58, k59, k5A, KC_NO, KC_NO, k5D, k5E }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k6B, k6C, k6D, k6E }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k7C, k7D, k7E }, \ +} + +#define LAYOUT_tkl_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k6B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k6C, k6D, k6E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k7C, k7D, k7E, \ + 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, k2E, \ + k50, k51, k52, k55, k58, k59, k5A, k5D, k5E, k3E, 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, KC_NO }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, KC_NO, 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, k4C, KC_NO, k4E }, \ + { k50, k51, k52, KC_NO, KC_NO, k55, KC_NO, KC_NO, k58, k59, k5A, KC_NO, KC_NO, k5D, k5E }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k6B, k6C, k6D, k6E }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k7C, k7D, k7E }, \ +} diff --git a/keyboards/tgr/jane/keymaps/default/config.h b/keyboards/tgr/jane/keymaps/default/config.h new file mode 100644 index 00000000000..93b81b57ba4 --- /dev/null +++ b/keyboards/tgr/jane/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2018 amnesia0287 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// place overrides here diff --git a/keyboards/tgr/jane/keymaps/default/keymap.c b/keyboards/tgr/jane/keymaps/default/keymap.c new file mode 100644 index 00000000000..e7579457e6f --- /dev/null +++ b/keyboards/tgr/jane/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2019 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_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,KC_RGUI, KC_APP,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT) \ +}; diff --git a/keyboards/tgr/jane/keymaps/default/readme.md b/keyboards/tgr/jane/keymaps/default/readme.md new file mode 100644 index 00000000000..983182da247 --- /dev/null +++ b/keyboards/tgr/jane/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Jane \ No newline at end of file diff --git a/keyboards/tgr/jane/keymaps/default/rules.mk b/keyboards/tgr/jane/keymaps/default/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/tgr/jane/readme.md b/keyboards/tgr/jane/readme.md new file mode 100644 index 00000000000..10986cde335 --- /dev/null +++ b/keyboards/tgr/jane/readme.md @@ -0,0 +1,47 @@ +# Jane v2 + +TKL Custom Keyboard. + +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +Hardware Supported: TGR Jane (Pontoporia) PCB v1.1, v1.2 +Hardware Availability: [Geekhack Group Buy](https://geekhack.org/index.php?topic=97552.1200) + + +Make example for this keyboard (after setting up your build environment): + + make tgr/jane:default + +Flashing + +ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods. + +**Reset Key:** Hold down the key located at `K00`, commonly programmed as `Esc` while plugging in the keyboard. + +Windows: +1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash). +2. Place your keyboard into reset. +3. Press the `Find Device` button and ensure that your keyboard is found. +4. Press the `Open .hex File` button and locate the `.hex` file you created. +5. Press the `Flash Device` button and wait for the process to complete. + +macOS: +1. Install homebrew by typing the following: + ``` + /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + ``` +2. Install `crosspack-avr`. + ``` + brew cask install crosspack-avr + ``` +3. Install the following packages: + ``` + brew install python3 + pip3 install pyusb + brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb + ``` + +4. Place your keyboard into reset. +5. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file. + + +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/tgr/jane/rules.mk b/keyboards/tgr/jane/rules.mk new file mode 100644 index 00000000000..bf9aa79a86f --- /dev/null +++ b/keyboards/tgr/jane/rules.mk @@ -0,0 +1,50 @@ +# Copyright 2017 Luiz Ribeiro +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# MCU name +MCU = atmega32a +PROTOCOL = VUSB + +# unsupported features for now +NO_UART = yes +NO_SUSPEND_POWER_DOWN = yes + +# processor frequency +F_CPU = 12000000 + +# Bootloader +# This definition is optional, and if your keyboard supports multiple bootloaders of +# different sizes, comment this out, and the correct address will be loaded +# automatically (+60). See bootloader.mk for all options. +BOOTLOADER = bootloadHID + +# build options +BOOTMAGIC_ENABLE = no +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = yes +COMMAND_ENABLE = yes +BACKLIGHT_ENABLE = yes +RGBLIGHT_ENABLE = no +RGBLIGHT_CUSTOM_DRIVER = no + +OPT_DEFS = -DDEBUG_LEVEL=0 + +QUANTUM_LIB_SRC = i2c_master.c + +# programming options +PROGRAM_CMD = ./util/atmega32a_program.py $(TARGET).hex + +LAYOUTS = tkl_ansi tkl_iso diff --git a/keyboards/tgr/jane/usbconfig.h b/keyboards/tgr/jane/usbconfig.h new file mode 100644 index 00000000000..54a7d20f142 --- /dev/null +++ b/keyboards/tgr/jane/usbconfig.h @@ -0,0 +1,393 @@ +/* Name: usbconfig.h + * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers + * Author: Christian Starkjohann + * Creation Date: 2005-04-01 + * Tabsize: 4 + * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH + * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) + * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $ + */ + +#pragma once + +#include "config.h" + +/* +General Description: +This file is an example configuration (with inline documentation) for the USB +driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is +also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may +wire the lines to any other port, as long as D+ is also wired to INT0 (or any +other hardware interrupt, as long as it is the highest level interrupt, see +section at the end of this file). +*/ + +/* ---------------------------- Hardware Config ---------------------------- */ + +#define USB_CFG_IOPORTNAME D +/* This is the port where the USB bus is connected. When you configure it to + * "B", the registers PORTB, PINB and DDRB will be used. + */ +#define USB_CFG_DMINUS_BIT 3 +/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. + * This may be any bit in the port. + */ +#define USB_CFG_DPLUS_BIT 2 +/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. + * This may be any bit in the port. Please note that D+ must also be connected + * to interrupt pin INT0! [You can also use other interrupts, see section + * "Optional MCU Description" below, or you can connect D- to the interrupt, as + * it is required if you use the USB_COUNT_SOF feature. If you use D- for the + * interrupt, the USB interrupt will also be triggered at Start-Of-Frame + * markers every millisecond.] + */ +#define USB_CFG_CLOCK_KHZ (F_CPU/1000) +/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000, + * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code + * require no crystal, they tolerate +/- 1% deviation from the nominal + * frequency. All other rates require a precision of 2000 ppm and thus a + * crystal! + * Since F_CPU should be defined to your actual clock rate anyway, you should + * not need to modify this setting. + */ +#define USB_CFG_CHECK_CRC 0 +/* Define this to 1 if you want that the driver checks integrity of incoming + * data packets (CRC checks). CRC checks cost quite a bit of code size and are + * currently only available for 18 MHz crystal clock. You must choose + * USB_CFG_CLOCK_KHZ = 18000 if you enable this option. + */ + +/* ----------------------- Optional Hardware Config ------------------------ */ + +/* #define USB_CFG_PULLUP_IOPORTNAME D */ +/* If you connect the 1.5k pullup resistor from D- to a port pin instead of + * V+, you can connect and disconnect the device from firmware by calling + * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h). + * This constant defines the port on which the pullup resistor is connected. + */ +/* #define USB_CFG_PULLUP_BIT 4 */ +/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined + * above) where the 1.5k pullup resistor is connected. See description + * above for details. + */ + +/* --------------------------- Functional Range ---------------------------- */ + +#define USB_CFG_HAVE_INTRIN_ENDPOINT 1 +/* Define this to 1 if you want to compile a version with two endpoints: The + * default control endpoint 0 and an interrupt-in endpoint (any other endpoint + * number). + */ +#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1 +/* Define this to 1 if you want to compile a version with three endpoints: The + * default control endpoint 0, an interrupt-in endpoint 3 (or the number + * configured below) and a catch-all default interrupt-in endpoint as above. + * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature. + */ +#define USB_CFG_EP3_NUMBER 3 +/* If the so-called endpoint 3 is used, it can now be configured to any other + * endpoint number (except 0) with this macro. Default if undefined is 3. + */ +/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */ +/* The above macro defines the startup condition for data toggling on the + * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1. + * Since the token is toggled BEFORE sending any data, the first packet is + * sent with the oposite value of this configuration! + */ +#define USB_CFG_IMPLEMENT_HALT 0 +/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature + * for endpoint 1 (interrupt endpoint). Although you may not need this feature, + * it is required by the standard. We have made it a config option because it + * bloats the code considerably. + */ +#define USB_CFG_SUPPRESS_INTR_CODE 0 +/* Define this to 1 if you want to declare interrupt-in endpoints, but don't + * want to send any data over them. If this macro is defined to 1, functions + * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if + * you need the interrupt-in endpoints in order to comply to an interface + * (e.g. HID), but never want to send any data. This option saves a couple + * of bytes in flash memory and the transmit buffers in RAM. + */ +#define USB_CFG_INTR_POLL_INTERVAL 1 +/* If you compile a version with endpoint 1 (interrupt-in), this is the poll + * interval. The value is in milliseconds and must not be less than 10 ms for + * low speed devices. + */ +#define USB_CFG_IS_SELF_POWERED 0 +/* Define this to 1 if the device has its own power supply. Set it to 0 if the + * device is powered from the USB bus. + */ +#define USB_CFG_MAX_BUS_POWER 500 +/* Set this variable to the maximum USB bus power consumption of your device. + * The value is in milliamperes. [It will be divided by two since USB + * communicates power requirements in units of 2 mA.] + */ +#define USB_CFG_IMPLEMENT_FN_WRITE 1 +/* Set this to 1 if you want usbFunctionWrite() to be called for control-out + * transfers. Set it to 0 if you don't need it and want to save a couple of + * bytes. + */ +#define USB_CFG_IMPLEMENT_FN_READ 0 +/* Set this to 1 if you need to send control replies which are generated + * "on the fly" when usbFunctionRead() is called. If you only want to send + * data from a static buffer, set it to 0 and return the data from + * usbFunctionSetup(). This saves a couple of bytes. + */ +#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0 +/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints. + * You must implement the function usbFunctionWriteOut() which receives all + * interrupt/bulk data sent to any endpoint other than 0. The endpoint number + * can be found in 'usbRxToken'. + */ +#define USB_CFG_HAVE_FLOWCONTROL 0 +/* Define this to 1 if you want flowcontrol over USB data. See the definition + * of the macros usbDisableAllRequests() and usbEnableAllRequests() in + * usbdrv.h. + */ +#define USB_CFG_DRIVER_FLASH_PAGE 0 +/* If the device has more than 64 kBytes of flash, define this to the 64 k page + * where the driver's constants (descriptors) are located. Or in other words: + * Define this to 1 for boot loaders on the ATMega128. + */ +#define USB_CFG_LONG_TRANSFERS 0 +/* Define this to 1 if you want to send/receive blocks of more than 254 bytes + * in a single control-in or control-out transfer. Note that the capability + * for long transfers increases the driver size. + */ +/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */ +/* This macro is a hook if you want to do unconventional things. If it is + * defined, it's inserted at the beginning of received message processing. + * If you eat the received message and don't want default processing to + * proceed, do a return after doing your things. One possible application + * (besides debugging) is to flash a status LED on each packet. + */ +/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */ +/* This macro is a hook if you need to know when an USB RESET occurs. It has + * one parameter which distinguishes between the start of RESET state and its + * end. + */ +/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */ +/* This macro (if defined) is executed when a USB SET_ADDRESS request was + * received. + */ +#define USB_COUNT_SOF 1 +/* define this macro to 1 if you need the global variable "usbSofCount" which + * counts SOF packets. This feature requires that the hardware interrupt is + * connected to D- instead of D+. + */ +/* #ifdef __ASSEMBLER__ + * macro myAssemblerMacro + * in YL, TCNT0 + * sts timer0Snapshot, YL + * endm + * #endif + * #define USB_SOF_HOOK myAssemblerMacro + * This macro (if defined) is executed in the assembler module when a + * Start Of Frame condition is detected. It is recommended to define it to + * the name of an assembler macro which is defined here as well so that more + * than one assembler instruction can be used. The macro may use the register + * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages + * immediately after an SOF pulse may be lost and must be retried by the host. + * What can you do with this hook? Since the SOF signal occurs exactly every + * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in + * designs running on the internal RC oscillator. + * Please note that Start Of Frame detection works only if D- is wired to the + * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES! + */ +#define USB_CFG_CHECK_DATA_TOGGLING 0 +/* define this macro to 1 if you want to filter out duplicate data packets + * sent by the host. Duplicates occur only as a consequence of communication + * errors, when the host does not receive an ACK. Please note that you need to + * implement the filtering yourself in usbFunctionWriteOut() and + * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable + * for each control- and out-endpoint to check for duplicate packets. + */ +#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0 +/* define this macro to 1 if you want the function usbMeasureFrameLength() + * compiled in. This function can be used to calibrate the AVR's RC oscillator. + */ +#define USB_USE_FAST_CRC 0 +/* The assembler module has two implementations for the CRC algorithm. One is + * faster, the other is smaller. This CRC routine is only used for transmitted + * messages where timing is not critical. The faster routine needs 31 cycles + * per byte while the smaller one needs 61 to 69 cycles. The faster routine + * may be worth the 32 bytes bigger code size if you transmit lots of data and + * run the AVR close to its limit. + */ + +/* -------------------------- Device Description --------------------------- */ + +#define USB_CFG_VENDOR_ID (VENDOR_ID & 0xFF), ((VENDOR_ID >> 8) & 0xFF) +/* USB vendor ID for the device, low byte first. If you have registered your + * own Vendor ID, define it here. Otherwise you may use one of obdev's free + * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_ID (PRODUCT_ID & 0xFF), ((PRODUCT_ID >> 8) & 0xFF) +/* This is the ID of the product, low byte first. It is interpreted in the + * scope of the vendor ID. If you have registered your own VID with usb.org + * or if you have licensed a PID from somebody else, define it here. Otherwise + * you may use one of obdev's free shared VID/PID pairs. See the file + * USB-IDs-for-free.txt for details! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_VERSION 0x00, 0x02 +/* Version number of the device: Minor number first, then major number. + */ +#define USB_CFG_VENDOR_NAME 'w', 'i', 'n', 'k', 'e', 'y', 'l', 'e', 's', 's', '.', 'k', 'r' +#define USB_CFG_VENDOR_NAME_LEN 13 +/* These two values define the vendor name returned by the USB device. The name + * must be given as a list of characters under single quotes. The characters + * are interpreted as Unicode (UTF-16) entities. + * If you don't want a vendor name string, undefine these macros. + * ALWAYS define a vendor name containing your Internet domain name if you use + * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for + * details. + */ +#define USB_CFG_DEVICE_NAME 'p', 's', '2', 'a', 'v', 'r', 'G', 'B' +#define USB_CFG_DEVICE_NAME_LEN 8 +/* Same as above for the device name. If you don't want a device name, undefine + * the macros. See the file USB-IDs-for-free.txt before you assign a name if + * you use a shared VID/PID. + */ +/*#define USB_CFG_SERIAL_NUMBER 'N', 'o', 'n', 'e' */ +/*#define USB_CFG_SERIAL_NUMBER_LEN 0 */ +/* Same as above for the serial number. If you don't want a serial number, + * undefine the macros. + * It may be useful to provide the serial number through other means than at + * compile time. See the section about descriptor properties below for how + * to fine tune control over USB descriptors such as the string descriptor + * for the serial number. + */ +#define USB_CFG_DEVICE_CLASS 0 +#define USB_CFG_DEVICE_SUBCLASS 0 +/* See USB specification if you want to conform to an existing device class. + * Class 0xff is "vendor specific". + */ +#define USB_CFG_INTERFACE_CLASS 3 /* HID */ +#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */ +#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */ +/* See USB specification if you want to conform to an existing device class or + * protocol. The following classes must be set at interface level: + * HID class is 3, no subclass and protocol required (but may be useful!) + * CDC class is 2, use subclass 2 and protocol 1 for ACM + */ +#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0 +/* Define this to the length of the HID report descriptor, if you implement + * an HID device. Otherwise don't define it or define it to 0. + * If you use this define, you must add a PROGMEM character array named + * "usbHidReportDescriptor" to your code which contains the report descriptor. + * Don't forget to keep the array and this define in sync! + */ + +/* #define USB_PUBLIC static */ +/* Use the define above if you #include usbdrv.c instead of linking against it. + * This technique saves a couple of bytes in flash memory. + */ + +/* ------------------- Fine Control over USB Descriptors ------------------- */ +/* If you don't want to use the driver's default USB descriptors, you can + * provide our own. These can be provided as (1) fixed length static data in + * flash memory, (2) fixed length static data in RAM or (3) dynamically at + * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more + * information about this function. + * Descriptor handling is configured through the descriptor's properties. If + * no properties are defined or if they are 0, the default descriptor is used. + * Possible properties are: + * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched + * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is + * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if + * you want RAM pointers. + * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found + * in static memory is in RAM, not in flash memory. + * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash), + * the driver must know the descriptor's length. The descriptor itself is + * found at the address of a well known identifier (see below). + * List of static descriptor names (must be declared PROGMEM if in flash): + * char usbDescriptorDevice[]; + * char usbDescriptorConfiguration[]; + * char usbDescriptorHidReport[]; + * char usbDescriptorString0[]; + * int usbDescriptorStringVendor[]; + * int usbDescriptorStringDevice[]; + * int usbDescriptorStringSerialNumber[]; + * Other descriptors can't be provided statically, they must be provided + * dynamically at runtime. + * + * Descriptor properties are or-ed or added together, e.g.: + * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18)) + * + * The following descriptors are defined: + * USB_CFG_DESCR_PROPS_DEVICE + * USB_CFG_DESCR_PROPS_CONFIGURATION + * USB_CFG_DESCR_PROPS_STRINGS + * USB_CFG_DESCR_PROPS_STRING_0 + * USB_CFG_DESCR_PROPS_STRING_VENDOR + * USB_CFG_DESCR_PROPS_STRING_PRODUCT + * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER + * USB_CFG_DESCR_PROPS_HID + * USB_CFG_DESCR_PROPS_HID_REPORT + * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver) + * + * Note about string descriptors: String descriptors are not just strings, they + * are Unicode strings prefixed with a 2 byte header. Example: + * int serialNumberDescriptor[] = { + * USB_STRING_DESCRIPTOR_HEADER(6), + * 'S', 'e', 'r', 'i', 'a', 'l' + * }; + */ + +#define USB_CFG_DESCR_PROPS_DEVICE 0 +#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_CONFIGURATION 0 +#define USB_CFG_DESCR_PROPS_STRINGS 0 +#define USB_CFG_DESCR_PROPS_STRING_0 0 +#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0 +#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0 +#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0 +#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_HID 0 +#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_HID_REPORT 0 +#define USB_CFG_DESCR_PROPS_UNKNOWN 0 + +#define usbMsgPtr_t unsigned short +/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to + * a scalar type here because gcc generates slightly shorter code for scalar + * arithmetics than for pointer arithmetics. Remove this define for backward + * type compatibility or define it to an 8 bit type if you use data in RAM only + * and all RAM is below 256 bytes (tiny memory model in IAR CC). + */ + +/* ----------------------- Optional MCU Description ------------------------ */ + +/* The following configurations have working defaults in usbdrv.h. You + * usually don't need to set them explicitly. Only if you want to run + * the driver on a device which is not yet supported or with a compiler + * which is not fully supported (such as IAR C) or if you use a differnt + * interrupt than INT0, you may have to define some of these. + */ +/* #define USB_INTR_CFG MCUCR */ +/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */ +/* #define USB_INTR_CFG_CLR 0 */ +/* #define USB_INTR_ENABLE GIMSK */ +/* #define USB_INTR_ENABLE_BIT INT0 */ +/* #define USB_INTR_PENDING GIFR */ +/* #define USB_INTR_PENDING_BIT INTF0 */ +/* #define USB_INTR_VECTOR INT0_vect */ + +/* Set INT1 for D- falling edge to count SOF */ +/* #define USB_INTR_CFG EICRA */ +#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10)) +/* #define USB_INTR_CFG_CLR 0 */ +/* #define USB_INTR_ENABLE EIMSK */ +#define USB_INTR_ENABLE_BIT INT1 +/* #define USB_INTR_PENDING EIFR */ +#define USB_INTR_PENDING_BIT INTF1 +#define USB_INTR_VECTOR INT1_vect From 22a8992d1b1caca19874b261cc070ad44a32c52e Mon Sep 17 00:00:00 2001 From: yrdns Date: Fri, 26 Jul 2019 23:17:51 -0700 Subject: [PATCH 052/115] Fix RGB Matrix Cycle Left-Right Animation (#6421) One-line fix for a typo that could break build if DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT was defined but not DISABLE_RGB_MATRIX_CYCLE_ALL --- quantum/rgb_matrix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/rgb_matrix.c b/quantum/rgb_matrix.c index f170cfc1b75..f649525ccb6 100644 --- a/quantum/rgb_matrix.c +++ b/quantum/rgb_matrix.c @@ -88,7 +88,7 @@ #endif #if !defined(RGB_MATRIX_STARTUP_MODE) - #ifndef DISABLE_RGB_MATRIX_CYCLE_ALL + #ifndef DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT #else // fallback to solid colors if RGB_MATRIX_CYCLE_LEFT_RIGHT is disabled in userspace From cd7bc0313486b8786e52ee202834e4dc6f827a6b Mon Sep 17 00:00:00 2001 From: Sid Carter Date: Sat, 27 Jul 2019 02:18:55 -0400 Subject: [PATCH 053/115] [Keymap] Personal keymap for the planck with muzak (#6402) * personal keymap for the planck with sounds * need that minus and underscore where I can see them * remove unused block * some, shall we call them, minor changes? * I don't think this is required anymore --- keyboards/planck/keymaps/skank/keymap.c | 162 +++++++++++++++++++++++ keyboards/planck/keymaps/skank/readme.md | 8 ++ keyboards/planck/keymaps/skank/rules.mk | 2 + 3 files changed, 172 insertions(+) create mode 100644 keyboards/planck/keymaps/skank/keymap.c create mode 100644 keyboards/planck/keymaps/skank/readme.md create mode 100644 keyboards/planck/keymaps/skank/rules.mk diff --git a/keyboards/planck/keymaps/skank/keymap.c b/keyboards/planck/keymaps/skank/keymap.c new file mode 100644 index 00000000000..e36d84d1849 --- /dev/null +++ b/keyboards/planck/keymaps/skank/keymap.c @@ -0,0 +1,162 @@ +/* Copyright 2019 Khader Syed + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 skank_layers { + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum skank_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + LOWER, + RAISE, + ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | |Lower | Enter|Space |Raise | / | Left | Down |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, + KC_GESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_BSLS, + KC_LCTL, KC_LALT, KC_LGUI, _______, LOWER, KC_ENT, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | |Lower | Enter|Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = LAYOUT_ortho_4x12( + 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_GESC, 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_UP, KC_BSLS, + KC_LCTL, KC_LALT, KC_LGUI, _______, LOWER, KC_ENT, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | _ | + |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | _ | + | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|Qwerty|Colemk| | | | | Reset| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_ortho_4x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, AU_ON, AU_OFF, QWERTY, COLEMAK, _______, _______, _______, _______, RESET, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + +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 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; + } + return true; +} \ No newline at end of file diff --git a/keyboards/planck/keymaps/skank/readme.md b/keyboards/planck/keymaps/skank/readme.md new file mode 100644 index 00000000000..673956aca19 --- /dev/null +++ b/keyboards/planck/keymaps/skank/readme.md @@ -0,0 +1,8 @@ +# My planck layout + +These are my changes: + +- add a colemak layout +- keep it clean +- add option to enable mouse keys +- and just enable some sound diff --git a/keyboards/planck/keymaps/skank/rules.mk b/keyboards/planck/keymaps/skank/rules.mk new file mode 100644 index 00000000000..4c65d4af1e3 --- /dev/null +++ b/keyboards/planck/keymaps/skank/rules.mk @@ -0,0 +1,2 @@ +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) + From dd6330b07c80eb624383e5bf01aec82035f68e2d Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 26 Jul 2019 23:20:42 -0700 Subject: [PATCH 054/115] [Keyboard] Provide QMK Configurator API data for business_card (#6412) - alpha and beta revisions - deleted keyboards/business_card/info.json (made redundant by revision-specific files) --- keyboards/business_card/alpha/info.json | 19 +++++++++++++++++++ keyboards/business_card/beta/info.json | 19 +++++++++++++++++++ keyboards/business_card/info.json | 0 3 files changed, 38 insertions(+) create mode 100644 keyboards/business_card/alpha/info.json create mode 100644 keyboards/business_card/beta/info.json delete mode 100644 keyboards/business_card/info.json diff --git a/keyboards/business_card/alpha/info.json b/keyboards/business_card/alpha/info.json new file mode 100644 index 00000000000..f0cd04efa28 --- /dev/null +++ b/keyboards/business_card/alpha/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "business_card alpha", + "url": "", + "maintainer": "kakunpc", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"1", "x":0, "y":0}, + {"label":"2", "x":1, "y":0}, + {"label":"3", "x":2, "y":0}, + {"label":"4", "x":0, "y":1}, + {"label":"5", "x":1, "y":1}, + {"label":"6", "x":2, "y":1} + ] + } + } +} diff --git a/keyboards/business_card/beta/info.json b/keyboards/business_card/beta/info.json new file mode 100644 index 00000000000..62f2797a75e --- /dev/null +++ b/keyboards/business_card/beta/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "business_card beta", + "url": "", + "maintainer": "kakunpc", + "width": 2, + "height": 3, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"1", "x":0, "y":0}, + {"label":"2", "x":1, "y":0}, + {"label":"3", "x":0, "y":1}, + {"label":"4", "x":1, "y":1}, + {"label":"5", "x":0, "y":2}, + {"label":"6", "x":1, "y":2} + ] + } + } +} diff --git a/keyboards/business_card/info.json b/keyboards/business_card/info.json deleted file mode 100644 index e69de29bb2d..00000000000 From 57958ce88e91d53ac21611ae8da244c9d6a52721 Mon Sep 17 00:00:00 2001 From: Naoto Takai Date: Sun, 28 Jul 2019 01:11:50 +0900 Subject: [PATCH 055/115] [Keyboard] Add support for Cocoa40 (#6414) --- keyboards/cocoa40/cocoa40.c | 43 +++++++++++ keyboards/cocoa40/cocoa40.h | 44 +++++++++++ keyboards/cocoa40/config.h | 55 ++++++++++++++ keyboards/cocoa40/info.json | 12 +++ keyboards/cocoa40/keymaps/default/config.h | 20 +++++ keyboards/cocoa40/keymaps/default/keymap.c | 55 ++++++++++++++ keyboards/cocoa40/keymaps/default/readme.md | 1 + keyboards/cocoa40/keymaps/default/rules.mk | 1 + keyboards/cocoa40/readme.md | 15 ++++ keyboards/cocoa40/rules.mk | 81 +++++++++++++++++++++ 10 files changed, 327 insertions(+) create mode 100644 keyboards/cocoa40/cocoa40.c create mode 100644 keyboards/cocoa40/cocoa40.h create mode 100644 keyboards/cocoa40/config.h create mode 100644 keyboards/cocoa40/info.json create mode 100644 keyboards/cocoa40/keymaps/default/config.h create mode 100644 keyboards/cocoa40/keymaps/default/keymap.c create mode 100644 keyboards/cocoa40/keymaps/default/readme.md create mode 100644 keyboards/cocoa40/keymaps/default/rules.mk create mode 100644 keyboards/cocoa40/readme.md create mode 100644 keyboards/cocoa40/rules.mk diff --git a/keyboards/cocoa40/cocoa40.c b/keyboards/cocoa40/cocoa40.c new file mode 100644 index 00000000000..22d19828d6a --- /dev/null +++ b/keyboards/cocoa40/cocoa40.c @@ -0,0 +1,43 @@ +/* Copyright 2019 'Naoto Takai' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "cocoa40.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + 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); +} diff --git a/keyboards/cocoa40/cocoa40.h b/keyboards/cocoa40/cocoa40.h new file mode 100644 index 00000000000..a468a75ef2c --- /dev/null +++ b/keyboards/cocoa40/cocoa40.h @@ -0,0 +1,44 @@ +/* Copyright 2019 'Naoto Takai' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, R06, R07, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, R26, \ + L31, L32, L33, R30, R32, R33 \ +) \ +{ \ + { L00, L01, L02, L03, L04, L05, KC_NO, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, KC_NO, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, KC_NO, KC_NO }, \ + { KC_NO, L31, L32, L33, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, R06, R07 }, \ + { R10, R11, R12, R13, R14, R15, R16, KC_NO }, \ + { R20, R21, R22, R23, R24, R25, R26, KC_NO }, \ + { R30, KC_NO, R32, R33, KC_NO, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/cocoa40/config.h b/keyboards/cocoa40/config.h new file mode 100644 index 00000000000..0dfa02aa672 --- /dev/null +++ b/keyboards/cocoa40/config.h @@ -0,0 +1,55 @@ +/* +Copyright 2019 'Naoto Takai' + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0xC0C0 +#define PRODUCT_ID 0x4000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER recompile keys +#define PRODUCT cocoa40 +#define DESCRIPTION A 40% keyboard for programmers. + +/* key matrix size */ +#define MATRIX_ROWS 8 +#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 { F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B5, B4, E6, D7, C6, D4, D0, D1 } +#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 D2 // or D1, D2, D3, E6 +#define SPLIT_HAND_PIN D3 diff --git a/keyboards/cocoa40/info.json b/keyboards/cocoa40/info.json new file mode 100644 index 00000000000..d359c0ddb6b --- /dev/null +++ b/keyboards/cocoa40/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Cocoa40", + "url": "https://keys.recompile.net/projects/cocoa40/", + "maintainer": "Naoto Takai", + "width": 15.25, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":7.25, "y":0}, {"label":"U", "x":8.25, "y":0}, {"label":"I", "x":9.25, "y":0}, {"label":"O", "x":10.25, "y":0}, {"label":"P", "x":11.25, "y":0}, {"label":"{", "x":12.25, "y":0}, {"label":"}", "x":13.25, "y":0}, {"label":"Back
Space", "x":14.25, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":7.5, "y":1}, {"label":"J", "x":8.5, "y":1}, {"label":"K", "x":9.5, "y":1}, {"label":"L", "x":10.5, "y":1}, {"label":":", "x":11.5, "y":1}, {"label":"\"", "x":12.5, "y":1}, {"label":"Enter", "x":13.5, "y":1, "w":1.75}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":8, "y":2}, {"label":"M", "x":9, "y":2}, {"label":"<", "x":10, "y":2}, {"label":">", "x":11, "y":2}, {"label":"?", "x":12, "y":2}, {"label":"Shift", "x":13, "y":2, "w":1.25}, {"label":"Fn", "x":14.25, "y":2}, {"label":"Opt", "x":1.5, "y":3}, {"label":"Command", "x":2.5, "y":3, "w":1.5}, {"label":"", "x":4, "y":3, "w":2.25}, {"label":"", "x":7.5, "y":3, "w":2.75}, {"label":"Command", "x":10.25, "y":3, "w":1.5}, {"label":"Opt", "x":11.75, "y":3}] + } + } +} diff --git a/keyboards/cocoa40/keymaps/default/config.h b/keyboards/cocoa40/keymaps/default/config.h new file mode 100644 index 00000000000..01232ff92f2 --- /dev/null +++ b/keyboards/cocoa40/keymaps/default/config.h @@ -0,0 +1,20 @@ +/* Copyright 2019 'Naoto Takai' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// place overrides here + diff --git a/keyboards/cocoa40/keymaps/default/keymap.c b/keyboards/cocoa40/keymaps/default/keymap.c new file mode 100644 index 00000000000..320f918a9e2 --- /dev/null +++ b/keyboards/cocoa40/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2019 'Naoto Takai' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _NUMS, + _SYMS, + _FN, +}; + +#define KC_NUMS LT(_NUMS, KC_SPACE) +#define KC_SYMS LT(_SYMS, KC_SPACE) +#define KC_FN MO(_FN) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_GESC, 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_BSPACE, + KC_LCTRL, 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_LSHIFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, KC_FN, + KC_LALT, KC_LGUI, KC_NUMS, KC_SYMS, KC_RGUI, KC_RALT + ), + [_NUMS] = LAYOUT( + KC_TAB, 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_BSLASH, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [_SYMS] = LAYOUT( + KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_MINUS, KC_PLUS, KC_PIPE, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [_FN] = 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_DELETE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/cocoa40/keymaps/default/readme.md b/keyboards/cocoa40/keymaps/default/readme.md new file mode 100644 index 00000000000..9e530faff07 --- /dev/null +++ b/keyboards/cocoa40/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for cocoa40 diff --git a/keyboards/cocoa40/keymaps/default/rules.mk b/keyboards/cocoa40/keymaps/default/rules.mk new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/keyboards/cocoa40/keymaps/default/rules.mk @@ -0,0 +1 @@ + diff --git a/keyboards/cocoa40/readme.md b/keyboards/cocoa40/readme.md new file mode 100644 index 00000000000..e05caaba9c1 --- /dev/null +++ b/keyboards/cocoa40/readme.md @@ -0,0 +1,15 @@ +# cocoa40 + +![cocoa40](https://keys.recompile.net/images/cocoa40-main@600w.jpg) + +A 40% split keyboard for programmers. + +Keyboard Maintainer: [Naoto Takai](https://github.com/takai) +Hardware Supported: The Cocoa40 PCBs, Pro Micro supported +Hardware Availability: https://keys.recompile.net/projects/cocoa40/ + +Make example for this keyboard (after setting up your build environment): + + make cocoa40: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/cocoa40/rules.mk b/keyboards/cocoa40/rules.mk new file mode 100644 index 00000000000..f7e529a4b2f --- /dev/null +++ b/keyboards/cocoa40/rules.mk @@ -0,0 +1,81 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = caterina + + +# 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 +# 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 +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE =no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +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 (+400) +SPLIT_KEYBOARD = yes From ec3954577cb080b3ea44f912a91b3c6e90e00c23 Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Sat, 27 Jul 2019 15:17:18 -0500 Subject: [PATCH 056/115] (OLED) Added support for CR (#6399) Currently OLED Dirver only supports LF (\n) character in a string to clear out the rest of the current line and advance to the next line for writing. This PR adds support for CR (\r) character as well to advance to the next line, however not clear out the rest of the current line. This is extremely useful when you want to display a multi-line logo using a single array without wiping out exiting lines and flagging the OLED as dirty unnecessarily. --- drivers/oled/oled_driver.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c index a54f5fadc3b..2b3dd7ff2fc 100644 --- a/drivers/oled/oled_driver.c +++ b/drivers/oled/oled_driver.c @@ -321,7 +321,7 @@ void oled_render(void) { // Send render data chunk after rotating if (I2C_WRITE_REG(I2C_DATA, &temp_buffer[0], OLED_BLOCK_SIZE) != I2C_STATUS_SUCCESS) { - print("oled_render data failed\n"); + print("oled_render90 data failed\n"); return; } } @@ -393,6 +393,11 @@ void oled_write_char(const char data, bool invert) { return; } + if (data == '\r') { + oled_advance_page(false); + return; + } + // copy the current render buffer to check for dirty after static uint8_t oled_temp_buffer[OLED_FONT_WIDTH]; memcpy(&oled_temp_buffer, oled_cursor, OLED_FONT_WIDTH); From bbdc82dd36a95c6bb8dafca6ca87c9e87d5bc315 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 28 Jul 2019 10:27:14 -0700 Subject: [PATCH 057/115] [Keyboard] Add RGB Matrix config info to Corne Keyboard's readme (#6231) --- keyboards/crkbd/readme.md | 81 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 3 deletions(-) diff --git a/keyboards/crkbd/readme.md b/keyboards/crkbd/readme.md index 591fdfe0da9..2f599544a56 100644 --- a/keyboards/crkbd/readme.md +++ b/keyboards/crkbd/readme.md @@ -1,5 +1,6 @@ -Crkbd -=== +# Corne Keyboard (CRKBD) + +Also known (incorrectly) as the `HeliDox`. ![Crkbd](https://user-images.githubusercontent.com/736191/40575636-6fba63a4-6123-11e8-9ca0-3f990f1f9f4c.jpg) @@ -13,6 +14,80 @@ Hardware Availability: [PCB & Case Data](https://github.com/foostan/crkbd) Make example for this keyboard (after setting up your build environment): - make crkbd:default +```sh +make crkbd: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). + +## RGB Matrix +The Corne Keyboard also supports using the RGB Matrix feature, in place of RGB Light. This provids a better experience when using the keyboard, as it supports a number of per key effects properly. If you're not using the in switch LEDs, then you may want to pass on doing this. + +In your keymap's `rules.mk` file, add the following: + +```make +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = WS2812 +``` + +And in your `config.h` file, add the following: + +```c + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. +# define RGB_MATRIX_HUE_STEP 8 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 8 +# define RGB_MATRIX_SPD_STEP 10 + +/* Disable the animations you don't want/need. You will need to disable a good number of these * + * because they take up a lot of space. Disable until you can successfully compile your firmware. */ +// # define DISABLE_RGB_MATRIX_ALPHAS_MODS +// # define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// # define DISABLE_RGB_MATRIX_BREATHING +// # 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_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 +#endif +``` + +However, to properly handle the LED matrix, two LED maps had to be used. One for the left half, and one for the right half. For the left, you don't need to do anything. That's the default setup. But for the right side, you need to add `RGB_MATRIX_SPLIT_RIGHT=yes` needs to be added to the command. + +First, compile and flash the left half. Then when that's done, recompile with the setting above. It should look something like: + +```sh +make crkbd:default RGB_MATRIX_SPLIT_RIGHT=yes +``` +And then flash this new firmware image. + +After this is done, you should be able to use the normal RGB keycodes, but you'll see the RGB Matrix effects in use, giving a much better experience. From c9424eb8d7586ccc2d72014df7b2223cb2645588 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 28 Jul 2019 10:56:35 -0700 Subject: [PATCH 058/115] [Keyboard] Fix up and clean Corne Keyboard code (#6284) * Fix corne communication issues with LTO * Fix up other issues with corne code * Fix indentation * Clang Format rev1 file for Corne --- keyboards/crkbd/crkbd.c | 1 - keyboards/crkbd/keymaps/default/config.h | 16 +- keyboards/crkbd/keymaps/default/keymap.c | 7 - keyboards/crkbd/pro_micro.h | 358 ----------------------- keyboards/crkbd/rev1/config.h | 2 +- keyboards/crkbd/rev1/rev1.c | 23 -- keyboards/crkbd/rev1/rev1.h | 26 +- keyboards/crkbd/rev1/rules.mk | 6 +- keyboards/crkbd/rules.mk | 7 +- 9 files changed, 33 insertions(+), 413 deletions(-) delete mode 100644 keyboards/crkbd/pro_micro.h diff --git a/keyboards/crkbd/crkbd.c b/keyboards/crkbd/crkbd.c index d420ccda270..7417ad60478 100644 --- a/keyboards/crkbd/crkbd.c +++ b/keyboards/crkbd/crkbd.c @@ -1,5 +1,4 @@ #include "crkbd.h" -#include "ssd1306.h" bool process_record_kb(uint16_t keycode, keyrecord_t *record) { #ifdef SSD1306OLED diff --git a/keyboards/crkbd/keymaps/default/config.h b/keyboards/crkbd/keymaps/default/config.h index 644e8136509..899fde008de 100644 --- a/keyboards/crkbd/keymaps/default/config.h +++ b/keyboards/crkbd/keymaps/default/config.h @@ -35,10 +35,12 @@ along with this program. If not, see . #define TAPPING_FORCE_HOLD #define TAPPING_TERM 100 -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 120 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + #define RGBLIGHT_ANIMATIONS + #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif diff --git a/keyboards/crkbd/keymaps/default/keymap.c b/keyboards/crkbd/keymaps/default/keymap.c index 348da2c7628..40bf9b65863 100644 --- a/keyboards/crkbd/keymaps/default/keymap.c +++ b/keyboards/crkbd/keymaps/default/keymap.c @@ -1,11 +1,4 @@ #include QMK_KEYBOARD_H -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif extern keymap_config_t keymap_config; diff --git a/keyboards/crkbd/pro_micro.h b/keyboards/crkbd/pro_micro.h deleted file mode 100644 index 36663337271..00000000000 --- a/keyboards/crkbd/pro_micro.h +++ /dev/null @@ -1,358 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ -#pragma once - -#include - -// Workaround for wrong definitions in "iom32u4.h". -// This should be fixed in the AVR toolchain. -#undef UHCON -#undef UHINT -#undef UHIEN -#undef UHADDR -#undef UHFNUM -#undef UHFNUML -#undef UHFNUMH -#undef UHFLEN -#undef UPINRQX -#undef UPINTX -#undef UPNUM -#undef UPRST -#undef UPCONX -#undef UPCFG0X -#undef UPCFG1X -#undef UPSTAX -#undef UPCFG2X -#undef UPIENX -#undef UPDATX -#undef TCCR2A -#undef WGM20 -#undef WGM21 -#undef COM2B0 -#undef COM2B1 -#undef COM2A0 -#undef COM2A1 -#undef TCCR2B -#undef CS20 -#undef CS21 -#undef CS22 -#undef WGM22 -#undef FOC2B -#undef FOC2A -#undef TCNT2 -#undef TCNT2_0 -#undef TCNT2_1 -#undef TCNT2_2 -#undef TCNT2_3 -#undef TCNT2_4 -#undef TCNT2_5 -#undef TCNT2_6 -#undef TCNT2_7 -#undef OCR2A -#undef OCR2_0 -#undef OCR2_1 -#undef OCR2_2 -#undef OCR2_3 -#undef OCR2_4 -#undef OCR2_5 -#undef OCR2_6 -#undef OCR2_7 -#undef OCR2B -#undef OCR2_0 -#undef OCR2_1 -#undef OCR2_2 -#undef OCR2_3 -#undef OCR2_4 -#undef OCR2_5 -#undef OCR2_6 -#undef OCR2_7 - -#define NUM_DIGITAL_PINS 30 -#define NUM_ANALOG_INPUTS 12 - -#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0) -#define TXLED0 PORTD |= (1<<5) -#define TXLED1 PORTD &= ~(1<<5) -#define RXLED0 PORTB |= (1<<0) -#define RXLED1 PORTB &= ~(1<<0) - -static const uint8_t SDA = 2; -static const uint8_t SCL = 3; -#define LED_BUILTIN 13 - -// Map SPI port to 'new' pins D14..D17 -static const uint8_t SS = 17; -static const uint8_t MOSI = 16; -static const uint8_t MISO = 14; -static const uint8_t SCK = 15; - -// Mapping of analog pins as digital I/O -// A6-A11 share with digital pins -static const uint8_t ADC0 = 18; -static const uint8_t ADC1 = 19; -static const uint8_t ADC2 = 20; -static const uint8_t ADC3 = 21; -static const uint8_t ADC4 = 22; -static const uint8_t ADC5 = 23; -static const uint8_t ADC6 = 24; // D4 -static const uint8_t ADC7 = 25; // D6 -static const uint8_t ADC8 = 26; // D8 -static const uint8_t ADC9 = 27; // D9 -static const uint8_t ADC10 = 28; // D10 -static const uint8_t ADC11 = 29; // D12 - -#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0)) -#define digitalPinToPCICRbit(p) 0 -#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) -#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) - -// __AVR_ATmega32U4__ has an unusual mapping of pins to channels -extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; -#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) - -#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) - -#ifdef ARDUINO_MAIN - -// On the Arduino board, digital pins are also used -// for the analog output (software PWM). Analog input -// pins are a separate set. - -// ATMEL ATMEGA32U4 / ARDUINO LEONARDO -// -// D0 PD2 RXD1/INT2 -// D1 PD3 TXD1/INT3 -// D2 PD1 SDA SDA/INT1 -// D3# PD0 PWM8/SCL OC0B/SCL/INT0 -// D4 A6 PD4 ADC8 -// D5# PC6 ??? OC3A/#OC4A -// D6# A7 PD7 FastPWM #OC4D/ADC10 -// D7 PE6 INT6/AIN0 -// -// D8 A8 PB4 ADC11/PCINT4 -// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5 -// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6 -// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7 -// D12 A11 PD6 T1/#OC4D/ADC9 -// D13# PC7 PWM10 CLK0/OC4A -// -// A0 D18 PF7 ADC7 -// A1 D19 PF6 ADC6 -// A2 D20 PF5 ADC5 -// A3 D21 PF4 ADC4 -// A4 D22 PF1 ADC1 -// A5 D23 PF0 ADC0 -// -// New pins D14..D17 to map SPI port to digital pins -// -// MISO D14 PB3 MISO,PCINT3 -// SCK D15 PB1 SCK,PCINT1 -// MOSI D16 PB2 MOSI,PCINT2 -// SS D17 PB0 RXLED,SS/PCINT0 -// -// Connected LEDs on board for TX and RX -// TXLED D24 PD5 XCK1 -// RXLED D17 PB0 -// HWB PE2 HWB - -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, - (uint16_t) &DDRF, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, - (uint16_t) &PORTF, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, - (uint16_t) &PINF, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - PD, // D0 - PD2 - PD, // D1 - PD3 - PD, // D2 - PD1 - PD, // D3 - PD0 - PD, // D4 - PD4 - PC, // D5 - PC6 - PD, // D6 - PD7 - PE, // D7 - PE6 - - PB, // D8 - PB4 - PB, // D9 - PB5 - PB, // D10 - PB6 - PB, // D11 - PB7 - PD, // D12 - PD6 - PC, // D13 - PC7 - - PB, // D14 - MISO - PB3 - PB, // D15 - SCK - PB1 - PB, // D16 - MOSI - PB2 - PB, // D17 - SS - PB0 - - PF, // D18 - A0 - PF7 - PF, // D19 - A1 - PF6 - PF, // D20 - A2 - PF5 - PF, // D21 - A3 - PF4 - PF, // D22 - A4 - PF1 - PF, // D23 - A5 - PF0 - - PD, // D24 - PD5 - PD, // D25 / D6 - A7 - PD7 - PB, // D26 / D8 - A8 - PB4 - PB, // D27 / D9 - A9 - PB5 - PB, // D28 / D10 - A10 - PB6 - PD, // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - _BV(2), // D0 - PD2 - _BV(3), // D1 - PD3 - _BV(1), // D2 - PD1 - _BV(0), // D3 - PD0 - _BV(4), // D4 - PD4 - _BV(6), // D5 - PC6 - _BV(7), // D6 - PD7 - _BV(6), // D7 - PE6 - - _BV(4), // D8 - PB4 - _BV(5), // D9 - PB5 - _BV(6), // D10 - PB6 - _BV(7), // D11 - PB7 - _BV(6), // D12 - PD6 - _BV(7), // D13 - PC7 - - _BV(3), // D14 - MISO - PB3 - _BV(1), // D15 - SCK - PB1 - _BV(2), // D16 - MOSI - PB2 - _BV(0), // D17 - SS - PB0 - - _BV(7), // D18 - A0 - PF7 - _BV(6), // D19 - A1 - PF6 - _BV(5), // D20 - A2 - PF5 - _BV(4), // D21 - A3 - PF4 - _BV(1), // D22 - A4 - PF1 - _BV(0), // D23 - A5 - PF0 - - _BV(5), // D24 - PD5 - _BV(7), // D25 / D6 - A7 - PD7 - _BV(4), // D26 / D8 - A8 - PB4 - _BV(5), // D27 / D9 - A9 - PB5 - _BV(6), // D28 / D10 - A10 - PB6 - _BV(6), // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - TIMER0B, /* 3 */ - NOT_ON_TIMER, - TIMER3A, /* 5 */ - TIMER4D, /* 6 */ - NOT_ON_TIMER, - - NOT_ON_TIMER, - TIMER1A, /* 9 */ - TIMER1B, /* 10 */ - TIMER0A, /* 11 */ - - NOT_ON_TIMER, - TIMER4A, /* 13 */ - - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, -}; - -const uint8_t PROGMEM analog_pin_to_channel_PGM[] = { - 7, // A0 PF7 ADC7 - 6, // A1 PF6 ADC6 - 5, // A2 PF5 ADC5 - 4, // A3 PF4 ADC4 - 1, // A4 PF1 ADC1 - 0, // A5 PF0 ADC0 - 8, // A6 D4 PD4 ADC8 - 10, // A7 D6 PD7 ADC10 - 11, // A8 D8 PB4 ADC11 - 12, // A9 D9 PB5 ADC12 - 13, // A10 D10 PB6 ADC13 - 9 // A11 D12 PD6 ADC9 -}; - -#endif /* ARDUINO_MAIN */ - -// These serial port names are intended to allow libraries and architecture-neutral -// sketches to automatically default to the correct port name for a particular type -// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, -// the first hardware serial port whose RX/TX pins are not dedicated to another use. -// -// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor -// -// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial -// -// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library -// -// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. -// -// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX -// pins are NOT connected to anything by default. -#define SERIAL_PORT_MONITOR Serial -#define SERIAL_PORT_USBVIRTUAL Serial -#define SERIAL_PORT_HARDWARE Serial1 -#define SERIAL_PORT_HARDWARE_OPEN Serial1 diff --git a/keyboards/crkbd/rev1/config.h b/keyboards/crkbd/rev1/config.h index 4ea8ff38cdd..200923db552 100644 --- a/keyboards/crkbd/rev1/config.h +++ b/keyboards/crkbd/rev1/config.h @@ -23,7 +23,7 @@ along with this program. If not, see . #define PRODUCT_ID 0x3060 #define DEVICE_VER 0x0001 #define MANUFACTURER foostan -#define PRODUCT Crkbd +#define PRODUCT Corne Keyboard (crkbd) #define DESCRIPTION A split keyboard with 3x6 vertically staggered keys and 3 thumb keys /* key matrix size */ diff --git a/keyboards/crkbd/rev1/rev1.c b/keyboards/crkbd/rev1/rev1.c index b969b5e2862..24800358d59 100644 --- a/keyboards/crkbd/rev1/rev1.c +++ b/keyboards/crkbd/rev1/rev1.c @@ -1,11 +1,6 @@ #include "crkbd.h" -#ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - #ifdef RGB_MATRIX_ENABLE // Logical Layout @@ -104,22 +99,4 @@ led_config_t g_led_config = { { 4, 4, 1, 1, 1 } }; #endif - #endif -void matrix_init_kb(void) { - - #ifdef AUDIO_ENABLE - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); - #endif - - matrix_init_user(); -}; - -void shutdown_kb(void) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); - #endif -} diff --git a/keyboards/crkbd/rev1/rev1.h b/keyboards/crkbd/rev1/rev1.h index cdd61d2bf9a..9023248e28f 100644 --- a/keyboards/crkbd/rev1/rev1.h +++ b/keyboards/crkbd/rev1/rev1.h @@ -1,23 +1,28 @@ #pragma once -#include "../crkbd.h" +#include "crkbd.h" -//void promicro_bootloader_jmp(bool program); +// void promicro_bootloader_jmp(bool program); #include "quantum.h" -#ifdef RGBLIGHT_ENABLE -//rgb led driver -#include "ws2812.h" +#ifdef PROTOCOL_LUFA + #include "lufa.h" + #include "split_util.h" +#endif + +#ifdef SSD1306OLED + #include "ssd1306.h" #endif #ifdef USE_I2C -#include -#ifdef __AVR__ - #include - #include -#endif + #include + #ifdef __AVR__ + #include + #include + #endif #endif +// clang-format off //void promicro_bootloader_jmp(bool program); #define LAYOUT( \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ @@ -48,3 +53,4 @@ 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_##R30, KC_##R31, KC_##R32 \ ) +// clang-format on diff --git a/keyboards/crkbd/rev1/rules.mk b/keyboards/crkbd/rev1/rules.mk index f12849f989d..30778637507 100644 --- a/keyboards/crkbd/rev1/rules.mk +++ b/keyboards/crkbd/rev1/rules.mk @@ -4,6 +4,6 @@ ifeq ($(strip $(RGB_MATRIX_SPLIT_RIGHT)), yes) OPT_DEFS += -DRGB_MATRIX_SPLIT_RIGHT endif -SRC += rev1/matrix.c -SRC += rev1/split_util.c -SRC += rev1/split_scomm.c +SRC += matrix.c \ + split_util.c \ + split_scomm.c diff --git a/keyboards/crkbd/rules.mk b/keyboards/crkbd/rules.mk index 73efe23d06b..950000a7ecb 100644 --- a/keyboards/crkbd/rules.mk +++ b/keyboards/crkbd/rules.mk @@ -1,5 +1,5 @@ -SRC += i2c.c -SRC += serial.c +QUANTUM_LIB_SRC += i2c.c \ + serial.c SRC += ssd1306.c # if firmware size over limit, try this option @@ -64,7 +64,8 @@ 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. +RGBLIGHT_ENABLE = no # 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 From 1c5079a33caa6fa2f318f39b8e5cd54743ba3fe8 Mon Sep 17 00:00:00 2001 From: imchipwood Date: Sun, 28 Jul 2019 19:03:02 -0700 Subject: [PATCH 059/115] [Keyboard] Add dumbpad (#6425) * removed some debug prints * removed unnecessary files, tweaked some things * rotary encoder button now connected into column 0, row 3 * tweaked keymap and moved encoder control into keymap * tweaks * added test keymap * updated some things to make it easier to work with QMK configurator * updates after merging latest master in * fixed a few things * removed test keymap and all related #ifdefs * changed some dumbpad default keys, added KC_LOCK * added image to readme * added link to PCB github repo * moved lock key to the rotary encoder pushbutton * making suggested changes from @fauxpark in https://github.com/qmk/qmk_firmware/pull/6452 * adding bootmagic lite since i'm lazy and haven't soldered on the reset button... * renamed to * using 7 underscores for KC_TRNS --- keyboards/dumbpad/config.h | 259 +++++++++++++++++++++ keyboards/dumbpad/dumbpad.c | 51 ++++ keyboards/dumbpad/dumbpad.h | 39 ++++ keyboards/dumbpad/info.json | 30 +++ keyboards/dumbpad/keymaps/default/keymap.c | 106 +++++++++ keyboards/dumbpad/readme.md | 19 ++ keyboards/dumbpad/rules.mk | 84 +++++++ 7 files changed, 588 insertions(+) create mode 100644 keyboards/dumbpad/config.h create mode 100644 keyboards/dumbpad/dumbpad.c create mode 100644 keyboards/dumbpad/dumbpad.h create mode 100644 keyboards/dumbpad/info.json create mode 100644 keyboards/dumbpad/keymaps/default/keymap.c create mode 100644 keyboards/dumbpad/readme.md create mode 100644 keyboards/dumbpad/rules.mk diff --git a/keyboards/dumbpad/config.h b/keyboards/dumbpad/config.h new file mode 100644 index 00000000000..a7d4e7b3c8c --- /dev/null +++ b/keyboards/dumbpad/config.h @@ -0,0 +1,259 @@ +/* +Copyright 2019 imchipwood + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xDEAF +#define PRODUCT_ID 0x0913 +#define DEVICE_VER 0x0001 +#define MANUFACTURER imchipwood +#define PRODUCT dumbpad +#define DESCRIPTION 4x4 macro/numpad with rotary encoder + + +/* + * 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_ROWS 4 +#define MATRIX_COLS 5 +#define MATRIX_ROW_PINS { F4, F5, F6, F7 } +#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Rotary encoder */ +#define ENCODERS_PAD_A { D0 } +#define ENCODERS_PAD_B { D4 } + +/* Bootmagic - hold down rotary encoder pushbutton while plugging in to enter bootloader */ +#define BOOTMAGIC_LITE_ROW 3 +#define BOOTMAGIC_LITE_COLUMN 0 + + +/* 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 + +/* + * 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 + +/* 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 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/dumbpad/dumbpad.c b/keyboards/dumbpad/dumbpad.c new file mode 100644 index 00000000000..b53856237c0 --- /dev/null +++ b/keyboards/dumbpad/dumbpad.c @@ -0,0 +1,51 @@ +/* Copyright 2019 Chip + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "dumbpad.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 + + 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); +} + +*/ diff --git a/keyboards/dumbpad/dumbpad.h b/keyboards/dumbpad/dumbpad.h new file mode 100644 index 00000000000..b7c7694e30b --- /dev/null +++ b/keyboards/dumbpad/dumbpad.h @@ -0,0 +1,39 @@ +/* Copyright 2019 Chip + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 LAYOUT( \ + k01, k02, k03, k04, \ + k11, k12, k13, k14, \ + k21, k22, k23, k24, \ + k30, k31, k32, k33, k34 \ +) \ +{ \ + { KC_NO, k01, k02, k03, k04 }, \ + { KC_NO, k11, k12, k13, k14 }, \ + { KC_NO, k21, k22, k23, k24 }, \ + { k30, k31, k32, k33, k34 }, \ +} diff --git a/keyboards/dumbpad/info.json b/keyboards/dumbpad/info.json new file mode 100644 index 00000000000..8b6a8116e3c --- /dev/null +++ b/keyboards/dumbpad/info.json @@ -0,0 +1,30 @@ +{ + "keyboard_name": "dumbpad", + "url": "", + "maintainer": "qmk", + "width": 5, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"7", "x":1, "y":0}, + {"label":"8", "x":2, "y":0}, + {"label":"9", "x":3, "y":0}, + {"label":"BSPC", "x":4, "y":0}, + {"label":"4", "x":1, "y":1}, + {"label":"5", "x":2, "y":1}, + {"label":"6", "x":3, "y":1}, + {"label":"ESC", "x":4, "y":1}, + {"label":"1", "x":1, "y":2}, + {"label":"2", "x":2, "y":2}, + {"label":"3", "x":3, "y":2}, + {"label":"TAB", "x":4, "y":2}, + {"label":"LMOUSE", "x":0, "y":3}, + {"label":"TT(2)", "x":1, "y":3}, + {"label":"0", "x":2, "y":3}, + {"label":".", "x":3, "y":3}, + {"label":"ENT", "x":4, "y":3} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/dumbpad/keymaps/default/keymap.c b/keyboards/dumbpad/keymaps/default/keymap.c new file mode 100644 index 00000000000..061215a61bc --- /dev/null +++ b/keyboards/dumbpad/keymaps/default/keymap.c @@ -0,0 +1,106 @@ +/* Copyright 2019 imchipwood + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define _BASE 0 +#define _SUB 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + BASE LAYER + /-----------------------------------------------------` + | | 7 | 8 | 9 | Bkspc | + | |---------|---------|---------|---------| + | | 4 | 5 | 6 | Esc | + | |---------|---------|---------|---------| + | | 1 | 2 | 3 | Tab | + |-------------|---------|---------|---------|---------| + | Left mouse | MO(SUB) | 0 | . | Enter | + \-----------------------------------------------------' + */ + [_BASE] = LAYOUT( /* Base */ + KC_7, KC_8, KC_9, KC_BSPC, + KC_4, KC_5, KC_6, KC_ESC, + KC_1, KC_2, KC_3, KC_TAB, + KC_BTN1, MO(_SUB), KC_0, KC_DOT, KC_ENTER + ), + /* + SUB LAYER + /-----------------------------------------------------` + | | | | | Reset | + | |---------|---------|---------|---------| + | | | | | + | + | |---------|---------|---------|---------| + | | | | | - | + |-------------|---------|---------|---------|---------| + | LOCK | | | | = | + \-----------------------------------------------------' + */ + [_SUB] = LAYOUT( + _______, _______, _______, RESET, + _______, _______, _______, KC_KP_PLUS, + _______, _______, _______, KC_KP_MINUS, + KC_LOCK, _______, _______, _______, KC_EQL + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // If console is enabled, it will print the matrix position and status of each key pressed +/* +#ifdef CONSOLE_ENABLE + uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); +#endif +*/ + return true; +} + +void keyboard_post_init_user(void) { + // Customise these values to desired behaviour + //debug_enable = true; + //debug_matrix = true; + //debug_keyboard = true; + //debug_mouse = true; +} + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (layer_state && 0x1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else { + if (clockwise) { + tap_code(KC_MS_R); + } else { + tap_code(KC_MS_L); + } + } + } +} diff --git a/keyboards/dumbpad/readme.md b/keyboards/dumbpad/readme.md new file mode 100644 index 00000000000..8f3789bcb31 --- /dev/null +++ b/keyboards/dumbpad/readme.md @@ -0,0 +1,19 @@ +# dumbpad + +![dumbpad](https://i.imgur.com/sS3fq1Z.jpg) + +A 4x4 macro/numpad with rotary encoder. + +Keyboard Maintainer: [imchipwood](https://github.com/imchipwood) + +PCB repository: https://github.com/imchipwood/dumbpad + +Make example for this keyboard (after setting up your build environment): + + make dumbpad:default + +Program with: + + make dumbpad:default:avrdude + +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/dumbpad/rules.mk b/keyboards/dumbpad/rules.mk new file mode 100644 index 00000000000..5d585c65be6 --- /dev/null +++ b/keyboards/dumbpad/rules.mk @@ -0,0 +1,84 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = caterina + + +# 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 +# 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 +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# 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 on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +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 (+400) + +ENCODER_ENABLE = yes +MOUSEKEY_ENABLE = yes +KEY_LOCK_ENABLE = yes From e5bc50c03e7201fedbaf5954dc1d51ceb293570f Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sun, 28 Jul 2019 19:24:23 -0700 Subject: [PATCH 060/115] [Keyboard] Leaf 60: Use correct key for 60_ansi layout on backspace (#6430) --- keyboards/foxlab/leaf60/universal/universal.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/foxlab/leaf60/universal/universal.h b/keyboards/foxlab/leaf60/universal/universal.h index ab3f388a496..8d8f836185f 100644 --- a/keyboards/foxlab/leaf60/universal/universal.h +++ b/keyboards/foxlab/leaf60/universal/universal.h @@ -40,13 +40,13 @@ } #define LAYOUT_60_ansi( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ + 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, K213, \ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ K400, K401, K402, K406, K410, K411, K412, K413 \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO }, \ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, KC_NO, K213, KC_NO }, \ { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO }, \ From eafd38e2a16cd00e95e00c5ca4efc364d3ccf3e4 Mon Sep 17 00:00:00 2001 From: Sid Carter Date: Mon, 29 Jul 2019 00:16:59 -0400 Subject: [PATCH 061/115] [Keymap] Shift RGB layout keys to the right by one to be consistent with other keymap layouts (#6431) * move rgb toggles by one key to be consistent with all other keyboard layouts I have * also remove unnecessary audio stuff --- keyboards/keebio/iris/keymaps/osiris/keymap.c | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/keyboards/keebio/iris/keymaps/osiris/keymap.c b/keyboards/keebio/iris/keymaps/osiris/keymap.c index 633f6c4c572..a777c8a351e 100644 --- a/keyboards/keebio/iris/keymaps/osiris/keymap.c +++ b/keyboards/keebio/iris/keymaps/osiris/keymap.c @@ -87,25 +87,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_ADJUST] = LAYOUT( - //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. - _______, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______, _______, _______, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RESET , DEBUG , RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, - //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| - BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' - _______, _______, _______, _______, _______, _______ - // `--------+--------+--------' `--------+--------+--------' + //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. + _______,_______,_______,_______,_______, QWERTY, COLEMAK,_______,_______,_______,_______,_______, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_SAI,RGB_VAI, _______,_______,_______,_______,_______,_______, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + RESET ,DEBUG ,_______,RGB_HUD,RGB_SAD,RGB_VAD, _______,_______,_______,_______,_______,_______, + //|-------+-------+-------+-------+-------+-------+-------. ,-------|-------+-------+-------+-------+-------+-------| + BL_STEP,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______, + //`--------+-------+-------+----+--+-------+-------+-------/ \-------+-------+-------+---+---+-------+-------+-------' + _______,_______,_______, _______,_______,_______ + // `-------+-------+-------' `-------+-------+-------' ) }; -#ifdef AUDIO_ENABLE -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -#endif - bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: From c806103f4171682821cee5ceaa91dce983072b1d Mon Sep 17 00:00:00 2001 From: "Zachary J. Slater" Date: Mon, 29 Jul 2019 00:41:54 -1000 Subject: [PATCH 062/115] Update YouTube URL The link was an outdated one to https://www.youtube.com/watch?v=7RH-1pAbjvw The correct link appears to be https://www.youtube.com/watch?v=tx54jkRC9ZY which is shortened as in the file. --- docs/newbs_building_firmware_configurator.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/newbs_building_firmware_configurator.md b/docs/newbs_building_firmware_configurator.md index 0ad609304a4..becceb6693e 100644 --- a/docs/newbs_building_firmware_configurator.md +++ b/docs/newbs_building_firmware_configurator.md @@ -4,7 +4,7 @@ The [QMK Configurator](https://config.qmk.fm) is an online graphical user interf ?> **Please follow these steps in order.** -Watch the [Video Tutorial](https://youtu.be/7RH-1pAbjvw) +Watch the [Video Tutorial](https://youtu.be/tx54jkRC9ZY) The QMK Configurator works best with Chrome/Firefox. From b28f1e6a299c55671217a6ad50c4eda15a004e65 Mon Sep 17 00:00:00 2001 From: kakunpc <15257475+kakunpc@users.noreply.github.com> Date: Tue, 30 Jul 2019 14:24:07 +0900 Subject: [PATCH 063/115] [Keyboard] Add suihankey_rev1 keyboard and Fix default keymap (#6419) * move alpha * add suihankey rev1 * fix default keymap. * remove split * add split keymap * move default_split keymap * fix rev1 config.h * fix split * set BOOTMAGIC_ENABLE lite * fix enum base --- .../suihankey/{suihankey.c => alpha/alpha.c} | 2 +- keyboards/suihankey/alpha/alpha.h | 39 +++ keyboards/suihankey/alpha/config.h | 248 ++++++++++++++++++ .../{ => alpha}/keymaps/default/config.h | 0 .../suihankey/alpha/keymaps/default/keymap.c | 100 +++++++ .../{ => alpha}/keymaps/default/readme.md | 0 keyboards/suihankey/alpha/readme.md | 18 ++ keyboards/suihankey/alpha/rules.mk | 82 ++++++ keyboards/suihankey/info.json | 2 +- keyboards/suihankey/rev1/config.h | 248 ++++++++++++++++++ .../suihankey/rev1/keymaps/default/config.h | 19 ++ .../suihankey/rev1/keymaps/default/keymap.c | 100 +++++++ .../suihankey/rev1/keymaps/default/readme.md | 1 + keyboards/suihankey/rev1/readme.md | 18 ++ keyboards/suihankey/rev1/rev1.c | 51 ++++ keyboards/suihankey/rev1/rev1.h | 40 +++ keyboards/suihankey/rev1/rules.mk | 82 ++++++ keyboards/suihankey/rules.mk | 8 +- keyboards/suihankey/split/alpha/alpha.c | 51 ++++ .../{suihankey.h => split/alpha/alpha.h} | 1 + .../suihankey/{ => split/alpha}/config.h | 0 keyboards/suihankey/split/alpha/readme.md | 18 ++ keyboards/suihankey/split/alpha/rules.mk | 82 ++++++ keyboards/suihankey/split/info.json | 12 + .../suihankey/split/keymaps/default/config.h | 19 ++ .../{ => split}/keymaps/default/keymap.c | 32 +-- .../suihankey/split/keymaps/default/readme.md | 1 + keyboards/suihankey/split/readme.md | 18 ++ keyboards/suihankey/split/rev1/config.h | 248 ++++++++++++++++++ keyboards/suihankey/split/rev1/readme.md | 18 ++ keyboards/suihankey/split/rev1/rev1.c | 51 ++++ keyboards/suihankey/split/rev1/rev1.h | 45 ++++ keyboards/suihankey/split/rev1/rules.mk | 82 ++++++ keyboards/suihankey/split/rules.mk | 4 + 34 files changed, 1705 insertions(+), 35 deletions(-) rename keyboards/suihankey/{suihankey.c => alpha/alpha.c} (98%) create mode 100644 keyboards/suihankey/alpha/alpha.h create mode 100644 keyboards/suihankey/alpha/config.h rename keyboards/suihankey/{ => alpha}/keymaps/default/config.h (100%) create mode 100644 keyboards/suihankey/alpha/keymaps/default/keymap.c rename keyboards/suihankey/{ => alpha}/keymaps/default/readme.md (100%) create mode 100644 keyboards/suihankey/alpha/readme.md create mode 100644 keyboards/suihankey/alpha/rules.mk create mode 100644 keyboards/suihankey/rev1/config.h create mode 100644 keyboards/suihankey/rev1/keymaps/default/config.h create mode 100644 keyboards/suihankey/rev1/keymaps/default/keymap.c create mode 100644 keyboards/suihankey/rev1/keymaps/default/readme.md create mode 100644 keyboards/suihankey/rev1/readme.md create mode 100644 keyboards/suihankey/rev1/rev1.c create mode 100644 keyboards/suihankey/rev1/rev1.h create mode 100644 keyboards/suihankey/rev1/rules.mk create mode 100644 keyboards/suihankey/split/alpha/alpha.c rename keyboards/suihankey/{suihankey.h => split/alpha/alpha.h} (99%) rename keyboards/suihankey/{ => split/alpha}/config.h (100%) create mode 100644 keyboards/suihankey/split/alpha/readme.md create mode 100644 keyboards/suihankey/split/alpha/rules.mk create mode 100644 keyboards/suihankey/split/info.json create mode 100644 keyboards/suihankey/split/keymaps/default/config.h rename keyboards/suihankey/{ => split}/keymaps/default/keymap.c (73%) create mode 100644 keyboards/suihankey/split/keymaps/default/readme.md create mode 100644 keyboards/suihankey/split/readme.md create mode 100644 keyboards/suihankey/split/rev1/config.h create mode 100644 keyboards/suihankey/split/rev1/readme.md create mode 100644 keyboards/suihankey/split/rev1/rev1.c create mode 100644 keyboards/suihankey/split/rev1/rev1.h create mode 100644 keyboards/suihankey/split/rev1/rules.mk create mode 100644 keyboards/suihankey/split/rules.mk diff --git a/keyboards/suihankey/suihankey.c b/keyboards/suihankey/alpha/alpha.c similarity index 98% rename from keyboards/suihankey/suihankey.c rename to keyboards/suihankey/alpha/alpha.c index 621e21a7b94..3d2d1de7790 100644 --- a/keyboards/suihankey/suihankey.c +++ b/keyboards/suihankey/alpha/alpha.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "suihankey.h" +#include "alpha.h" // Optional override functions below. // You can leave any or all of these undefined. diff --git a/keyboards/suihankey/alpha/alpha.h b/keyboards/suihankey/alpha/alpha.h new file mode 100644 index 00000000000..02bba471045 --- /dev/null +++ b/keyboards/suihankey/alpha/alpha.h @@ -0,0 +1,39 @@ +/* Copyright 2019 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 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 Leys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + L00, L01, L02, L03, L04, \ + L10, L11, L12, L13, L14, \ + L20, L21, L22, L23, L24, \ + L30, L31, L32 \ +) \ +{ \ + { L00, L01, L02, L03, L04 }, \ + { L10, L11, L12, L13, L14 }, \ + { L20, L21, L22, L23, L24 }, \ + { L30, L31, L32 }, \ +} diff --git a/keyboards/suihankey/alpha/config.h b/keyboards/suihankey/alpha/config.h new file mode 100644 index 00000000000..f7f4aee1189 --- /dev/null +++ b/keyboards/suihankey/alpha/config.h @@ -0,0 +1,248 @@ +/* +Copyright 2019 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 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER kakunpc +#define PRODUCT Suihankey +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#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 } +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4 } +#define UNUSED_PINS +// #define USE_I2C +// #undef USE_SERIAL + +/* 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 SPLIT_HAND_PIN D2 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN D3 +#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 +// /*== 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 + +/* 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 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 + +// #define RGBLED_SPLIT {18,18} diff --git a/keyboards/suihankey/keymaps/default/config.h b/keyboards/suihankey/alpha/keymaps/default/config.h similarity index 100% rename from keyboards/suihankey/keymaps/default/config.h rename to keyboards/suihankey/alpha/keymaps/default/config.h diff --git a/keyboards/suihankey/alpha/keymaps/default/keymap.c b/keyboards/suihankey/alpha/keymaps/default/keymap.c new file mode 100644 index 00000000000..e7c7da4b8bd --- /dev/null +++ b/keyboards/suihankey/alpha/keymaps/default/keymap.c @@ -0,0 +1,100 @@ +/* Copyright 2019 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 + +enum layers{ + BASE, + COMMAND, + NUMBER, + FUNCTION +}; + +#define KC_CMD_SP LT(COMMAND,KC_SPC) +#define KC_CMD_ET LT(COMMAND,KC_ENTER) +#define KC_NUM_ALT LT(NUMBER,KC_LALT) +#define KC_NUM_BS LT(NUMBER,KC_BSPC) +#define KC_SET_CTRL LT(FUNCTION,KC_LCTRL) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT( /* Base */ + KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_A, KC_S, KC_D, KC_F, KC_G, + KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_SET_CTRL, KC_NUM_ALT, KC_CMD_SP + ), + [COMMAND] = LAYOUT( /* Base */ + KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_A, KC_S, KC_D, KC_F, KC_G, + LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_B), + KC_NO, KC_NO, KC_NO + ), + [NUMBER] = LAYOUT( /* Base */ + 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 + ), + [FUNCTION] = LAYOUT( /* Base */ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_F12, RGB_TOG, RGB_MOD, RGB_RMOD, + KC_NO, KC_NO, KC_NO + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} + +#ifdef OLED_DRIVER_ENABLE +void oled_task_user(void) { + oled_write_P(PSTR("Layer: "), false); + switch (biton32(layer_state)) { + case BASE: + oled_write_P(PSTR("Default\n"), false); + break; + case COMMAND: + oled_write_P(PSTR("COMMAND\n"), false); + break; + case NUMBER: + oled_write_P(PSTR("NUMBER\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 + oled_write_P(IS_HOST_LED_ON(USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false); + oled_write_P(IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false); + oled_write_P(IS_HOST_LED_ON(USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false); +} +#endif diff --git a/keyboards/suihankey/keymaps/default/readme.md b/keyboards/suihankey/alpha/keymaps/default/readme.md similarity index 100% rename from keyboards/suihankey/keymaps/default/readme.md rename to keyboards/suihankey/alpha/keymaps/default/readme.md diff --git a/keyboards/suihankey/alpha/readme.md b/keyboards/suihankey/alpha/readme.md new file mode 100644 index 00000000000..fcba60ff1d5 --- /dev/null +++ b/keyboards/suihankey/alpha/readme.md @@ -0,0 +1,18 @@ +# suihankey_alpha + +![suihankey_alpha](https://i.gyazo.com/07b9e882fd0c0ad00c8c98d93e94e383.jpg) + +Compact with only 18 keys is a concept keyboard. +Supports OLED and RGBLED (optional) + + + +Keyboard Maintainer: [kakunpc](https://github.com/kakunpc) +Hardware Supported: suihankey_alpha, promicro +Hardware Availability: booth([@kakunpc](https://kakunpc.booth.pm/)) + +Make example for this keyboard (after setting up your build environment): + + make suihankey/alpha: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/suihankey/alpha/rules.mk b/keyboards/suihankey/alpha/rules.mk new file mode 100644 index 00000000000..d4580058ec2 --- /dev/null +++ b/keyboards/suihankey/alpha/rules.mk @@ -0,0 +1,82 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +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 +# 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 +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 on B7 by default +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +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 (+400) +OLED_DRIVER_ENABLE = yes +SPLIT_KEYBOARD = no diff --git a/keyboards/suihankey/info.json b/keyboards/suihankey/info.json index 4580f05401d..2306d75beca 100644 --- a/keyboards/suihankey/info.json +++ b/keyboards/suihankey/info.json @@ -6,7 +6,7 @@ "height": 4, "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": [{"label":"3", "x":3.5, "y":0}, {"label":"2", "x":2.5, "y":0.125}, {"label":"4", "x":4.5, "y":0.125}, {"label":"5", "x":5.5, "y":0.25}, {"label":"1", "x":1.5, "y":0.375}, {"label":"8", "x":3.5, "y":1}, {"label":"7", "x":2.5, "y":1.125}, {"label":"9", "x":4.5, "y":1.125}, {"label":"10", "x":5.5, "y":1.25}, {"label":"6", "x":1.5, "y":1.375}, {"label":"13", "x":3.5, "y":2}, {"label":"12", "x":2.5, "y":2.125}, {"label":"14", "x":4.5, "y":2.125}, {"label":"15", "x":5.5, "y":2.25}, {"label":"11", "x":1.5, "y":2.375}, {"label":"16", "x":-1.75, "y":3.125}, {"label":"17", "x":-0.75, "y":3.125}, {"label":"18", "x":0.25, "y":3.125}] } } } diff --git a/keyboards/suihankey/rev1/config.h b/keyboards/suihankey/rev1/config.h new file mode 100644 index 00000000000..4e14551257f --- /dev/null +++ b/keyboards/suihankey/rev1/config.h @@ -0,0 +1,248 @@ +/* +Copyright 2019 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 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER kakunpc +#define PRODUCT Suihankey +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +/* + * 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 { D4, C6, D7, E6, B4 } +#define MATRIX_COL_PINS { F4, F5, F6, F7 } +#define UNUSED_PINS +//#define USE_I2C +//#undef USE_SERIAL + +/* 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 SPLIT_HAND_PIN D2 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN D3 +#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 +// /*== 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 + +/* 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 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 + +// #define RGBLED_SPLIT {18,18} diff --git a/keyboards/suihankey/rev1/keymaps/default/config.h b/keyboards/suihankey/rev1/keymaps/default/config.h new file mode 100644 index 00000000000..bf1149ebc63 --- /dev/null +++ b/keyboards/suihankey/rev1/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 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 + +// place overrides here diff --git a/keyboards/suihankey/rev1/keymaps/default/keymap.c b/keyboards/suihankey/rev1/keymaps/default/keymap.c new file mode 100644 index 00000000000..e7c7da4b8bd --- /dev/null +++ b/keyboards/suihankey/rev1/keymaps/default/keymap.c @@ -0,0 +1,100 @@ +/* Copyright 2019 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 + +enum layers{ + BASE, + COMMAND, + NUMBER, + FUNCTION +}; + +#define KC_CMD_SP LT(COMMAND,KC_SPC) +#define KC_CMD_ET LT(COMMAND,KC_ENTER) +#define KC_NUM_ALT LT(NUMBER,KC_LALT) +#define KC_NUM_BS LT(NUMBER,KC_BSPC) +#define KC_SET_CTRL LT(FUNCTION,KC_LCTRL) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT( /* Base */ + KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_A, KC_S, KC_D, KC_F, KC_G, + KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_SET_CTRL, KC_NUM_ALT, KC_CMD_SP + ), + [COMMAND] = LAYOUT( /* Base */ + KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_A, KC_S, KC_D, KC_F, KC_G, + LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_B), + KC_NO, KC_NO, KC_NO + ), + [NUMBER] = LAYOUT( /* Base */ + 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 + ), + [FUNCTION] = LAYOUT( /* Base */ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_F12, RGB_TOG, RGB_MOD, RGB_RMOD, + KC_NO, KC_NO, KC_NO + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} + +#ifdef OLED_DRIVER_ENABLE +void oled_task_user(void) { + oled_write_P(PSTR("Layer: "), false); + switch (biton32(layer_state)) { + case BASE: + oled_write_P(PSTR("Default\n"), false); + break; + case COMMAND: + oled_write_P(PSTR("COMMAND\n"), false); + break; + case NUMBER: + oled_write_P(PSTR("NUMBER\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 + oled_write_P(IS_HOST_LED_ON(USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false); + oled_write_P(IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false); + oled_write_P(IS_HOST_LED_ON(USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false); +} +#endif diff --git a/keyboards/suihankey/rev1/keymaps/default/readme.md b/keyboards/suihankey/rev1/keymaps/default/readme.md new file mode 100644 index 00000000000..95eac805a02 --- /dev/null +++ b/keyboards/suihankey/rev1/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for suihankey \ No newline at end of file diff --git a/keyboards/suihankey/rev1/readme.md b/keyboards/suihankey/rev1/readme.md new file mode 100644 index 00000000000..1c80a8af63a --- /dev/null +++ b/keyboards/suihankey/rev1/readme.md @@ -0,0 +1,18 @@ +# suihankey_rev1 + +![suihankey_rev1](https://i.gyazo.com/07b9e882fd0c0ad00c8c98d93e94e383.jpg) + +Compact with only 18 keys is a concept keyboard. +Supports OLED and RGBLED (optional) + + + +Keyboard Maintainer: [kakunpc](https://github.com/kakunpc) +Hardware Supported: suihankey_rev1, promicro +Hardware Availability: booth([@kakunpc](https://kakunpc.booth.pm/)) + +Make example for this keyboard (after setting up your build environment): + + make suihankey/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/suihankey/rev1/rev1.c b/keyboards/suihankey/rev1/rev1.c new file mode 100644 index 00000000000..f97e6caed42 --- /dev/null +++ b/keyboards/suihankey/rev1/rev1.c @@ -0,0 +1,51 @@ +/* Copyright 2019 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 "rev1.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 + + 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); +} + +*/ diff --git a/keyboards/suihankey/rev1/rev1.h b/keyboards/suihankey/rev1/rev1.h new file mode 100644 index 00000000000..cbc877abd55 --- /dev/null +++ b/keyboards/suihankey/rev1/rev1.h @@ -0,0 +1,40 @@ +/* Copyright 2019 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 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 Leys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + L00, L01, L02, L03, L04, \ + L10, L11, L12, L13, L14, \ + L20, L21, L22, L23, L24, \ + L30, L31, L32 \ +) \ +{ \ + { L00, L10, L20, L30 }, \ + { L01, L11, L21, L31 }, \ + { L02, L12, L22, L32 }, \ + { L03, L13, L23, KC_NO }, \ + { L04, L14, L24, KC_NO }, \ +} diff --git a/keyboards/suihankey/rev1/rules.mk b/keyboards/suihankey/rev1/rules.mk new file mode 100644 index 00000000000..d4580058ec2 --- /dev/null +++ b/keyboards/suihankey/rev1/rules.mk @@ -0,0 +1,82 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +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 +# 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 +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 on B7 by default +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +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 (+400) +OLED_DRIVER_ENABLE = yes +SPLIT_KEYBOARD = no diff --git a/keyboards/suihankey/rules.mk b/keyboards/suihankey/rules.mk index 19e792378ec..dbba5b93c74 100644 --- a/keyboards/suihankey/rules.mk +++ b/keyboards/suihankey/rules.mk @@ -61,7 +61,7 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = no # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) @@ -78,5 +78,7 @@ 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 (+400) -OLED_DRIVER_ENABLE = no -SPLIT_KEYBOARD = yes +OLED_DRIVER_ENABLE = yes +SPLIT_KEYBOARD = no + +DEFAULT_FOLDER = suihankey/rev1 diff --git a/keyboards/suihankey/split/alpha/alpha.c b/keyboards/suihankey/split/alpha/alpha.c new file mode 100644 index 00000000000..3d2d1de7790 --- /dev/null +++ b/keyboards/suihankey/split/alpha/alpha.c @@ -0,0 +1,51 @@ +/* Copyright 2019 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 "alpha.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 + + 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); +} + +*/ diff --git a/keyboards/suihankey/suihankey.h b/keyboards/suihankey/split/alpha/alpha.h similarity index 99% rename from keyboards/suihankey/suihankey.h rename to keyboards/suihankey/split/alpha/alpha.h index 170dbe5cffc..f14639806ea 100644 --- a/keyboards/suihankey/suihankey.h +++ b/keyboards/suihankey/split/alpha/alpha.h @@ -41,3 +41,4 @@ { R20, R21, R22, R23, R24 }, \ { R30, R31, R32 }, \ } + diff --git a/keyboards/suihankey/config.h b/keyboards/suihankey/split/alpha/config.h similarity index 100% rename from keyboards/suihankey/config.h rename to keyboards/suihankey/split/alpha/config.h diff --git a/keyboards/suihankey/split/alpha/readme.md b/keyboards/suihankey/split/alpha/readme.md new file mode 100644 index 00000000000..2ea1503eb39 --- /dev/null +++ b/keyboards/suihankey/split/alpha/readme.md @@ -0,0 +1,18 @@ +# suihankey_alpha + +![suihankey_alpha](https://i.gyazo.com/f798c5967f2ac457dd520ab8ff83b6ac.jpg) + +Compact with only 36 keys is a concept keyboard. +Supports OLED and RGBLED (optional) + + + +Keyboard Maintainer: [kakunpc](https://github.com/kakunpc) +Hardware Supported: suihankey_alphaboard_alpha, promicro +Hardware Availability: booth([@kakunpc](https://kakunpc.booth.pm/)) + +Make example for this keyboard (after setting up your build environment): + + make suihankey/alpha: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/suihankey/split/alpha/rules.mk b/keyboards/suihankey/split/alpha/rules.mk new file mode 100644 index 00000000000..974450a692f --- /dev/null +++ b/keyboards/suihankey/split/alpha/rules.mk @@ -0,0 +1,82 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +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 +# 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 +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 on B7 by default +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +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 (+400) +OLED_DRIVER_ENABLE = no +SPLIT_KEYBOARD = yes diff --git a/keyboards/suihankey/split/info.json b/keyboards/suihankey/split/info.json new file mode 100644 index 00000000000..c3825ac3aca --- /dev/null +++ b/keyboards/suihankey/split/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "suihankey_split", + "url": "https://kakunpc.booth.pm/", + "maintainer": "kakunpc", + "width": 12, + "height": 4, + "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}] + } + } +} diff --git a/keyboards/suihankey/split/keymaps/default/config.h b/keyboards/suihankey/split/keymaps/default/config.h new file mode 100644 index 00000000000..bf1149ebc63 --- /dev/null +++ b/keyboards/suihankey/split/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 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 + +// place overrides here diff --git a/keyboards/suihankey/keymaps/default/keymap.c b/keyboards/suihankey/split/keymaps/default/keymap.c similarity index 73% rename from keyboards/suihankey/keymaps/default/keymap.c rename to keyboards/suihankey/split/keymaps/default/keymap.c index a1d182a9d89..9b8448ac277 100644 --- a/keyboards/suihankey/keymaps/default/keymap.c +++ b/keyboards/suihankey/split/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H enum layers{ - BASE = 0, + BASE, COMMAND, NUMBER, SETTING @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [SETTING] = LAYOUT( /* Base */ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, 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_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO ), }; @@ -70,31 +70,3 @@ void matrix_scan_user(void) { void led_set_user(uint8_t usb_led) { } - -#ifdef OLED_DRIVER_ENABLE -void oled_task_user(void) { - oled_write_P(PSTR("Layer: "), false); - switch (biton32(layer_state)) { - case BASE: - oled_write_P(PSTR("Defaultn"), false); - break; - case COMMAND: - oled_write_P(PSTR("COMMANDn"), false); - break; - case NUMBER: - oled_write_P(PSTR("NUMBERn"), false); - break; - case SETTING: - oled_write_P(PSTR("SETTINGn"), 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 - oled_write_P(IS_HOST_LED_ON(USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false); - oled_write_P(IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false); - oled_write_P(IS_HOST_LED_ON(USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false); -} -#endif diff --git a/keyboards/suihankey/split/keymaps/default/readme.md b/keyboards/suihankey/split/keymaps/default/readme.md new file mode 100644 index 00000000000..43ede895269 --- /dev/null +++ b/keyboards/suihankey/split/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default split keymap for suihankey diff --git a/keyboards/suihankey/split/readme.md b/keyboards/suihankey/split/readme.md new file mode 100644 index 00000000000..34d30580d12 --- /dev/null +++ b/keyboards/suihankey/split/readme.md @@ -0,0 +1,18 @@ +# suihankey split + +![suihankey](https://i.gyazo.com/f798c5967f2ac457dd520ab8ff83b6ac.jpg) + +Compact with only 36 keys is a concept keyboard. +Supports OLED and RGBLED (optional) + + + +Keyboard Maintainer: [kakunpc](https://github.com/kakunpc) +Hardware Supported: suihankeyboard_alpha, promicro +Hardware Availability: booth([@kakunpc](https://kakunpc.booth.pm/)) + +Make example for this keyboard (after setting up your build environment): + + make suihankey/split: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/suihankey/split/rev1/config.h b/keyboards/suihankey/split/rev1/config.h new file mode 100644 index 00000000000..04ed0ba50de --- /dev/null +++ b/keyboards/suihankey/split/rev1/config.h @@ -0,0 +1,248 @@ +/* +Copyright 2019 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 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER kakunpc +#define PRODUCT Suihankey +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 4 + +/* + * 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 { D4, C6, D7, E6, B4 } +#define MATRIX_COL_PINS { F4, F5, F6, F7 } +#define UNUSED_PINS +#define USE_I2C +#undef USE_SERIAL + +/* 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 SPLIT_HAND_PIN D2 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN D3 +#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 +// /*== 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 + +/* 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 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 + +// #define RGBLED_SPLIT {18,18} diff --git a/keyboards/suihankey/split/rev1/readme.md b/keyboards/suihankey/split/rev1/readme.md new file mode 100644 index 00000000000..f7c4bce166d --- /dev/null +++ b/keyboards/suihankey/split/rev1/readme.md @@ -0,0 +1,18 @@ +# suihankey_rev1 + +![suihankey_rev1](https://i.gyazo.com/f798c5967f2ac457dd520ab8ff83b6ac.jpg) + +Compact with only 36 keys is a concept keyboard. +Supports OLED and RGBLED (optional) + + + +Keyboard Maintainer: [kakunpc](https://github.com/kakunpc) +Hardware Supported: suihankey_rev1board_rev1, promicro +Hardware Availability: booth([@kakunpc](https://kakunpc.booth.pm/)) + +Make example for this keyboard (after setting up your build environment): + + make suihankey/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/suihankey/split/rev1/rev1.c b/keyboards/suihankey/split/rev1/rev1.c new file mode 100644 index 00000000000..f97e6caed42 --- /dev/null +++ b/keyboards/suihankey/split/rev1/rev1.c @@ -0,0 +1,51 @@ +/* Copyright 2019 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 "rev1.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 + + 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); +} + +*/ diff --git a/keyboards/suihankey/split/rev1/rev1.h b/keyboards/suihankey/split/rev1/rev1.h new file mode 100644 index 00000000000..bf5468234d0 --- /dev/null +++ b/keyboards/suihankey/split/rev1/rev1.h @@ -0,0 +1,45 @@ +/* Copyright 2019 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 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 Leys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + L00, L01, L02, L03, L04, R04, R03, R02, R01, R00, \ + L10, L11, L12, L13, L14, R14, R13, R12, R11, R10, \ + L20, L21, L22, L23, L24, R24, R23, R22, R21, R20, \ + L30, L31, L32, R32, R31, R30 \ +) \ +{ \ + { L00, L10, L20, L30 }, \ + { L01, L11, L21, L31 }, \ + { L02, L12, L22, L32 }, \ + { L03, L13, L23, KC_NO }, \ + { L04, L14, L24, KC_NO }, \ + { R00, R10, R20, R30 }, \ + { R01, R11, R21, R31 }, \ + { R02, R12, R22, R32 }, \ + { R03, R13, R23, KC_NO }, \ + { R04, R14, R24, KC_NO }, \ +} diff --git a/keyboards/suihankey/split/rev1/rules.mk b/keyboards/suihankey/split/rev1/rules.mk new file mode 100644 index 00000000000..974450a692f --- /dev/null +++ b/keyboards/suihankey/split/rev1/rules.mk @@ -0,0 +1,82 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +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 +# 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 +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 on B7 by default +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +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 (+400) +OLED_DRIVER_ENABLE = no +SPLIT_KEYBOARD = yes diff --git a/keyboards/suihankey/split/rules.mk b/keyboards/suihankey/split/rules.mk new file mode 100644 index 00000000000..b5d2dc8e810 --- /dev/null +++ b/keyboards/suihankey/split/rules.mk @@ -0,0 +1,4 @@ +OLED_DRIVER_ENABLE = no +SPLIT_KEYBOARD = yes + +DEFAULT_FOLDER = suihankey/split/rev1 From 207ebc42a9c0081ae20b19d871c8499d7ab28493 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 30 Jul 2019 06:42:39 +0100 Subject: [PATCH 064/115] [Keyboard] Correct name of community layout for ortho75 (#6434) --- keyboards/cannonkeys/ortho75/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/cannonkeys/ortho75/rules.mk b/keyboards/cannonkeys/ortho75/rules.mk index db155867e5d..113fff5554d 100644 --- a/keyboards/cannonkeys/ortho75/rules.mk +++ b/keyboards/cannonkeys/ortho75/rules.mk @@ -54,4 +54,4 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes ENCODER_ENABLE = yes -LAYOUTS = LAYOUT_ortho_5x15 +LAYOUTS = ortho_5x15 From a699fd3d043c3ca52973b64517d3874c6828116b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 30 Jul 2019 06:49:42 +0100 Subject: [PATCH 065/115] [Keyboard] Add configurator support for snampad (#6435) --- keyboards/snampad/info.json | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/keyboards/snampad/info.json b/keyboards/snampad/info.json index e69de29bb2d..2974eab861a 100644 --- a/keyboards/snampad/info.json +++ b/keyboards/snampad/info.json @@ -0,0 +1,35 @@ +{ + "keyboard_name": "snampad", + "url": "", + "maintainer": "ptillemans", + "width": 4, + "height": 6, + "layouts": { + "LAYOUT_numpad_6x4": { + "key_count": 21, + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"Tab", "x":1, "y":0}, + {"label":"Fn", "x":2, "y":0}, + {"label":"Back", "x":3, "y":0}, + {"label":"Num Lock", "x":0, "y":1}, + {"label":"/", "x":1, "y":1}, + {"label":"*", "x":2, "y":1}, + {"label":"-", "x":3, "y":1}, + {"label":"7", "x":0, "y":2}, + {"label":"8", "x":1, "y":2}, + {"label":"9", "x":2, "y":2}, + {"label":"4", "x":0, "y":3}, + {"label":"5", "x":1, "y":3}, + {"label":"6", "x":2, "y":3}, + {"label":"+", "x":3, "y":2, "h":2}, + {"label":"1", "x":0, "y":4}, + {"label":"2", "x":1, "y":4}, + {"label":"3", "x":2, "y":4}, + {"label":"0", "x":0, "y":5, "w":2}, + {"label":".", "x":2, "y":5}, + {"label":"Enter", "x":3, "y":4, "h":2} + ] + } + } +} From d5ab6752510047f60fe72b9f90288ce48dfccf53 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 30 Jul 2019 06:51:01 +0100 Subject: [PATCH 066/115] [Keyboard] Fix configurator support for shiro (#6436) --- keyboards/shiro/info.json | 115 +++++--------------------------------- 1 file changed, 15 insertions(+), 100 deletions(-) diff --git a/keyboards/shiro/info.json b/keyboards/shiro/info.json index 71d4bb551d5..944cdb84c53 100644 --- a/keyboards/shiro/info.json +++ b/keyboards/shiro/info.json @@ -8,106 +8,21 @@ "LAYOUT": { "key_count": 15, "layout": [ - { - "x": 0, - "y": 0 - }, - { - "x": 1, - "y": 0 - }, - { - "x": 2, - "y": 0 - }, - { - "x": 3, - "y": 0 - }, - { - "x": 4, - "y": 0 - }, - { - "x": 0, - "y": 1 - }, - { - "x": 1, - "y": 1 - }, - { - "x": 2, - "y": 1 - }, - { - "x": 3, - "y": 1 - }, - { - "x": 4, - "y": 1 - }, - { - "x": 0, - "y": 2 - }, - { - "x": 1, - "y": 2 - }, - { - "x": 2, - "y": 2 - }, - { - "x": 3, - "y": 2 - }, - { - "x": 4, - "y": 2 - }, - { - "x": 0, - "y": 3 - }, - { - "x": 1, - "y": 3 - }, - { - "x": 2, - "y": 3 - }, - { - "x": 3, - "y": 3 - }, - { - "x": 4, - "y": 3 - }, - { - "x": 0, - "y": 4 - }, - { - "x": 1, - "y": 4 - }, - { - "x": 2, - "y": 4 - }, - { - "x": 3, - "y": 4 - }, - { - "x": 4, - "y": 4 - } + {"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}, + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4} ] } } From de107eb14e08ca517c8d8530adba0d32aad850d2 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 30 Jul 2019 06:53:15 +0100 Subject: [PATCH 067/115] [Keyboard] Fix community support for hs60 (#6439) --- keyboards/hs60/v1/rules.mk | 2 +- keyboards/hs60/v2/rules.mk | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/hs60/v1/rules.mk b/keyboards/hs60/v1/rules.mk index 20a2dc7a7a1..f5bcb2b0a17 100644 --- a/keyboards/hs60/v1/rules.mk +++ b/keyboards/hs60/v1/rules.mk @@ -69,7 +69,7 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches RGB_MATRIX_ENABLE = yes # Use RGB matrix RAW_ENABLE = yes -LAYOUTS = 60_ansi_split_bs_rshift +LAYOUTS = 60_ansi 60_iso # Experimental features for zealcmd please do no enable #RAW_ENABLE = yes diff --git a/keyboards/hs60/v2/rules.mk b/keyboards/hs60/v2/rules.mk index 77a254d24cc..c2b643ad108 100644 --- a/keyboards/hs60/v2/rules.mk +++ b/keyboards/hs60/v2/rules.mk @@ -65,3 +65,5 @@ NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plu RAW_ENABLE = no DYNAMIC_KEYMAP_ENABLE = no CIE1931_CURVE = yes + +LAYOUTS = 60_ansi 60_iso From 43f388166faaebaefaec7d7ec1e50d4d93847e20 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 30 Jul 2019 06:54:09 +0100 Subject: [PATCH 068/115] [Keyboard] Fix maypad LAYOUT_ortho_5x4 Configurator support (#6440) --- keyboards/keyhive/maypad/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keyhive/maypad/info.json b/keyboards/keyhive/maypad/info.json index 547cc8b6ef0..89367173109 100644 --- a/keyboards/keyhive/maypad/info.json +++ b/keyboards/keyhive/maypad/info.json @@ -9,7 +9,7 @@ "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":1, "h":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"0", "x":0, "y":4, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":3, "h":2}] }, "LAYOUT_ortho_5x4": { - "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3}, {"label":"0", "x":0, "y":4, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":4}] + "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3}, {"label":"0", "x":0, "y":4}, {"label":"00", "x":1, "y":4}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":4}] } } From c57994f09e753ab1120c0b81dfbf8a524d85379c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 30 Jul 2019 06:54:37 +0100 Subject: [PATCH 069/115] [Keyboard] Add meishi2 Configurator support (#6442) --- keyboards/meishi2/info.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/keyboards/meishi2/info.json b/keyboards/meishi2/info.json index e69de29bb2d..11e18e9f478 100644 --- a/keyboards/meishi2/info.json +++ b/keyboards/meishi2/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "meishi2", + "url": "", + "maintainer": "biacco42", + "width": 4, + "height": 1, + "layouts": { + "LAYOUT": { + "key_count": 4, + "layout": [ + { "x": 0, "y": 0 }, + { "x": 1, "y": 0 }, + { "x": 2, "y": 0 }, + { "x": 3, "y": 0 } + ] + } + } +} From f2e0d38f1714b7c5343eda842fccc1aeb0e56c7e Mon Sep 17 00:00:00 2001 From: ishtob Date: Tue, 30 Jul 2019 02:58:43 -0400 Subject: [PATCH 070/115] [Keyboard] Assign unique vendor ID and product ID for hadron (#5184) * assigned unique vander and product ID to hadron * fix v2 compiled firmware size issue --- keyboards/hadron/config.h | 4 ++-- .../hadron/ver2/keymaps/side_numpad/rules.mk | 23 ------------------- 2 files changed, 2 insertions(+), 25 deletions(-) delete mode 100644 keyboards/hadron/ver2/keymaps/side_numpad/rules.mk diff --git a/keyboards/hadron/config.h b/keyboards/hadron/config.h index 61e76474833..3fc76b0b3b4 100644 --- a/keyboards/hadron/config.h +++ b/keyboards/hadron/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 0x6060 +#define VENDOR_ID 0xFB30 +#define PRODUCT_ID 0x5F37 #define MANUFACTURER ishtob #define PRODUCT Hadron Keyboard #define DESCRIPTION A low profile ortholinear keyboard diff --git a/keyboards/hadron/ver2/keymaps/side_numpad/rules.mk b/keyboards/hadron/ver2/keymaps/side_numpad/rules.mk deleted file mode 100644 index 79be3bb87ef..00000000000 --- a/keyboards/hadron/ver2/keymaps/side_numpad/rules.mk +++ /dev/null @@ -1,23 +0,0 @@ - - -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = yes # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -SWAP_HANDS_ENABLE = no # Enable one-hand typing - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - From 5cf7dbedd2e68ec40b0666f10c47f9601e1ae275 Mon Sep 17 00:00:00 2001 From: yulei Date: Tue, 30 Jul 2019 15:19:54 +0800 Subject: [PATCH 071/115] [Keyboard] add 60% pcb for the smk 2nd switch(with mx mount) (#5928) * add smk60 pcb * remove useless keymap * Update keyboards/smk60/rules.mk add 60_iso layout Co-Authored-By: fauxpark * fixed 60_iso layout * update header file macro --- keyboards/smk60/config.h | 53 ++++++++++ keyboards/smk60/info.json | 21 ++++ keyboards/smk60/keymaps/60_ansi/keymap.c | 29 ++++++ .../keymaps/60_ansi_split_bs_shift/keymap.c | 16 +++ keyboards/smk60/keymaps/60_hhkb/keymap.c | 16 +++ keyboards/smk60/keymaps/60_iso/keymap.c | 16 +++ keyboards/smk60/keymaps/60_wkl/keymap.c | 16 +++ .../smk60/keymaps/60_wkl_split_bs/keymap.c | 16 +++ keyboards/smk60/keymaps/default/keymap.c | 29 ++++++ keyboards/smk60/readme.md | 12 +++ keyboards/smk60/rules.mk | 76 ++++++++++++++ keyboards/smk60/smk60.c | 5 + keyboards/smk60/smk60.h | 98 +++++++++++++++++++ 13 files changed, 403 insertions(+) create mode 100644 keyboards/smk60/config.h create mode 100644 keyboards/smk60/info.json create mode 100644 keyboards/smk60/keymaps/60_ansi/keymap.c create mode 100644 keyboards/smk60/keymaps/60_ansi_split_bs_shift/keymap.c create mode 100644 keyboards/smk60/keymaps/60_hhkb/keymap.c create mode 100644 keyboards/smk60/keymaps/60_iso/keymap.c create mode 100644 keyboards/smk60/keymaps/60_wkl/keymap.c create mode 100644 keyboards/smk60/keymaps/60_wkl_split_bs/keymap.c create mode 100644 keyboards/smk60/keymaps/default/keymap.c create mode 100644 keyboards/smk60/readme.md create mode 100644 keyboards/smk60/rules.mk create mode 100644 keyboards/smk60/smk60.c create mode 100644 keyboards/smk60/smk60.h diff --git a/keyboards/smk60/config.h b/keyboards/smk60/config.h new file mode 100644 index 00000000000..b30912f9085 --- /dev/null +++ b/keyboards/smk60/config.h @@ -0,0 +1,53 @@ +/** + * config.h + * + */ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xDEAD +#define PRODUCT_ID 0x6585 +#define DEVICE_VER 0x0001 +#define MANUFACTURER astro +#define PRODUCT smk 60 +#define DESCRIPTION 60% keyboard for smk switch + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0, F0, F1, F5, B2 } +#define MATRIX_COL_PINS { B4, B5, B6, C6, C7, F6, F7, F4, B1, B3, D0, D1, D2, D3, D5} +#define UNUSED_PINS +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* + * 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 + +//rgb light setting +#define RGBLED_NUM 4 +#define RGB_DI_PIN E6 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/smk60/info.json b/keyboards/smk60/info.json new file mode 100644 index 00000000000..f4a5e42bdad --- /dev/null +++ b/keyboards/smk60/info.json @@ -0,0 +1,21 @@ +{ + "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}] + } + } +} diff --git a/keyboards/smk60/keymaps/60_ansi/keymap.c b/keyboards/smk60/keymaps/60_ansi/keymap.c new file mode 100644 index 00000000000..95d2fb0f262 --- /dev/null +++ b/keyboards/smk60/keymaps/60_ansi/keymap.c @@ -0,0 +1,29 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BSp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| + * |-----------------------------------------------------------' + * |Ctrl |Gui|Alt | Space |Alt |Gui|Fn |Ctrl | + * `-----------------------------------------------------------' + */ + [0] = LAYOUT_60_ansi( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + [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,_______, + RESET, RGB_TOG,RGB_MOD,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_UP,KC_RIGHT,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______, _______, _______,_______,_______,_______), +}; diff --git a/keyboards/smk60/keymaps/60_ansi_split_bs_shift/keymap.c b/keyboards/smk60/keymaps/60_ansi_split_bs_shift/keymap.c new file mode 100644 index 00000000000..095f98d151a --- /dev/null +++ b/keyboards/smk60/keymaps/60_ansi_split_bs_shift/keymap.c @@ -0,0 +1,16 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_split_bs_shift( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, + KC_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_END, + KC_CAPS, KC_LGUI, KC_LALT, LT(1,KC_SPC), KC_RALT, KC_RGUI, TG(1), KC_RCTL), + [1] = LAYOUT_60_ansi_split_bs_shift( + _______, KC_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,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______, _______, _______,_______,TG(0),_______), +}; diff --git a/keyboards/smk60/keymaps/60_hhkb/keymap.c b/keyboards/smk60/keymaps/60_hhkb/keymap.c new file mode 100644 index 00000000000..2732abc06bb --- /dev/null +++ b/keyboards/smk60/keymaps/60_hhkb/keymap.c @@ -0,0 +1,16 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_hhkb( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, + 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, + KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1)), + [1] = LAYOUT_60_hhkb( + _______, 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, RGB_TOG,RGB_MOD,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______, _______, _______,_______), +}; diff --git a/keyboards/smk60/keymaps/60_iso/keymap.c b/keyboards/smk60/keymaps/60_iso/keymap.c new file mode 100644 index 00000000000..684bbb62f48 --- /dev/null +++ b/keyboards/smk60/keymaps/60_iso/keymap.c @@ -0,0 +1,16 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_iso( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_GRV, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_CAPS, KC_LGUI, KC_LALT, LT(1,KC_SPC), KC_RALT, KC_RGUI, MO(1), KC_RCTL), + [1] = LAYOUT_60_iso( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______, + RESET, RGB_TOG,RGB_MOD,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_UP,KC_RIGHT, _______,_______,_______,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______, _______, _______,_______,_______,_______), +}; diff --git a/keyboards/smk60/keymaps/60_wkl/keymap.c b/keyboards/smk60/keymaps/60_wkl/keymap.c new file mode 100644 index 00000000000..979fc93d67a --- /dev/null +++ b/keyboards/smk60/keymaps/60_wkl/keymap.c @@ -0,0 +1,16 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_wkl( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSPC, + KC_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_DEL, + KC_CAPS, KC_LGUI, KC_LALT, LT(1,KC_SPC), KC_RALT, TG(1), KC_RCTL), + [1] = LAYOUT_60_wkl( + 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, + RESET, RGB_TOG, RGB_MOD,_______,_______,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, + _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_UP,KC_RIGHT,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______, _______, _______,TG(0),_______), +}; diff --git a/keyboards/smk60/keymaps/60_wkl_split_bs/keymap.c b/keyboards/smk60/keymaps/60_wkl_split_bs/keymap.c new file mode 100644 index 00000000000..22405cdc5f7 --- /dev/null +++ b/keyboards/smk60/keymaps/60_wkl_split_bs/keymap.c @@ -0,0 +1,16 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_wkl_split_bs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_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_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_END, + KC_CAPS, KC_LGUI, KC_LALT, LT(1,KC_SPC), KC_RALT, TG(1), KC_RCTL), + [1] = LAYOUT_60_wkl_split_bs( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,KC_PSCR, + RESET, RGB_TOG,RGB_MOD,_______,_______,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, + _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_UP,KC_RIGHT,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______, _______, _______,TG(0),_______), +}; diff --git a/keyboards/smk60/keymaps/default/keymap.c b/keyboards/smk60/keymaps/default/keymap.c new file mode 100644 index 00000000000..95d2fb0f262 --- /dev/null +++ b/keyboards/smk60/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BSp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| + * |-----------------------------------------------------------' + * |Ctrl |Gui|Alt | Space |Alt |Gui|Fn |Ctrl | + * `-----------------------------------------------------------' + */ + [0] = LAYOUT_60_ansi( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + [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,_______, + RESET, RGB_TOG,RGB_MOD,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_UP,KC_RIGHT,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______,_______,_______, _______, _______,_______,_______,_______), +}; diff --git a/keyboards/smk60/readme.md b/keyboards/smk60/readme.md new file mode 100644 index 00000000000..59470705c23 --- /dev/null +++ b/keyboards/smk60/readme.md @@ -0,0 +1,12 @@ +# 60% pcb for smk 2nd switch + +A gh60 campatible pcb for [smk 2nd switch](https://deskthority.net/wiki/SMK_second_generation) + +Keyboard Maintainer: [astro](https://github.com/yulei) +Hardware Supported: GH60 campatible + +Make example for this keyboard (after setting up your build environment): + + make smk60: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/smk60/rules.mk b/keyboards/smk60/rules.mk new file mode 100644 index 00000000000..751dbec8411 --- /dev/null +++ b/keyboards/smk60/rules.mk @@ -0,0 +1,76 @@ +# MCU name +MCU = atmega32u4 + +# project specific files +#SRC = + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +BOOTLOADER = atmel-dfu +#OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# 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 +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +RGBLIGHT_ENABLE = yes # Use RGB bottom light +LAYOUTS = 60_ansi 60_hhkb 60_iso diff --git a/keyboards/smk60/smk60.c b/keyboards/smk60/smk60.c new file mode 100644 index 00000000000..947bec03a0d --- /dev/null +++ b/keyboards/smk60/smk60.c @@ -0,0 +1,5 @@ +/** + * smk60.c + */ + +#include "smk60.h" diff --git a/keyboards/smk60/smk60.h b/keyboards/smk60/smk60.h new file mode 100644 index 00000000000..2e71c965380 --- /dev/null +++ b/keyboards/smk60/smk60.h @@ -0,0 +1,98 @@ + /** + * smk60.h + * + */ +#pragma once + +#include "quantum.h" + +// 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 +#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, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k42, k43, k47, k48, k49, k4a, k4b \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, KC_NO, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, KC_NO, k17, k18, k19, k1a, k1b, k1c, k1e}, \ + {k20, k22, k23, k24, k25, k26, k27, KC_NO, k28, k29, k2a, k2b, k2c, KC_NO, k2e}, \ + {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3c, KC_NO}, \ + {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, KC_NO, k48, k49, KC_NO, k4a, k4b} \ +} + +#define LAYOUT_60_iso( \ + 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,\ + k40, k42, k43, k47, k48, k49, k4a, k4b \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, KC_NO, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, KC_NO, k17, k18, k19, k1a, k1b, k1c, KC_NO}, \ + {k20, k22, k23, k24, k25, k26, k27, KC_NO, k28, k29, k2a, k2b, k2c, k2d, k2e}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3c, KC_NO}, \ + {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, KC_NO, k48, k49, KC_NO, k4a, k4b} \ +} + +#define LAYOUT_60_wkl( \ + 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, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k42, k43, k47, k49, k4a, k4b \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, KC_NO, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, KC_NO, k17, k18, k19, k1a, k1b, k1c, k1e}, \ + {k20, k22, k23, k24, k25, k26, k27, KC_NO, k28, k29, k2a, k2b, k2c, KC_NO, k2e}, \ + {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3c, k3d}, \ + {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, KC_NO, KC_NO, k49, KC_NO, k4a, k4b} \ +} + +#define LAYOUT_60_hhkb( \ + 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, k2e, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k42, k43, k47, k49, k4a \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, KC_NO, k17, k18, k19, k1a, k1b, k1c, k1e}, \ + {k20, k22, k23, k24, k25, k26, k27, KC_NO, k28, k29, k2a, k2b, k2c, KC_NO, k2e}, \ + {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3c, k3d}, \ + {KC_NO, k42, k43, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, KC_NO, KC_NO, k49, KC_NO, k4a, KC_NO} \ +} +#define LAYOUT_60_wkl_split_bs( \ + 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, k2e, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k42, k43, k47, k49, k4a, k4b \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, KC_NO, k17, k18, k19, k1a, k1b, k1c, k1e}, \ + {k20, k22, k23, k24, k25, k26, k27, KC_NO, k28, k29, k2a, k2b, k2c, KC_NO, k2e}, \ + {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3c, k3d}, \ + {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, KC_NO, KC_NO, k49, KC_NO, k4a, k4b} \ +} +#define LAYOUT_60_ansi_split_bs_shift( \ + 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, k2e, \ + k30, 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, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, KC_NO, k17, k18, k19, k1a, k1b, k1c, k1e}, \ + {k20, k22, k23, k24, k25, k26, k27, KC_NO, k28, k29, k2a, k2b, k2c, KC_NO, k2e}, \ + {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3c, k3d}, \ + {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, KC_NO, k48, k49, KC_NO, k4a, k4b} \ +} From 77a1c75cf622bb74105b3bb64e9dc2ef182c1f63 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 30 Jul 2019 00:21:44 -0700 Subject: [PATCH 072/115] [Keyboard] Add AMJ66 keyboard (#5945) * Added nearly perfect config for AMJ66, only missing top right key. * Correct the layout macro * Add layout mock-up to amj66.h * Update and comment out the backlight definitions in config.h The backlight pin was found to be D4, but there appears to be a bug in QMK that affects this keyboard. Commenting out for now. * Try to make a sensible default keymap * Add testing keymap for FSund Include the keymap that was being used for testing. Don't forget to refactor this later into an actually useful keymap. * Suggestions by fauxpark - uncomment the backlight configuration - fix the default keymap - remove commented MCU rule - specify the bootloader - make mental note to not try to write code at 3:30 in the morning * Add LAYOUT_66_ansi and LAYOUT_66_iso macros - include QMK Configurator data - enable Community Layout support * Add comments about layout variants to amj66.h * Add #define BACKLIGHT_ON_STATE 1 Partial fix for backlight breathing. - Requires #5983 to fix fully (confirmed by FSund and fauxpark) Co-Authored-By: fauxpark Co-Authored-By: Filip Sund * DEBOUNCING_DELAY -> DEBOUNCE * Move AMJ66 files into new AMJKeyboard directory * Correct Manufacturer in USB Device Descriptor * Remove comment regarding source fork * Correct the readme * Update default keymap to match the details given in its readme * White-space edit fsund_test keymap Makes its formatting more consistent with other 66% keymaps. No logic changes. * Linting info.json Debug-style linting (one key object per line) and minor edits to key labels. * Remove fsund_test keymap * Add FSund as a maintainer in info.json --- keyboards/amjkeyboard/amj66/amj66.c | 43 ++++ keyboards/amjkeyboard/amj66/amj66.h | 79 ++++++ keyboards/amjkeyboard/amj66/config.h | 55 +++++ keyboards/amjkeyboard/amj66/info.json | 227 ++++++++++++++++++ .../amj66/keymaps/default/config.h | 19 ++ .../amj66/keymaps/default/keymap.c | 36 +++ .../amj66/keymaps/default/readme.md | 12 + keyboards/amjkeyboard/amj66/readme.md | 15 ++ keyboards/amjkeyboard/amj66/rules.mk | 70 ++++++ 9 files changed, 556 insertions(+) create mode 100644 keyboards/amjkeyboard/amj66/amj66.c create mode 100644 keyboards/amjkeyboard/amj66/amj66.h create mode 100644 keyboards/amjkeyboard/amj66/config.h create mode 100644 keyboards/amjkeyboard/amj66/info.json create mode 100644 keyboards/amjkeyboard/amj66/keymaps/default/config.h create mode 100644 keyboards/amjkeyboard/amj66/keymaps/default/keymap.c create mode 100644 keyboards/amjkeyboard/amj66/keymaps/default/readme.md create mode 100644 keyboards/amjkeyboard/amj66/readme.md create mode 100644 keyboards/amjkeyboard/amj66/rules.mk diff --git a/keyboards/amjkeyboard/amj66/amj66.c b/keyboards/amjkeyboard/amj66/amj66.c new file mode 100644 index 00000000000..05e29975b66 --- /dev/null +++ b/keyboards/amjkeyboard/amj66/amj66.c @@ -0,0 +1,43 @@ +/* Copyright 2018 Alex Peters + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "amj66.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + 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); +} diff --git a/keyboards/amjkeyboard/amj66/amj66.h b/keyboards/amjkeyboard/amj66/amj66.h new file mode 100644 index 00000000000..e2315f5e9fd --- /dev/null +++ b/keyboards/amjkeyboard/amj66/amj66.h @@ -0,0 +1,79 @@ +/* Copyright 2018 Alex Peters + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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. + +/* LAYOUT_all + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0F │ ISO Enter + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤ ┌─────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │ │2C │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┘ ┌──┴┐ │ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ │1D │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┬─┴─┐ └───┴────┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ + * ├────┴┬──┴─┬─┴──┬┴───┴───┴─┬─┴───┴───┴┬──┴─┬─┴──┬┴────┼───┼───┼───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │ + * └─────┴────┴────┴──────────┴──────────┴────┴────┴─────┴───┴───┴───┘ + * 2u Backspace = k0D + * ISO # = k1D + * 2.25u Right Shift = k3C + * 6.25u Space = k44 + */ +#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, k1D, k1E, \ + 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, k3E, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A \ +) { \ + { 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, KC_NO }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, KC_NO, KC_NO, KC_NO }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, KC_NO }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ +} + +#define LAYOUT_66_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0F, \ + 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, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3E, \ + k40, k41, k42, k44, k45, k46, k47, k48, k49, k4A \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, KC_NO, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, KC_NO }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, KC_NO, KC_NO, KC_NO }, \ + { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, KC_NO, k3E, KC_NO }, \ + { k40, k41, k42, KC_NO, k44, k45, k46, k47, k48, k49, k4A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ +} + +#define LAYOUT_66_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0F, \ + 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, k1D, k2C, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3E, \ + k40, k41, k42, k44, k45, k46, k47, k48, k49, k4A \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, KC_NO, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, KC_NO }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, KC_NO, KC_NO, KC_NO }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, KC_NO, k3E, KC_NO }, \ + { k40, k41, k42, KC_NO, k44, k45, k46, k47, k48, k49, k4A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/amjkeyboard/amj66/config.h b/keyboards/amjkeyboard/amj66/config.h new file mode 100644 index 00000000000..5569bcd919e --- /dev/null +++ b/keyboards/amjkeyboard/amj66/config.h @@ -0,0 +1,55 @@ +/* +Copyright 2018 Alex Peters + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0xBD66 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AMJKeyboard +#define PRODUCT AMJ66 +#define DESCRIPTION QMK keyboard firmware for AMJ66 + +/* Key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { F7, F6, F5, F4, F1 } +#define MATRIX_COL_PINS { F0, B3, B2, B1, B0, B7, D0, D1, D2, D3, D5, D6, D7, B4, B5, B6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN D4 +#define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 +#define BACKLIGHT_ON_STATE 1 + +/* 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 diff --git a/keyboards/amjkeyboard/amj66/info.json b/keyboards/amjkeyboard/amj66/info.json new file mode 100644 index 00000000000..93656c44524 --- /dev/null +++ b/keyboards/amjkeyboard/amj66/info.json @@ -0,0 +1,227 @@ +{ + "keyboard_name": "AMJ66", + "url": "", + "maintainer": "FSund, qmk", + "width": 16.5, + "height": 5, + "layouts": { + "LAYOUT_all": { + "key_count": 70, + "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":"~", "x":14, "y":0}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, + {"label":"Delete", "x":15.5, "y":1}, + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.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.25}, + {"label":"HHKB Fn", "x":13.5, "y":3}, + {"label":"Up", "x":14.5, "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.5}, + {"label":"Space", "x":4, "y":4, "w":2.75}, + {"label":"Space", "x":6.75, "y":4, "w":2.75}, + {"label":"Alt", "x":9.5, "y":4, "w":1.5}, + {"label":"GUI", "x":11, "y":4, "w":1.25}, + {"label":"Ctrl", "x":12.25, "y":4, "w":1.25}, + {"label":"Left", "x":13.5, "y":4}, + {"label":"Down", "x":14.5, "y":4}, + {"label":"Right", "x":15.5, "y":4} + ] + }, + "LAYOUT_66_ansi": { + "key_count": 66, + "layout": [ + {"label":"~", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"Delete", "x":15.5, "y":1}, + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.25}, + {"label":"Up", "x":14.5, "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":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Fn", "x":11.25, "y":4}, + {"label":"Ctrl", "x":12.25, "y":4, "w":1.25}, + {"label":"Left", "x":13.5, "y":4}, + {"label":"Down", "x":14.5, "y":4}, + {"label":"Right", "x":15.5, "y":4} + ] + }, + "LAYOUT_66_iso": { + "key_count": 67, + "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":"Insert", "x":15.5, "y":0}, + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"Delete", "x":15.5, "y":1}, + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"@", "x":11.75, "y":2}, + {"label":"~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.25}, + {"label":"Up", "x":14.5, "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":6.25}, + {"label":"AltGr", "x":10, "y":4, "w":1.25}, + {"label":"GUI", "x":11.25, "y":4}, + {"label":"Ctrl", "x":12.25, "y":4, "w":1.25}, + {"label":"Left", "x":13.5, "y":4}, + {"label":"Down", "x":14.5, "y":4}, + {"label":"Right", "x":15.5, "y":4} + ] + } + } +} diff --git a/keyboards/amjkeyboard/amj66/keymaps/default/config.h b/keyboards/amjkeyboard/amj66/keymaps/default/config.h new file mode 100644 index 00000000000..6d42fc568a1 --- /dev/null +++ b/keyboards/amjkeyboard/amj66/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2018 Alex Peters + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// place overrides here diff --git a/keyboards/amjkeyboard/amj66/keymaps/default/keymap.c b/keyboards/amjkeyboard/amj66/keymaps/default/keymap.c new file mode 100644 index 00000000000..cce05a7fe4c --- /dev/null +++ b/keyboards/amjkeyboard/amj66/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2018 Alex Peters + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_GRV, KC_BSPC, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_BSPC, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_DEL, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, BL_STEP, KC_SLEP, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + +}; diff --git a/keyboards/amjkeyboard/amj66/keymaps/default/readme.md b/keyboards/amjkeyboard/amj66/keymaps/default/readme.md new file mode 100644 index 00000000000..c250695efd5 --- /dev/null +++ b/keyboards/amjkeyboard/amj66/keymaps/default/readme.md @@ -0,0 +1,12 @@ +# The default keymap for AMJ66 + +![AMJ66 Layout Image](https://i.imgur.com/QNpHnMe.jpg) + +This is a fairly universal layout that supports standard ANSI, split backspace, +split left shift, and split right shift. +Cycle backlight: Fn + . +Backlight breathing: Fn + , +Volume Up/Down: Fn + [ and Fn + ] +Mute: Fn + \ +Sleep: Fn + / +Bootloader Mode: Fn + CapsLock \ No newline at end of file diff --git a/keyboards/amjkeyboard/amj66/readme.md b/keyboards/amjkeyboard/amj66/readme.md new file mode 100644 index 00000000000..37a1f27ea6a --- /dev/null +++ b/keyboards/amjkeyboard/amj66/readme.md @@ -0,0 +1,15 @@ +# AMJ66 + +![AMJ66](https://i.imgur.com/qtLuL2o.jpg) + +A 66% keyboard formerly sold by Massdrop and KBDFans. + +Keyboard Maintainer: [FSund](https://github.com/fsund), [The QMK Community](https://github.com/qmk) +Hardware Supported: AMJ66, ATmega32U4 +Hardware Availability: [Drop.com](https://drop.com/buy/kbd66-mechanical-keyboard-kit?mode=guest_open) + +Make example for this keyboard (after setting up your build environment): + + make amjkeyboard/amj66: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/amjkeyboard/amj66/rules.mk b/keyboards/amjkeyboard/amj66/rules.mk new file mode 100644 index 00000000000..80734a99044 --- /dev/null +++ b/keyboards/amjkeyboard/amj66/rules.mk @@ -0,0 +1,70 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = atmel-dfu + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# 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 +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +LAYOUTS = 66_ansi 66_iso From 046fb112598069879fd13a6a8eb68106316dcb6c Mon Sep 17 00:00:00 2001 From: tuesdayjohn Date: Tue, 30 Jul 2019 03:22:44 -0400 Subject: [PATCH 073/115] [Keymap] Added keymap folder matching username to rorschach; added readme to old keympa (#5970) * Added keymap folder matching username; added readme to old keymap * Update config.h --- .../keymaps/insertsnideremarks/readme.md | 1 + .../rorschach/keymaps/tuesdayjohn/config.h | 23 ++ .../rorschach/keymaps/tuesdayjohn/keymap.c | 296 ++++++++++++++++++ .../rorschach/keymaps/tuesdayjohn/rules.mk | 19 ++ 4 files changed, 339 insertions(+) create mode 100644 keyboards/keebio/rorschach/keymaps/insertsnideremarks/readme.md create mode 100644 keyboards/keebio/rorschach/keymaps/tuesdayjohn/config.h create mode 100644 keyboards/keebio/rorschach/keymaps/tuesdayjohn/keymap.c create mode 100644 keyboards/keebio/rorschach/keymaps/tuesdayjohn/rules.mk diff --git a/keyboards/keebio/rorschach/keymaps/insertsnideremarks/readme.md b/keyboards/keebio/rorschach/keymaps/insertsnideremarks/readme.md new file mode 100644 index 00000000000..152c8ba01af --- /dev/null +++ b/keyboards/keebio/rorschach/keymaps/insertsnideremarks/readme.md @@ -0,0 +1 @@ +## I've changed my folder name to match my GitHub username. Please see https://github.com/qmk/qmk_firmware/tree/master/keyboards/keebio/rorschach/keymaps/tuesdayjohn for my current keymap files. diff --git a/keyboards/keebio/rorschach/keymaps/tuesdayjohn/config.h b/keyboards/keebio/rorschach/keymaps/tuesdayjohn/config.h new file mode 100644 index 00000000000..2048232c9c3 --- /dev/null +++ b/keyboards/keebio/rorschach/keymaps/tuesdayjohn/config.h @@ -0,0 +1,23 @@ +#pragma once + +/* Use I2C or Serial, not both */ + +// #define USE_SERIAL +#define USE_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_TERM 175 +#define TAPPING_TOGGLE 2 + +// #undef RGBLED_NUM +// #define RGBLIGHT_ANIMATIONS +// #define RGBLED_NUM 12 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/keebio/rorschach/keymaps/tuesdayjohn/keymap.c b/keyboards/keebio/rorschach/keymaps/tuesdayjohn/keymap.c new file mode 100644 index 00000000000..19de124f87b --- /dev/null +++ b/keyboards/keebio/rorschach/keymaps/tuesdayjohn/keymap.c @@ -0,0 +1,296 @@ +#include QMK_KEYBOARD_H + +extern keymap_config_t keymap_config; + +enum rorschach_layers { + _COLEMAK, // Colemak (default layer) + _QWERTY, // Qwerty + _NUMBERS, // Numbers & Symbols + _NUMBERS2, // Numbers & Function Keys (similar to _NUMBERS; used with _NUMBERS for tri-layer access to _ADJUST) + _FUNCTION, // Function + _FUNCTION2, // Function 2 (identical as _FUNCTION; used to allow for easier use of space and backspace while using function layer arrows) + _NUMPAD, // Numpad + _ADJUST, // Adjust layer, accessed via tri-layer feature) + _ADJUST2 // Second Adjust layer, accessed outside of tri-layer feature) +}; + +enum rorschach_keycodes { + COLEMAK = SAFE_RANGE, + QWERTY +}; + +//Tap Dance Declarations +enum { + ADJ = 0, + LBCB, + RBCB, + EQPL, + PLEQ, + MNUN, + SLAS, + GVTL, + PPEQ, + PMUN, + PSPA +}; + +void dance_LAYER_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + layer_on(_ADJUST2); + set_oneshot_layer(_ADJUST2, ONESHOT_START); + } +} +void dance_LAYER_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + layer_off(_ADJUST2); + clear_oneshot_layer_state(ONESHOT_PRESSED); + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { +[ADJ] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LAYER_finished, dance_LAYER_reset), // Double-tap to activate Adjust layer via oneshot layer +[LBCB] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_LCBR), // Left bracket on a single-tap, left brace on a double-tap +[RBCB] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, KC_RCBR), // Right bracket on a single-tap, right brace on a double-tap +[EQPL] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS), // Plus sign on a single-tap, equal sign on a double-tap +[PLEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PLUS, KC_EQL), // Equal sign on a single-tap, plus sign on a double-tap +[MNUN] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS), // Minus sign on a single-tap, underscore on a double-tap +[SLAS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_ASTR), // Slash in a single-tap, asterisk in a double-tap +[GVTL] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD), // Grave on a single-tap, tilde on a double-tap +[PPEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PPLS, KC_EQL), // Numpad plus sign on a single-tap, equal sign on a double-tap +[PMUN] = ACTION_TAP_DANCE_DOUBLE(KC_PMNS, KC_UNDS), // Numpad minus sign on a single-tap, underscore on a double-tap +[PSPA] = ACTION_TAP_DANCE_DOUBLE(KC_PSLS, KC_PAST) // Numpad slash on a single-tap, numpad asterisk on a double-tap +}; + +//Aliases for longer keycodes +#define NUMPAD TG(_NUMPAD) +#define ADJUST MO(_ADJUST2) +#define SPCFN LT(_FUNCTION, KC_SPC) +#define BSPCFN LT(_FUNCTION2, KC_BSPC) +#define ENTNS LT(_NUMBERS, KC_ENT) +#define DELNS LT(_NUMBERS2, KC_DEL) +#define CTLESC CTL_T(KC_ESC) +#define ALTAPP ALT_T(KC_APP) +#define CTL_A LCTL(KC_A) +#define CTL_C LCTL(KC_C) +#define CTL_V LCTL(KC_V) +#define CTL_X LCTL(KC_X) +#define CTL_Z LCTL(KC_Z) +#define CTL_Y LCTL(KC_Y) +#define CA_TAB LCA(KC_TAB) +#define HYPER ALL_T(KC_NO) +#define TD_ADJ TD(ADJ) +#define TD_LBCB TD(LBCB) +#define TD_RBCB TD(RBCB) +#define TD_EQPL TD(EQPL) +#define TD_PLEQ TD(PLEQ) +#define TD_MNUN TD(MNUN) +#define TD_SLAS TD(SLAS) +#define TD_GVTL TD(GVTL) +#define TD_PPEQ TD(PPEQ) +#define TD_PMUN TD(PMUN) +#define TD_PSPA TD(PSPA) +#define NKROTG MAGIC_TOGGLE_NKRO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* +Colemak +(Defauit layer; keys separated by /: tap for first, hold for second; uses Space Cadet Shifts) + ,-----------------------------------------------------. ,-----------------------------------------------------. + | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | Esc/Ctl| A | R | S | T | D | | H | N | E | I | O | ' | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + |SC Shift| Z | X | C | V | B | | K | M | , | . | / |SC Shift| + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------' + | Ins | ` | [ | ] | App/Alt| Spc/FN | | Bsp/Fn2| RGUI | Left | Down | Up | Right | + `--------------------------------------------+--------+--------. ,--------+--------+--------------------------------------------' + | Ent/NS | Bspc | | Enter | Del/NS2| + `-----------------' `-----------------' +*/ +[_COLEMAK] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + CTLESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + KC_INS, KC_GRV, KC_LBRC, KC_RBRC, ALTAPP, SPCFN, BSPCFN, KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + ENTNS, KC_BSPC, KC_ENT, DELNS +), + +/* +QWERTY +(Keys separated by /: tap for first, hold for second; uses Space Cadet Shifts) + ,-----------------------------------------------------. ,-----------------------------------------------------. + | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | Esc/Ctl| A | S | D | F | G | | H | J | K | L | ; | ' | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + |SC Shift| Z | X | C | V | B | | N | M | , | . | / |SC Shift| + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------' + | Ins | ` | [ | ] | App/Alt| Spc/FN | | Bsp/Fn2| RGUI | Left | Down | Up | Right | + `--------------------------------------------+--------+--------. ,--------+--------+--------------------------------------------' + | Ent/NS | Bspc | | Enter | Del/NS2| + `-----------------' `-----------------' +*/ +[_QWERTY] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + KC_INS, KC_GRV, KC_LBRC, KC_RBRC, ALTAPP, SPCFN, BSPCFN, KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + ENTNS, KC_BSPC, KC_ENT, DELNS +), + +/* +Number/symbol layer +(Multiple characters: single-tap for first, double-tap for second) + ,-----------------------------------------------------. ,-----------------------------------------------------. + | | 6 | 7 | 8 | 9 | 0 | | ^ | & | * | ( | ) | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | 1 | 2 | 3 | 4 | 5 | | ! | @ | # | $ | % | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | . | / * | - _ | + = | | ` ~ | [ { | ] } | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | ( | ) | [ { | ] } | | | | | | | | | | + `--------------------------------------------+--------+--------. ,--------+--------+--------------------------------------------' + | | | | | | + `-----------------' `-----------------' +*/ +[_NUMBERS] = LAYOUT( + _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, + _______, _______, KC_DOT, TD_SLAS, TD_MNUN, TD_PLEQ, TD_GVTL, TD_LBCB, TD_RBCB, _______, _______, _______, + KC_LPRN, KC_RPRN, TD_LBCB, TD_RBCB, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ +), + +/* +Number/Function Key layer +(Multiple characters: single-tap for first, double-tap for second) + ,-----------------------------------------------------. ,-----------------------------------------------------. + | | 6 | 7 | 8 | 9 | 0 | | F7 | F8 | F9 | F10 | F11 | F12 | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | 1 | 2 | 3 | 4 | 5 | | F1 | F2 | F3 | F4 | F5 | F6 | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | . | / * | - _ | + = | | ` ~ | [ { | ] } | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | ( | ) | [ { | ] } | | | | | | | | | | + `--------------------------------------------+--------+--------. ,--------+--------+--------------------------------------------' + | | | | | | + `-----------------' `-----------------' +*/ +[_NUMBERS2] = LAYOUT( + _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, _______, KC_DOT, TD_SLAS, TD_MNUN, TD_PLEQ, TD_GVTL, TD_LBCB, TD_RBCB, _______, _______, _______, + KC_LPRN, KC_RPRN, TD_LBCB, TD_RBCB, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ +), + +/* +Function layer + ,-----------------------------------------------------. ,-----------------------------------------------------. + | | | | Up | | | | | | Up | Ctrl+Y | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | Ctrl+A | Left | Down | Right | C+A+Tab| | PgUp | Right | Down | Left | Home | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | Ctrl+Z | Ctrl+X | Ctrl+C | Ctrl+V | Bspc | | PgDn | Mute | Vol- | Vol+ | End | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | | | | | | Prev | Play | Next | Stop | + `--------------------------------------------+--------+--------. ,--------+--------+--------------------------------------------' + | | | | | | + `-----------------' `-----------------' +*/ +[_FUNCTION] = LAYOUT( + _______, _______, _______, KC_UP, _______, _______, _______, _______, KC_UP, CTL_Y, _______, _______, + _______, CTL_A, KC_LEFT, KC_DOWN, KC_RGHT, CA_TAB, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______, + _______, CTL_Z, CTL_X, CTL_C, CTL_V, KC_BSPC, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, + _______, _______, _______, _______ +), + +[_FUNCTION2] = LAYOUT( + _______, _______, _______, KC_UP, _______, _______, _______, _______, KC_UP, CTL_Y, _______, _______, + _______, CTL_A, KC_LEFT, KC_DOWN, KC_RGHT, CA_TAB, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______, + _______, CTL_Z, CTL_X, CTL_C, CTL_V, KC_BSPC, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, + _______, _______, _______, _______ +), + +/* +Numpad layer +(Left side duplicates layout from the Numbers layer, just with numpad output; right side layout close to PC numpad layout) + ,-----------------------------------------------------. ,-----------------------------------------------------. + | | KP 6 | KP 7 | KP 8 | KP 9 | KP 0 | | NumLk | KP 7 | KP 8 | KP 9 | KP / | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | KP 1 | KP 2 | KP 3 | KP 4 | KP 5 | | Tab | KP 4 | KP 5 | KP 6 | KP * | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | NumLk | KP . | KP/ KP*| KP- _ | KP+ = | | | KP 1 | KP 2 | KP 3 | KP - | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | ( | ) | [ { | ] } | | | | | KP 0 | = | KP . | KP + | | + `--------------------------------------------+--------+--------. ,--------+--------+--------------------------------------------' + | | | | KP Ent | | + `-----------------' `-----------------' +*/ +[_NUMPAD] = LAYOUT( + _______, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, + _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PAST, _______, + _______, KC_NLCK, KC_PDOT, TD_PSPA, TD_PMUN, TD_PPEQ, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, + KC_LPRN, KC_RPRN, TD_LBCB, TD_RBCB, _______, _______, _______, KC_P0, KC_EQL, KC_PDOT, KC_PPLS, _______, + _______, _______, KC_PENT, _______ +), + +/* +Adjust layer +(Enter/Number + Delete/Number2 to access; Numpad is a toggle) + ,-----------------------------------------------------. ,-----------------------------------------------------. + | | Colemak| Qwerty | | | | | Numpad | | | | | RESET | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | | | | |NKRO Tog| | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | | | | | | | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | | | | | | | | | | + `--------------------------------------------+--------+--------. ,--------+--------+--------------------------------------------' + | | | | | | + `-----------------' `-----------------' +*/ +[_ADJUST] = LAYOUT( + _______, COLEMAK, QWERTY, _______, _______, _______, NUMPAD, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, NKROTG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ +), + +[_ADJUST2] = LAYOUT( + _______, COLEMAK, QWERTY, _______, _______, _______, NUMPAD, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, NKROTG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ +) + +}; + +uint32_t layer_state_set_user(uint32_t state) { + return update_tri_layer_state(state, _NUMBERS, _NUMBERS2, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case COLEMAK: + if (record->event.pressed) { + default_layer_set(1UL << _COLEMAK); + layer_move (_COLEMAK); + + } + return false; + break; + case QWERTY: + if (record->event.pressed) { + default_layer_set(1UL << _QWERTY); + layer_move (_QWERTY); + } + return false; + break; + } + return true; +} diff --git a/keyboards/keebio/rorschach/keymaps/tuesdayjohn/rules.mk b/keyboards/keebio/rorschach/keymaps/tuesdayjohn/rules.mk new file mode 100644 index 00000000000..cf63c44f4f0 --- /dev/null +++ b/keyboards/keebio/rorschach/keymaps/tuesdayjohn/rules.mk @@ -0,0 +1,19 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# + +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = yes # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +TAP_DANCE_ENABLE = yes # Enable Tap Dancing function From a8427447bc2204df5a21372e129fcfa5ff87e634 Mon Sep 17 00:00:00 2001 From: Mario Arias Date: Tue, 30 Jul 2019 16:13:08 +0800 Subject: [PATCH 074/115] [Keymap] ErgoDox EZ Spanish Colemak (#6258) * keyboard * documentation * address PR comments #1 * address PR comments #2 --- .../keymaps/colemak_es_osx/config.h | 20 + .../keymaps/colemak_es_osx/keymap.c | 397 ++++++++++++++++++ .../keymaps/colemak_es_osx/readme.md | 67 +++ 3 files changed, 484 insertions(+) create mode 100644 keyboards/ergodox_ez/keymaps/colemak_es_osx/config.h create mode 100644 keyboards/ergodox_ez/keymaps/colemak_es_osx/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/colemak_es_osx/readme.md diff --git a/keyboards/ergodox_ez/keymaps/colemak_es_osx/config.h b/keyboards/ergodox_ez/keymaps/colemak_es_osx/config.h new file mode 100644 index 00000000000..a1e4d79768b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_es_osx/config.h @@ -0,0 +1,20 @@ +#pragma once + +// Sets good default for the speed of the mouse. +#undef MOUSEKEY_INTERVAL +#undef MOUSEKEY_DELAY +#undef MOUSEKEY_TIME_TO_MAX +#undef MOUSEKEY_MAX_SPEED + +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 + +#undef MOUSEKEY_WHEEL_MAX_SPEED +#undef MOUSEKEY_WHEEL_TIME_TO_MAX +#undef MOUSEKEY_WHEEL_DELAY + +#define MOUSEKEY_WHEEL_MAX_SPEED 5 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 60 +#define MOUSEKEY_WHEEL_DELAY 100 \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/colemak_es_osx/keymap.c b/keyboards/ergodox_ez/keymaps/colemak_es_osx/keymap.c new file mode 100644 index 00000000000..0abd028a018 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_es_osx/keymap.c @@ -0,0 +1,397 @@ +/* + Copyright 2019 Mario Arias + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public 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 "version.h" + +#include "keymap_spanish.h" + +enum layers { + BASE = 0, //Colemak + QWERTY, //Qwerty + FN, //Colemak but FN1 to FN12 instead of numbers + NUM, //Numpad + MOUSE, //Mouse and media controls + IDEA //Shortcuts for IDEA / Other tools +}; + +//Special paste +#define S_PASTE LSFT(LGUI(KC_V)) +//tmux prefix +#define T_PREFIX LCTL(KC_B) +// Column mode +#define I_COLUMN ALGR(LCTL(LGUI(ES_MINS))) +// Terminal +#define I_TERM ALGR(KC_F12) +// Line comment +#define I_LN_COM LCTL(LGUI(KC_7)) +// Block comment +#define I_BK_COM LCTL(LGUI(KC_8)) +// Reformat code +#define I_REFORM LALT(LGUI(KC_L)) +// Rename +#define I_RENAME LSFT(KC_F6) +// Find usages +#define I_FUSAGE LALT(KC_F7) +// Code for Packt +#define P_CODE LCTL(ALGR(KC_X)) +// Search +#define I_SEARCH LCTL(LSFT(KC_F)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Colemak MacOS Spanish layer + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 ! | 2 " | 3 · | 4 $ | 5 % | º \ | | ¡ ¿ | 6 & | 7 / | 8 ( | 9 ) | 0 = | Backsp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | Q | W | F | P | G | Home | | End | J | L | U | Y | Ñ | ' ? | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | CAPS | A | R | S | T | D |------| |------| H | N | E | I | O | ENT | + * |--------+------+------+------+------+------| <> | | -_ |------+------+------+------+------+--------| + * | Shift | Z | X | C | V | B | | | | K | M | , ; | . : | UP | Shift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Del | PgUp |Ctl/PD|Alt/[ |Cmd/] | |Cmd/{ |Alt/} | LEFT | DOWN | RIGHT| + * `----------------------------------' `----------------------------------' + * ,--------------. ,--------------. + * | Num | Mouse | | Qwer | Ctrl | + * ,------|------|-------| |------+-------+------. + * | | | FN | |SPaste| | | + * |LShift|Backsp|-------| |------| ENT |Space | + * | | | IDEA | | T-pre| | | + * `---------------------' `---------------------' + */ +[BASE] = LAYOUT_ergodox( +// left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, ES_LESS, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_HOME, + KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, + KC_DEL, KC_PGUP, CTL_T(KC_PGDN), ALT_T(ES_GRV), GUI_T(ES_PLUS), + + DF(NUM), DF(MOUSE), + DF(FN), + KC_LSFT, KC_BSPC, MO(IDEA), + +// right hand + ES_IEXL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_END, KC_J, KC_L, KC_U, KC_Y, ES_NTIL, ES_APOS, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT, + ES_MINS, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + GUI_T(ES_ACUT), ALT_T(KC_BSLS), KC_LEFT, KC_DOWN, KC_RIGHT, + + DF(QWERTY), KC_RCTL, + S_PASTE, + T_PREFIX, KC_ENT, KC_SPC +), +/* Keymap 1: Spanish QWERTY layer (games) //Will probably change it for a Linux/Windows Colemak layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 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 | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | Base | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `----------------------' + */ +[QWERTY] = LAYOUT_ergodox( + // left hand + _______, _______, _______, _______, _______, _______, _______, + _______, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, + _______, KC_A, KC_S, KC_D, KC_F, KC_G, + _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______, + +// right hand + _______, _______, _______, _______, _______, _______, _______, + _______, KC_Y, KC_U, KC_I, KC_O, KC_P, _______, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______, + _______, KC_N, KC_M, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + DF(BASE), _______, + _______, + _______, _______, _______ +), +/* Keymap 2: Function Layer +* +* ,--------------------------------------------------. ,--------------------------------------------------. +* | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | +* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +* | | | | | | | | | | | | | | | | +* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +* | | | | | | |------| |------| | | | | | | +* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +* | | | | | | | | | | | | | | | | +* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' +* | | | | | | | | | | | | +* `----------------------------------' `----------------------------------' +* ,-------------. ,-------------. +* | | | | | | +* ,------|------|------| |------+------+------. +* | | | Base | | | | | +* | | |------| |------| | | +* | | | | | | | | +* `--------------------' `--------------------' +*/ +[FN] = LAYOUT_ergodox( + // left hand + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + DF(BASE), + _______, _______, _______, + +// right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______ +), +/* Mouse and media controls + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | | | | | | Play | | Vol+ | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | Ms U | | | | | | | | Wh U | | | | + * |--------+------+------+------+------+------| Rwd | | Vol- |------+------+------+------+------+--------| + * | | | Ms L | Ms D | Ms R | |------| |------| | Wh L | Wh D | Wh R | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | Acc0 | Acc1 | Acc2 | | Fwd | | Mute | | Btn1 | Btn2 | Btn3 | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Num | Base | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------ |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[MOUSE] = LAYOUT_ergodox( +// left hand + KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPLY, + XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, KC_MRWD, + XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, + XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, KC_MFFD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + DF(NUM), DF(BASE), + XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, + +// right hand + KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_VOLD, XXXXXXX, XXXXXXX, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_R, XXXXXXX, XXXXXXX, + KC_MUTE, XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN3, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, + XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX +), +/* Num pad + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | ( | ) | = | / | * | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | Up | | | | | | | 7 | 8 | 9 | - | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | Left | Down |Right | |------| |------| | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 |Enter | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 0 | 0 | , |Enter | . | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Base | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------ |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUM] = LAYOUT_ergodox( +// left hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_UP, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + DF(BASE), _______, + _______, + _______, _______, _______, + +// right hand + _______, LSFT(KC_8), LSFT(KC_9), KC_PEQL, KC_PSLS, KC_PAST, _______, + _______, _______, 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, KC_DOT, + + _______, _______, + _______, + _______, _______, _______ +), +/* IDEA + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | Renm | | Usag | | LnCm | BkCm | | Term | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | |Search| | | | | | | Refm | | | | | + * |--------+------+------+------+------+------| | | Col |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | Code | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------ |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[IDEA] = LAYOUT_ergodox( + +//Left hand + _______, _______, _______, _______, _______, _______, I_RENAME, + _______, _______, _______, I_SEARCH, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, P_CODE, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, DF(BASE), + _______, + _______, _______, _______, + +// right hand + I_FUSAGE, _______, I_LN_COM, I_BK_COM, _______, I_TERM, _______, + I_COLUMN, _______, I_REFORM, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______ +) +}; + + +void led_1_off(void) { + ergodox_right_led_1_off(); +} + +void led_2_off(void) { + ergodox_right_led_2_off(); +} + +void led_3_off(void) { + ergodox_right_led_3_off(); +} + +//Runs just one time when the keyboard initializes +void matrix_init_use(void) { + led_1_off(); + led_2_off(); + led_3_off(); +} + +// Value to use to switch LEDs on. The default value of 255 is far too bright. +static const uint8_t max_led_value = 20; + + +void led_1_on(void) { + ergodox_right_led_1_on(); + ergodox_right_led_1_set(max_led_value); +} + +void led_2_on(void) { + ergodox_right_led_2_on(); + ergodox_right_led_2_set(max_led_value); +} + +void led_3_on(void) { + ergodox_right_led_3_on(); + ergodox_right_led_3_set(max_led_value); +} + +uint32_t layer_state_set_user(uint32_t state) { + + if(layer_state_cmp(state ,IDEA)) { + led_1_on(); + led_3_on(); + } else { + led_1_off(); + led_3_off(); + } + + return state; +}; + +void matrix_scan_user(void) { + + ergodox_board_led_off(); + led_1_off(); + led_2_off(); + led_3_off(); + + if(layer_state_cmp(default_layer_state, QWERTY)) { + led_3_on(); + } + + if(layer_state_cmp(default_layer_state, FN)) { + led_2_on(); + } + + if(layer_state_cmp(default_layer_state, NUM)) { + led_2_on(); + led_3_on(); + } + + if(layer_state_cmp(default_layer_state, MOUSE)) { + led_1_on(); + } +}; diff --git a/keyboards/ergodox_ez/keymaps/colemak_es_osx/readme.md b/keyboards/ergodox_ez/keymaps/colemak_es_osx/readme.md new file mode 100644 index 00000000000..b17ae015aaa --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_es_osx/readme.md @@ -0,0 +1,67 @@ +# ErgoDox EZ Spanish Colemak configuration + +## Description + +A Colemak keymap adapted for Spanish. + +### Base Layer - Spanish Colemak + +The Base Layer is a Colemak keymap with an additional "ñ" next to the "y" key. The arrow cluster has a proper T inverted shape. + +It includes almost all Spanish Symbols from a normal 100% keyboard thanks to the use of tap keys + + +| Pressed | Tap | Shift | Alt | +|---|---|---|---| +|Left Ctrl|PgDn||| +|Left Alt|`|ˆ|[| +|Left Cmd|+|*|]| +|Right Cmd|´|¨|{| +|Right Alt|ç|Ç|}| + +For example, if you want to type ```[]```, you keep pressing the "Left Alt" (To modify) and tap "Right Alt" and "Right Cmd" to send "[" and "]" + +### Qwerty Layer + +A Qwerty layer for gaming and maybe some VIM commands. It just modifies the few keys that are different between Colemak and Qwerty and keep all the others keys + +### Fn Layer + +A layer to change the number row including "º" and "¡" for "Fn1" to "Fn12". The rest is just the same as the Base layer + +### Mouse and media controls + +Mouse movement on the left hand, wheel and buttons on the right hand. "Play/Pause", "Rewind", "Forward" in the Left inner column. "Volume Up", "Volume Down" and "Mute" in the Right inner column + +### Numpad + +A complete numpad in the right hand, plus and Arrow cluster on the left hand + +### IDEA (JetBrains IDEs) + +A momentary layer for IDEA shortcuts that require more than two fingers or any Fn key + +## How to build it + +If you already have all the dependencies (Check QMK's documentation), you can run the command: + +```bash +make ergodox_ez:colemak_es_osx +``` + +On MacOS, if you're using MacPorts you can install the following dependencies: + +```bash +port install avr-binutils +port install avr-gcc +port install avr-libc +``` + +This isn't an exhaustive list and maybe there other dependencies that are technically necessary + +## Changelog + +* Jul 2019: + * Initial version for the new QMK version + +![](https://imgur.com/AyWNGlL.png) \ No newline at end of file From 45950bb3b65fe7c499e653f0e68a0acae73d3029 Mon Sep 17 00:00:00 2001 From: Spaceman Date: Tue, 30 Jul 2019 18:24:11 -0400 Subject: [PATCH 075/115] [Keyboard] 2% Milk addition (#5796) * Create README.md * Update README.md * Create info.json * Create config.h * Create rules.mk * Create 2_milk.c * Create 2_milk.h * Create keymap.c * Create README.md * Create config.h * Update info.json * Update config.h * Update rules.mk * Update 2_milk.h * Update 2_milk.c * Delete config.h * Update keymap.c * Update rules.mk * added pragma once * Add files via upload * Update keyboards/2_milk/rules.mk Co-Authored-By: Rionlion100 * Update config.h * changed default to OSU! * Create README.md * Update README.md * Create keymap.c * Update keymap.c * Create README.md * Create keymap.c * Update keymap.c * Update keymap.c * Update README.md * Update README.md * Update README.md * Update README.md * fixed pins for PCB revision * fixed maybe * Create README.md * add mouse keymap * added ExcessBread's keymap * Update README.md * Create keymap.c * Create README.md * Create keymap.c * Update rules.mk * Rename README.md to readme.md * Rename README.md to readme.md * Rename README.md to readme.md * Rename README.md to readme.md * Rename README.md to readme.md * Rename README.md to readme.md * Rename README.md to readme.md * Update keyboards/2_milk/config.h Co-Authored-By: fauxpark * Update keyboards/2_milk/rules.mk Co-Authored-By: fauxpark * Update info.json * Update info.json * Update info.json * Update info.json * Update info.json * Add files via upload * Update readme.md * fix copyright * Update 2_milk.c * Update 2_milk.h * Update rules.mk * Update rules.mk * Update config.h * Update config.h * Update feature_bluetooth.md * Update feature_bluetooth.md * Update readme.md --- keyboards/2_milk/2_milk.c | 16 ++++++++ keyboards/2_milk/2_milk.h | 26 ++++++++++++ keyboards/2_milk/config.h | 41 +++++++++++++++++++ keyboards/2_milk/info.json | 15 +++++++ keyboards/2_milk/keymaps/binary/keymap.c | 8 ++++ keyboards/2_milk/keymaps/binary/readme.md | 2 + keyboards/2_milk/keymaps/copypasta/keymap.c | 9 ++++ keyboards/2_milk/keymaps/copypasta/readme.md | 2 + keyboards/2_milk/keymaps/default/keymap.c | 8 ++++ keyboards/2_milk/keymaps/default/readme.md | 2 + keyboards/2_milk/keymaps/emoji/keymap.c | 31 ++++++++++++++ keyboards/2_milk/keymaps/emoji/readme.md | 2 + keyboards/2_milk/keymaps/excessbread/keymap.c | 8 ++++ .../2_milk/keymaps/excessbread/readme.md | 2 + keyboards/2_milk/keymaps/mouse/keymap.c | 8 ++++ keyboards/2_milk/keymaps/mouse/readme.md | 2 + keyboards/2_milk/readme.md | 19 +++++++++ keyboards/2_milk/rules.mk | 34 +++++++++++++++ 18 files changed, 235 insertions(+) create mode 100644 keyboards/2_milk/2_milk.c create mode 100644 keyboards/2_milk/2_milk.h create mode 100644 keyboards/2_milk/config.h create mode 100644 keyboards/2_milk/info.json create mode 100644 keyboards/2_milk/keymaps/binary/keymap.c create mode 100644 keyboards/2_milk/keymaps/binary/readme.md create mode 100644 keyboards/2_milk/keymaps/copypasta/keymap.c create mode 100644 keyboards/2_milk/keymaps/copypasta/readme.md create mode 100644 keyboards/2_milk/keymaps/default/keymap.c create mode 100644 keyboards/2_milk/keymaps/default/readme.md create mode 100644 keyboards/2_milk/keymaps/emoji/keymap.c create mode 100644 keyboards/2_milk/keymaps/emoji/readme.md create mode 100644 keyboards/2_milk/keymaps/excessbread/keymap.c create mode 100644 keyboards/2_milk/keymaps/excessbread/readme.md create mode 100644 keyboards/2_milk/keymaps/mouse/keymap.c create mode 100644 keyboards/2_milk/keymaps/mouse/readme.md create mode 100644 keyboards/2_milk/readme.md create mode 100644 keyboards/2_milk/rules.mk diff --git a/keyboards/2_milk/2_milk.c b/keyboards/2_milk/2_milk.c new file mode 100644 index 00000000000..36d50e9c7cc --- /dev/null +++ b/keyboards/2_milk/2_milk.c @@ -0,0 +1,16 @@ +/* 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 "2_milk.h" diff --git a/keyboards/2_milk/2_milk.h b/keyboards/2_milk/2_milk.h new file mode 100644 index 00000000000..8f294817f91 --- /dev/null +++ b/keyboards/2_milk/2_milk.h @@ -0,0 +1,26 @@ +/* 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 } \ +} diff --git a/keyboards/2_milk/config.h b/keyboards/2_milk/config.h new file mode 100644 index 00000000000..9e7228b17e5 --- /dev/null +++ b/keyboards/2_milk/config.h @@ -0,0 +1,41 @@ +/* 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xB195 +#define DEVICE_VER 0x0001 +#define MANUFACTURER rionlion100 +#define PRODUCT 2% Milk +#define DESCRIPTION A milk themed 2% Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 1 + +/* Milk default pinout */ +#define DIRECT_PINS { \ + {D4}, \ + {C6} \ +} +#define UNUSED_PINS + +#ifdef RGBLIGHT_ENABLE +#define RGB_DI_PIN B6 +#define RGBLED_NUM 1 +#endif diff --git a/keyboards/2_milk/info.json b/keyboards/2_milk/info.json new file mode 100644 index 00000000000..0acf002f96e --- /dev/null +++ b/keyboards/2_milk/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "2% Milk", + "keyboard_folder": "2_milk", + "url": "", + "maintainer": "rionlion100", + "width": 1, + "height": 2, + "layouts": { + "LAYOUT": { + "key_count": 2, + "layout": [ {"x": 0, "y": 0 }, {"x": 0, "y": 1 }] + } + } +} + diff --git a/keyboards/2_milk/keymaps/binary/keymap.c b/keyboards/2_milk/keymaps/binary/keymap.c new file mode 100644 index 00000000000..c8df8e9ff02 --- /dev/null +++ b/keyboards/2_milk/keymaps/binary/keymap.c @@ -0,0 +1,8 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_P0, + KC_P1 + ) +}; diff --git a/keyboards/2_milk/keymaps/binary/readme.md b/keyboards/2_milk/keymaps/binary/readme.md new file mode 100644 index 00000000000..5ebcbd3e587 --- /dev/null +++ b/keyboards/2_milk/keymaps/binary/readme.md @@ -0,0 +1,2 @@ +# Binary keymap +0 and 1 that's it diff --git a/keyboards/2_milk/keymaps/copypasta/keymap.c b/keyboards/2_milk/keymaps/copypasta/keymap.c new file mode 100644 index 00000000000..b9b8005a0f0 --- /dev/null +++ b/keyboards/2_milk/keymaps/copypasta/keymap.c @@ -0,0 +1,9 @@ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + RCTL(KC_C), + RCTL(KC_V) + ) +}; diff --git a/keyboards/2_milk/keymaps/copypasta/readme.md b/keyboards/2_milk/keymaps/copypasta/readme.md new file mode 100644 index 00000000000..6c2f4e8fbf8 --- /dev/null +++ b/keyboards/2_milk/keymaps/copypasta/readme.md @@ -0,0 +1,2 @@ +# Copy/Paste Keymap +![Picture](https://i.imgur.com/7LMZZrL.png) diff --git a/keyboards/2_milk/keymaps/default/keymap.c b/keyboards/2_milk/keymaps/default/keymap.c new file mode 100644 index 00000000000..1f327eee9ab --- /dev/null +++ b/keyboards/2_milk/keymaps/default/keymap.c @@ -0,0 +1,8 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Z, + KC_X + ) +}; diff --git a/keyboards/2_milk/keymaps/default/readme.md b/keyboards/2_milk/keymaps/default/readme.md new file mode 100644 index 00000000000..4482bce34a0 --- /dev/null +++ b/keyboards/2_milk/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# Default keymap for 2% Milk +![Picture](https://i.imgur.com/9PsZ6wa.png) diff --git a/keyboards/2_milk/keymaps/emoji/keymap.c b/keyboards/2_milk/keymaps/emoji/keymap.c new file mode 100644 index 00000000000..9b84df5c2c5 --- /dev/null +++ b/keyboards/2_milk/keymaps/emoji/keymap.c @@ -0,0 +1,31 @@ +#include QMK_KEYBOARD_H + +enum custom_keycodes { + DISSA, + SHRUG +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + SHRUG, + DISSA + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SHRUG: + if (record->event.pressed) { + send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF"); + } else { + } + break; + case DISSA: + if (record->event.pressed) { + send_unicode_hex_string("0CA0 005F 0CA0"); + } else { + } + break; + } + return true; +}; diff --git a/keyboards/2_milk/keymaps/emoji/readme.md b/keyboards/2_milk/keymaps/emoji/readme.md new file mode 100644 index 00000000000..980be7dd5c3 --- /dev/null +++ b/keyboards/2_milk/keymaps/emoji/readme.md @@ -0,0 +1,2 @@ +# Emoji Keymap +![Picture](https://i.imgur.com/1zEZ9Lq.png) diff --git a/keyboards/2_milk/keymaps/excessbread/keymap.c b/keyboards/2_milk/keymaps/excessbread/keymap.c new file mode 100644 index 00000000000..a01b47f271d --- /dev/null +++ b/keyboards/2_milk/keymaps/excessbread/keymap.c @@ -0,0 +1,8 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_LGUI, + KC_F11 + ) +}; diff --git a/keyboards/2_milk/keymaps/excessbread/readme.md b/keyboards/2_milk/keymaps/excessbread/readme.md new file mode 100644 index 00000000000..a6535e62cf7 --- /dev/null +++ b/keyboards/2_milk/keymaps/excessbread/readme.md @@ -0,0 +1,2 @@ +# ExcessBread's keymap +requested by excessbread diff --git a/keyboards/2_milk/keymaps/mouse/keymap.c b/keyboards/2_milk/keymaps/mouse/keymap.c new file mode 100644 index 00000000000..a8ba44fb46c --- /dev/null +++ b/keyboards/2_milk/keymaps/mouse/keymap.c @@ -0,0 +1,8 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_BTN1, + KC_BTN2 + ) +}; diff --git a/keyboards/2_milk/keymaps/mouse/readme.md b/keyboards/2_milk/keymaps/mouse/readme.md new file mode 100644 index 00000000000..8ecb99eddbb --- /dev/null +++ b/keyboards/2_milk/keymaps/mouse/readme.md @@ -0,0 +1,2 @@ +# left and right mouse buttons +requested by WanderingVagrant diff --git a/keyboards/2_milk/readme.md b/keyboards/2_milk/readme.md new file mode 100644 index 00000000000..ce0f216bba8 --- /dev/null +++ b/keyboards/2_milk/readme.md @@ -0,0 +1,19 @@ +# 2% Milk + +![2%Milk](https://i.imgur.com/Ud96uXn.png) + +A 2% Meme board themed around a milk carton + +Keyboard Maintainer: [Rionlion100](https://github.com/rionlion100) +Hardware Availability: [Open Source](https://github.com/Rionlion100/Spaceboards/tree/master/Keyboards/2%25%20Milk) + +Make example for this keyboard (after setting up your build environment): + + make 2_milk: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). + +### Credits ++ Case design by Soft ++ PCB by PyroL ++ Name by jetpacktuxedo diff --git a/keyboards/2_milk/rules.mk b/keyboards/2_milk/rules.mk new file mode 100644 index 00000000000..73f55f95385 --- /dev/null +++ b/keyboards/2_milk/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +F_USB = $(F_CPU) + +# Bootloader +BOOTLOADER = caterina + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # 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 = 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 48cc61b18883a482ad8494e005054e64be5cd8bf Mon Sep 17 00:00:00 2001 From: Mark Stosberg Date: Tue, 30 Jul 2019 18:59:46 -0400 Subject: [PATCH 076/115] Update msiu's xd75 keymap README to be accurate (#6443) --- keyboards/xd75/keymaps/msiu/readme.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/xd75/keymaps/msiu/readme.md b/keyboards/xd75/keymaps/msiu/readme.md index d53c0f34a87..f37eee41a33 100644 --- a/keyboards/xd75/keymaps/msiu/readme.md +++ b/keyboards/xd75/keymaps/msiu/readme.md @@ -1 +1,3 @@ -# The default keymap for xd75 +# msiu's keymap for xd75 + +QWERTY keymap for xd75 with centered numpad and standard 40% layers for easy switching between xd75 and contra/planck. From 4c4850f32ab6b1598feb0cdfa75e92a88b554b5e Mon Sep 17 00:00:00 2001 From: Chuck Lauer Vose Date: Wed, 31 Jul 2019 06:07:05 -0700 Subject: [PATCH 077/115] Add personal 1up60HSE layout (#6451) --- .../1up60hse/keymaps/vosechu/config.h | 19 ++++++++ .../1up60hse/keymaps/vosechu/keymap.c | 46 +++++++++++++++++++ .../1up60hse/keymaps/vosechu/readme.md | 6 +++ 3 files changed, 71 insertions(+) create mode 100644 keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h create mode 100644 keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c create mode 100644 keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h new file mode 100644 index 00000000000..65293382cf6 --- /dev/null +++ b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h @@ -0,0 +1,19 @@ +/* Copyright 2018 Chuck "@vosechu" Lauer Vose + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// place overrides here diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c new file mode 100644 index 00000000000..d5b9f901a48 --- /dev/null +++ b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2018 Chuck "@vosechu" Lauer Vose + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define SPACEFN LT(1, KC_SPC) +#define CTL_GRV CTL_T(KC_GRV) +#define ALT_TAB ALT_T(KC_TAB) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_BSPC , + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC , KC_RBRC , KC_BSLS , + KC_CAPS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , KC_ENT , + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT , + CTL_GRV , ALT_TAB , KC_LGUI , SPACEFN , KC_RALT , KC_RGUI , MO(1) , KC_RCTL + ), + + [1] = LAYOUT_60_ansi( + KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_DEL , + KC_TRNS , KC_TRNS , KC_UP , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_PSCR , KC_SLCK , KC_PAUS , KC_TRNS , + KC_TRNS , KC_LEFT , KC_DOWN , KC_RGHT , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_INS , KC_HOME , KC_PGUP , KC_TRNS , + KC_TRNS , KC_VOLU , KC_VOLD , KC_MUTE , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_END , KC_PGDN , KC_TRNS , + KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , MO(2) , KC_TRNS , KC_TRNS + ), + + [2] = LAYOUT_60_ansi( + KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , RESET , + BL_TOGG , BL_INC , BL_DEC , BL_STEP , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , + RGB_TOG , RGB_MOD , RGB_HUI , RGB_SAI , RGB_VAI , RGB_SPI , RGB_M_P , RGB_M_B , RGB_M_R , RGB_M_SW , KC_TRNS , KC_TRNS , KC_TRNS , + KC_TRNS , RGB_RMOD , RGB_HUD , RGB_SAD , RGB_VAD , RGB_SPD , RGB_M_SN , RGB_M_K , RGB_M_X , RGB_M_G , KC_TRNS , KC_TRNS , + KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS + ) +}; diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md new file mode 100644 index 00000000000..97e9453b7c9 --- /dev/null +++ b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md @@ -0,0 +1,6 @@ +# 1up60hse keymap made by vosechu + +Tweaks from default + +* Add in SpaceFN so arrows are reachable with just left hand (leaving right free for mousing). +* Also add tab/grv under the alt/ctrl keys to make those easier to reach. From 2f3807682d0b0cd70b853e15ef1df67bd053706e Mon Sep 17 00:00:00 2001 From: Rasmus Lindroth Date: Wed, 31 Jul 2019 15:08:26 +0200 Subject: [PATCH 078/115] Fix typo for building Ergodox EZ keyboards (#6453) --- docs/newbs_flashing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/newbs_flashing.md b/docs/newbs_flashing.md index fa0a5e2ba5b..c8a30dba05b 100644 --- a/docs/newbs_flashing.md +++ b/docs/newbs_flashing.md @@ -223,7 +223,7 @@ For the PJRC devices (Teensy's), when you're ready to compile and flash your fir For example, if your keymap is named "xyverz" and you're building a keymap for an Ergodox or Ergodox EZ, you'll use this command: - make erdogox_ez:xyverz:teensy + make ergodox_ez:xyverz:teensy Once the firmware finishes compiling, it will output something like this: From 13493d3a78ebb05c4012f908a2ec2575d74e49aa Mon Sep 17 00:00:00 2001 From: Jake Grossman Date: Wed, 31 Jul 2019 08:11:40 -0500 Subject: [PATCH 079/115] Removed print call to resolve #6364 (#6413) * Change print to dprintf to avoid buffer overflow * Add stdio header for dprintf * Fix included headers --- tmk_core/protocol/xt_interrupt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tmk_core/protocol/xt_interrupt.c b/tmk_core/protocol/xt_interrupt.c index 3823bbd3acb..8276f96cd3a 100644 --- a/tmk_core/protocol/xt_interrupt.c +++ b/tmk_core/protocol/xt_interrupt.c @@ -41,7 +41,7 @@ POSSIBILITY OF SUCH DAMAGE. #include #include "xt.h" #include "wait.h" -#include "print.h" +#include "debug.h" static inline uint8_t pbuf_dequeue(void); static inline void pbuf_enqueue(uint8_t data); @@ -138,7 +138,7 @@ static inline void pbuf_enqueue(uint8_t data) pbuf[pbuf_head] = data; pbuf_head = next; } else { - print("pbuf: full\n"); + dprintf("pbuf: full\n"); } SREG = sreg; } From 9177c6fedd2f4731b0cdf069910d6449a66e1333 Mon Sep 17 00:00:00 2001 From: Elliot Powell <32494740+e11i0t23@users.noreply.github.com> Date: Thu, 1 Aug 2019 02:49:27 +0200 Subject: [PATCH 080/115] updates to akb/raine in ready for production units (#6457) * Raine Update * Update keymap and usb setting * Update info.json added wk support to info.json --- keyboards/akb/raine/config.h | 4 ++-- keyboards/akb/raine/info.json | 2 ++ keyboards/akb/raine/keymaps/default/keymap.c | 18 +++++++++--------- keyboards/akb/raine/raine.h | 4 ++-- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/keyboards/akb/raine/config.h b/keyboards/akb/raine/config.h index a28fceef2a5..f5a8b84b6ca 100644 --- a/keyboards/akb/raine/config.h +++ b/keyboards/akb/raine/config.h @@ -23,8 +23,8 @@ along with this program. If not, see . #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 #define MANUFACTURER AKB -#define PRODUCT Raine M3 -#define DESCRIPTION Raine M3 +#define PRODUCT Raine +#define DESCRIPTION Raine /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/akb/raine/info.json b/keyboards/akb/raine/info.json index 0992f86d060..fc699e4774a 100644 --- a/keyboards/akb/raine/info.json +++ b/keyboards/akb/raine/info.json @@ -68,10 +68,12 @@ { "label": "2", "x": 14.25, "y": 3 }, { "label": "3", "x": 15.25, "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": "SPLEFT", "x": 3.5, "y": 4, "w": 2.25 }, { "label": "7U", "x": 5.75, "y": 4 }, { "label": "SPRIGHT", "x": 6.75, "y": 4, "w": 1.75 }, + { "label": "alt", "x": 8.5, "y": 4}, { "label": "Menu", "x": 9.5, "y": 4, "w": 1.25 }, { "x": 11, "y": 4.25 }, { "x": 12, "y": 4.25 }, diff --git a/keyboards/akb/raine/keymaps/default/keymap.c b/keyboards/akb/raine/keymaps/default/keymap.c index 80e52528b47..1eecbb041f1 100644 --- a/keyboards/akb/raine/keymaps/default/keymap.c +++ b/keyboards/akb/raine/keymaps/default/keymap.c @@ -17,16 +17,16 @@ 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_BSPC, KC_NLCK, KC_SLCK, KC_INS, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, KC_PSLS, KC_PAST, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_P7, KC_P8, KC_P9, - MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_HASH, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_LSFT, KC_UP, KC_P1, KC_P2, KC_P3, - KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_DEL), + CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_BSPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), [1] = LAYOUT( /* Second */ - 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_LBRC, KC_RBRC, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), + 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_DEL, KC_NLCK, KC_PSCR, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, KC_HOME, KC_UP, KC_PGUP, + _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, _______, KC_LEFT, KC_SLCK, KC_RGHT, + _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______, _______, KC_END, KC_DOWN, KC_PGDN, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), }; diff --git a/keyboards/akb/raine/raine.h b/keyboards/akb/raine/raine.h index fb5cd48cbe5..ec72a605828 100644 --- a/keyboards/akb/raine/raine.h +++ b/keyboards/akb/raine/raine.h @@ -23,11 +23,11 @@ along with this program. If not, see . K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K113, K114, K115, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K311, K312, K313, K314, K315, \ - K400, K402, K404, K405, K407, K409, K410, K412, K413, K414, K415 \ + K400, K401, K402, K404, K405, K407, K408, K409, K410, K412, K413, K414, K415 \ ) { \ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, KC_NO, K113, K114, K115 }, \ { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K311, KC_NO, K312, K313, K314, K315 }, \ - { K400, KC_NO, K402, KC_NO, K404, K405, KC_NO, K407, KC_NO, K409, K410, KC_NO, K412, K413, K414, K415 } \ + { K400, K401, K402, KC_NO, K404, K405, KC_NO, K407, K408, K409, K410, KC_NO, K412, K413, K414, K415 } \ } From b5677853453d7fa1a9c15c2fed5e4fd1d8258b58 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 1 Aug 2019 17:20:31 +0100 Subject: [PATCH 081/115] [Docs] Add dfu-util and caterina udev examples (#6429) --- docs/faq_build.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/faq_build.md b/docs/faq_build.md index bcf017a9b2a..3fe358edaf2 100644 --- a/docs/faq_build.md +++ b/docs/faq_build.md @@ -19,7 +19,11 @@ Note that running `make` with `sudo` is generally ***not*** a good idea, and you ### Linux `udev` Rules On Linux, you'll need proper privileges to access the MCU. You can either use -`sudo` when flashing firmware, or place these files in `/etc/udev/rules.d/`. +`sudo` when flashing firmware, or place these files in `/etc/udev/rules.d/`. Once added run the following: +```console +sudo udevadm control --reload-rules +sudo udevadm trigger +``` **/etc/udev/rules.d/50-atmel-dfu.rules:** ``` @@ -43,6 +47,28 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", MODE:="0666" ``` +**/etc/udev/rules.d/55-catalina.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" +``` + +**Note:** ModemManager filtering only works when not in strict mode, the following commands can update that settings: +```console +sudo sed -i 's/--filter-policy=strict/--filter-policy=default/' /lib/systemd/system/ModemManager.service +sudo systemctl daemon-reload +sudo systemctl restart ModemManager +``` + +**/etc/udev/rules.d/56-dfu-util.rules:** +``` +# stm32duino +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", MODE:="0666" +# Generic stm32 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666" +``` + ### Serial device is not detected in bootloader mode on Linux Make sure your kernel has appropriate support for your device. If your device uses USB ACM, such as Pro Micro (Atmega32u4), make sure to include `CONFIG_USB_ACM=y`. Other devices may require `USB_SERIAL` and any of its sub options. From 2a9856dff01c08fe712e97c8e403ba43df507c79 Mon Sep 17 00:00:00 2001 From: Mazin Power Date: Thu, 1 Aug 2019 18:21:20 +0200 Subject: [PATCH 082/115] [Keymap] Adds keymap for muzfuz/lunar (#6432) * Adds keymaps for muzfuz * Remove unused keys from adjust layer * Bring in line with current QMK standards. * Adds Preonic and adjusted Planck keymaps * Make changes per review request * Lunar config * Formatting * Update keyboards/ai03/lunar/keymaps/muzfuz/readme.md Co-Authored-By: Drashna Jaelre * Remove unneeded recipe --- keyboards/ai03/lunar/keymaps/muzfuz/keymap.c | 52 +++++++++++++++++++ keyboards/ai03/lunar/keymaps/muzfuz/readme.md | 5 ++ 2 files changed, 57 insertions(+) create mode 100644 keyboards/ai03/lunar/keymaps/muzfuz/keymap.c create mode 100644 keyboards/ai03/lunar/keymaps/muzfuz/readme.md diff --git a/keyboards/ai03/lunar/keymaps/muzfuz/keymap.c b/keyboards/ai03/lunar/keymaps/muzfuz/keymap.c new file mode 100644 index 00000000000..4bbea42af0e --- /dev/null +++ b/keyboards/ai03/lunar/keymaps/muzfuz/keymap.c @@ -0,0 +1,52 @@ +#include QMK_KEYBOARD_H + +// Helpful defines +#define ESC_CTL CTL_T(KC_ESCAPE) // Tap for Esc, hold for Ctrl +#define FL_KCF LT(1,KC_F) +#define FL_KCJ LT(1,KC_J) +#define CMD_ENT LGUI(LSFT(KC_ENT)) + +enum custom_keycodes { + HASHRKT = SAFE_RANGE, + CLNEQLS, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + 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_BSLS, LGUI(KC_C), + KC_TAB, KC_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, LGUI(KC_V), + ESC_CTL, KC_A, KC_S, KC_D, FL_KCF, KC_G, KC_H, FL_KCJ, 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, + CMD_ENT, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, MO(2), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( /* FL */ + 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_DEL, KC_VOLU, + _______, HASHRKT, _______, KC_LCBR, KC_RCBR, _______, _______, KC_UNDS, KC_PLUS, KC_PIPE, _______, _______, _______, _______, KC_VOLD, + _______, CLNEQLS, _______, KC_LBRC, KC_RBRC, _______, _______, KC_MINS, KC_EQL, KC_BSLS, KC_TILD, KC_GRV, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( /* FN */ + 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_DEL, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_VOLD, KC_VOLU, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, + _______, KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case HASHRKT: + if (record->event.pressed) { + SEND_STRING("=>"); + } + break; + case CLNEQLS: + if (record->event.pressed) { + SEND_STRING(":="); + } + break; + } + return true; +} diff --git a/keyboards/ai03/lunar/keymaps/muzfuz/readme.md b/keyboards/ai03/lunar/keymaps/muzfuz/readme.md new file mode 100644 index 00000000000..f0fef092352 --- /dev/null +++ b/keyboards/ai03/lunar/keymaps/muzfuz/readme.md @@ -0,0 +1,5 @@ +# muzfuz's keymap for Lunar + +```shell +make ai03/lunar:muzfuz:dfu +``` From 9609ae60a657dd6ed6e5ba9830f41ed3c0039c09 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 1 Aug 2019 09:33:13 -0700 Subject: [PATCH 083/115] [Keyboard] QWERTYYdox refactor (#6446) * Delete null key `__` key in keymap.c doesn't actually exist on the physical hardware. Removed key from keymap.c and removed its argument from the layout macro. * Delete unused keycode aliases * Replace layer index definitions with an enum * Replace redundant numpad keycodes with native aliases * Use native layer change keycodes instead of aliases * Visually align the keycodes It makes the keymap pretty. * Correct Configurator layout data * Clean up header files - convert to pragma once include guard - remove redundant definitions - remove commented code blocks * Delete LAYOUT_kc macro Was copied from ergotravel; not valid for this keyboard. * Consolidate rev1 rules.mk settings to keyboard level Previous codebase enabled Backlight at keyboard level then disabled it at revision level. * Delete unused rules * Consolidate config.h settings from keymap level to keyboard level * Modernize keyboard's config.h file Aligns the keyboard-level config.h file more closely with the current QMK template for AVR keyboards. --- keyboards/qwertyydox/config.h | 199 ++++++++++++++++-- keyboards/qwertyydox/info.json | 58 ++++- keyboards/qwertyydox/keymaps/default/config.h | 14 -- keyboards/qwertyydox/keymaps/default/keymap.c | 40 ++-- keyboards/qwertyydox/qwertyydox.h | 23 +- keyboards/qwertyydox/rev1/config.h | 70 +----- keyboards/qwertyydox/rev1/rev1.h | 15 +- keyboards/qwertyydox/rev1/rules.mk | 1 - keyboards/qwertyydox/rules.mk | 4 +- 9 files changed, 265 insertions(+), 159 deletions(-) diff --git a/keyboards/qwertyydox/config.h b/keyboards/qwertyydox/config.h index 67f5d3c16a0..3467952140b 100644 --- a/keyboards/qwertyydox/config.h +++ b/keyboards/qwertyydox/config.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef REV1_CONFIG_H -#define REV1_CONFIG_H +#pragma once #include "config_common.h" @@ -33,6 +32,16 @@ along with this program. If not, see . #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) + * +*/ // wiring of each half #define MATRIX_ROW_PINS { B6, B2, B3, B1 } #define MATRIX_COL_PINS { F7, F6, F5, C6, D7, D4, D1 } @@ -40,30 +49,139 @@ along with this program. If not, see . /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST +/* + * 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 -/* number of backlight levels */ -// #define BACKLIGHT_LEVELS 3 +// #define BACKLIGHT_PIN E6 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 5 -/* Set 0 if debouncing isn't needed */ +#define RGB_DI_PIN D6 +#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 -/* serial.c configuration for split keyboard */ -#define SOFT_SERIAL_PIN D0 +/* 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 -#define BACKLIGHT_PIN E6 -#define BACKLIGHT_LEVELS 5 +/* 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 -/* ws2812 RGB LED */ -#define RGB_DI_PIN D6 +/* + * 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 -#define RGBLED_NUM 12 // Number of LEDs +/* + * 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 + +#define MOUSEKEY_DELAY 150 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 10 +#define MOUSEKEY_TIME_TO_MAX 10 +#define MOUSEKEY_WHEEL_MAX_SPEED 8 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 /* * Feature disable options @@ -83,4 +201,57 @@ along with this program. If not, see . //#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 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line #endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/qwertyydox/info.json b/keyboards/qwertyydox/info.json index 3dd6b3ec738..8616f274ea3 100644 --- a/keyboards/qwertyydox/info.json +++ b/keyboards/qwertyydox/info.json @@ -5,12 +5,66 @@ "url": "", "maintainer": "qmk", "processor": "atmega32u4", - "width": 16, + "width": 16.25, "height": 5, "layouts": { "LAYOUT": { "key_count": 53, - "layout": [{"label":"L00", "x":0, "y":0.375}, {"label":"L01", "x":1, "y":0.25}, {"label":"L02", "x":2, "y":0.125}, {"label":"L03", "x":3, "y":0}, {"label":"L04", "x":4, "y":0.125}, {"label":"L05", "x":5, "y":0.25}, {"label":"L06", "x":6, "y":0.5}, {"label":"R00", "x":9, "y":0.5}, {"label":"R01", "x":10, "y":0.25}, {"label":"R02", "x":11, "y":0.125}, {"label":"R03", "x":12, "y":0}, {"label":"R04", "x":13, "y":0.125}, {"label":"R05", "x":14, "y":0.25}, {"label":"R06", "x":15, "y":0.375}, {"label":"L10", "x":0, "y":1.375}, {"label":"L11", "x":1, "y":1.25}, {"label":"L12", "x":2, "y":1.125}, {"label":"L13", "x":3, "y":1}, {"label":"L14", "x":4, "y":1.125}, {"label":"L15", "x":5, "y":1.25}, {"label":"L16", "x":6, "y":1.5}, {"label":"R10", "x":9, "y":1.5}, {"label":"R11", "x":10, "y":1.25}, {"label":"R12", "x":11, "y":1.125}, {"label":"R13", "x":12, "y":1}, {"label":"R14", "x":13, "y":1.125}, {"label":"R15", "x":14, "y":1.25}, {"label":"R16", "x":15, "y":1.375}, {"label":"L20", "x":0, "y":2.375}, {"label":"L21", "x":1, "y":2.25}, {"label":"L22", "x":2, "y":2.125}, {"label":"L23", "x":3, "y":2}, {"label":"L24", "x":4, "y":2.125}, {"label":"L25", "x":5, "y":2.25}, {"label":"L26", "x":6.5, "y":3}, {"label":"R20", "x":8.5, "y":3}, {"label":"R21", "x":10, "y":2.25}, {"label":"R22", "x":11, "y":2.125}, {"label":"R23", "x":12, "y":2}, {"label":"R24", "x":13, "y":2.125}, {"label":"R25", "x":14, "y":2.25}, {"label":"R26", "x":15, "y":2.375}, {"label":"L30", "x":0, "y":3.375}, {"label":"L31", "x":1, "y":3.25}, {"label":"L32", "x":2, "y":3.125}, {"label":"L33", "x":3, "y":3}, {"label":"L34", "x":5.5, "y":4}, {"label":"L35", "x":6.5, "y":4}, {"label":"R30", "x":8.5, "y":4}, {"label":"R31", "x":9.5, "y":4}, {"label":"R32", "x":12, "y":3}, {"label":"R33", "x":13, "y":3.125}, {"label":"R34", "x":14, "y":3.25}, {"label":"R35", "x":15, "y":3.375}] + "layout": [ + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"Y", "x":9, "y":0}, + {"label":"U", "x":10, "y":0}, + {"label":"I", "x":11, "y":0}, + {"label":"O", "x":12, "y":0}, + {"label":"P", "x":13, "y":0}, + {"label":"{", "x":14, "y":0}, + {"label":"}", "x":15, "y":0}, + {"label":"Caps Lock", "x":0.25, "y":1}, + {"label":"A", "x":1.25, "y":1}, + {"label":"S", "x":2.25, "y":1}, + {"label":"D", "x":3.25, "y":1}, + {"label":"F", "x":4.25, "y":1}, + {"label":"G", "x":5.25, "y":1}, + {"label":"H", "x":9.25, "y":1}, + {"label":"J", "x":10.25, "y":1}, + {"label":"K", "x":11.25, "y":1}, + {"label":"L", "x":12.25, "y":1}, + {"label":":", "x":13.25, "y":1}, + {"label":"\"", "x":14.25, "y":1}, + {"label":"|", "x":15.25, "y":1}, + {"label":"Shift", "x":0.75, "y":2}, + {"label":"Z", "x":1.75, "y":2}, + {"label":"X", "x":2.75, "y":2}, + {"label":"C", "x":3.75, "y":2}, + {"label":"V", "x":4.75, "y":2}, + {"label":"B", "x":5.75, "y":2}, + {"label":"N", "x":9.75, "y":2}, + {"label":"M", "x":10.75, "y":2}, + {"label":"<", "x":11.75, "y":2}, + {"label":">", "x":12.75, "y":2}, + {"label":"?", "x":13.75, "y":2}, + {"label":"Shift", "x":14.75, "y":2}, + {"label":"Ctrl", "x":0.75, "y":3}, + {"label":"GUI", "x":1.75, "y":3}, + {"label":"Alt", "x":2.75, "y":3}, + {"label":"\"-QWERTY\"", "x":3.75, "y":3}, + {"label":"Enter", "x":4.75, "y":3.33}, + {"label":"Delete", "x":5.75, "y":3.67}, + {"label":"TO(_NUM)", "x":6.75, "y":4}, + {"label":"TO(_NAV)", "x":8.75, "y":4}, + {"label":"Space", "x":9.75, "y":3.67}, + {"label":"Back Space", "x":10.75, "y":3.33}, + {"label":"Left", "x":11.75, "y":3}, + {"label":"Alt", "x":12.75, "y":3}, + {"label":"GUI", "x":13.75, "y":3}, + {"label":"Ctrl", "x":14.75, "y":3} + ] } } } diff --git a/keyboards/qwertyydox/keymaps/default/config.h b/keyboards/qwertyydox/keymaps/default/config.h index 6b4e3fe96e8..cc85e4e2e81 100644 --- a/keyboards/qwertyydox/keymaps/default/config.h +++ b/keyboards/qwertyydox/keymaps/default/config.h @@ -27,17 +27,3 @@ along with this program. If not, see . // #define MASTER_LEFT #define MASTER_RIGHT // #define EE_HANDS - -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -#define MOUSEKEY_DELAY 150 -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_MAX_SPEED 10 -#define MOUSEKEY_TIME_TO_MAX 10 -#define MOUSEKEY_WHEEL_MAX_SPEED 8 -#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 \ No newline at end of file diff --git a/keyboards/qwertyydox/keymaps/default/keymap.c b/keyboards/qwertyydox/keymaps/default/keymap.c index 5967c5146f1..f5381bf7d31 100644 --- a/keyboards/qwertyydox/keymaps/default/keymap.c +++ b/keyboards/qwertyydox/keymaps/default/keymap.c @@ -2,9 +2,12 @@ extern keymap_config_t keymap_config; -#define _QWERTY 0 -#define _NUM 1 -#define _NAV 2 +enum layer_names { + _QWERTY, + _NUM, + _NAV +}; + enum custom_keycodes { qwerty = SAFE_RANGE, nav, @@ -12,17 +15,6 @@ enum custom_keycodes { EQL }; -// #define KC_ KC_TRNS -#define __ KC_NO -#define NAV TO(2) -#define NUM TO(1) -#define ALPHA TO(0) -#define NPLUS KC_KP_PLUS -#define NMINUS KC_KP_MINUS -#define NSTAR KC_KP_ASTERISK -#define NSLASH KC_KP_SLASH - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( @@ -31,33 +23,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, __, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_LGUI, KC_LALT, qwerty, KC_ENT, KC_DEL, NUM, NAV, KC_SPC, KC_BSPC, KC_LEFT, KC_RALT, KC_RGUI, KC_RCTL + KC_LCTL, KC_LGUI, KC_LALT, qwerty, KC_ENT, KC_DEL, TO(1), TO(2), KC_SPC, KC_BSPC, KC_LEFT, KC_RALT, KC_RGUI, KC_RCTL //`--------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------' ), [_NUM] = LAYOUT( //,--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------. - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_NO, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_NO, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_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_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_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, __, KC_NO, KC_PPLS, KC_PMNS, EQL, KC_PAST, KC_PSLS, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PPLS, KC_PMNS, EQL, KC_PAST, KC_PSLS, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_ESC, KC_NO, num, KC_ENT, KC_LSFT, NAV, ALPHA, KC_SPC, KC_BSPC, KC_LEFT, KC_RALT, KC_RGUI, KC_RCTL + KC_LCTL, KC_ESC, KC_NO, num, KC_ENT, KC_LSFT, TO(2), TO(0), KC_SPC, KC_BSPC, KC_LEFT, KC_RALT, KC_RGUI, KC_RCTL //`--------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------' ), [_NAV] = LAYOUT( //,--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------. - KC_ESC, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_WH_L, KC_WH_R, KC_ESC, KC_NO, KC_UP, NSLASH, NSTAR, NMINUS, NPLUS, + KC_ESC, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_WH_L, KC_WH_R, KC_ESC, KC_NO, KC_UP, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_WH_U, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_NO, KC_NO, + KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_WH_U, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_INS, KC_HOME, KC_PGUP, KC_BTN1, KC_BTN2, KC_WH_D, __, KC_MS_L, KC_MS_U, KC_MS_D, KC_MS_R, KC_NO, KC_NO, + KC_INS, KC_HOME, KC_PGUP, KC_BTN1, KC_BTN2, KC_WH_D, KC_MS_L, KC_MS_U, KC_MS_D, KC_MS_R, KC_NO, KC_NO, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_DEL, KC_END, KC_PGDN, nav, KC_LCTL, KC_SPC, ALPHA, NUM, KC_LSFT, KC_BSPC, KC_NO, KC_NO, KC_NO, RESET + KC_DEL, KC_END, KC_PGDN, nav, KC_LCTL, KC_SPC, TO(0), TO(1), KC_LSFT, KC_BSPC, KC_NO, KC_NO, KC_NO, RESET //`--------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------' ) }; diff --git a/keyboards/qwertyydox/qwertyydox.h b/keyboards/qwertyydox/qwertyydox.h index 57bd0dc54a3..9eb4073dfe8 100644 --- a/keyboards/qwertyydox/qwertyydox.h +++ b/keyboards/qwertyydox/qwertyydox.h @@ -1,24 +1,7 @@ -#ifndef QWERTYYDOX_H -#define QWERTYYDOX_H +#pragma once + +#include "quantum.h" #ifdef KEYBOARD_qwertyydox_rev1 #include "rev1.h" #endif - -#include "quantum.h" - -// Used to create a keymap using only KC_ prefixed keys -#define LAYOUT_kc( \ - L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ - 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, \ - 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_##L06, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, KC_##R06, \ - KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##L16, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, KC_##R16, \ - KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##L26, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, KC_##R26, \ - KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ - ) - -#endif \ No newline at end of file diff --git a/keyboards/qwertyydox/rev1/config.h b/keyboards/qwertyydox/rev1/config.h index 703d62de750..b749fffcb7e 100644 --- a/keyboards/qwertyydox/rev1/config.h +++ b/keyboards/qwertyydox/rev1/config.h @@ -15,72 +15,4 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef REV1_CONFIG_H -#define REV1_CONFIG_H - -#include QMK_KEYBOARD_CONFIG_H - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCEEB -#define PRODUCT_ID 0x1256 -#define DEVICE_VER 0x0100 -#define MANUFACTURER AYDENandDAD -#define PRODUCT QWERTYdox Keyboard -#define DESCRIPTION Split 40 percent keyboard - -/* key matrix size */ -// Rows are doubled-up -#define MATRIX_ROWS 8 -#define MATRIX_COLS 7 - -// wiring of each half -#define MATRIX_ROW_PINS { B6, B2, B3, B1 } -#define MATRIX_COL_PINS { F7, F6, F5, C6, D7, D4, D1 } - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* 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 - -/* 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 - -#define BACKLIGHT_PIN E6 -#define BACKLIGHT_LEVELS 5 - -/* ws2812 RGB LED */ -#define RGB_DI_PIN D6 - -#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 - -#endif +#pragma once diff --git a/keyboards/qwertyydox/rev1/rev1.h b/keyboards/qwertyydox/rev1/rev1.h index d620e62108d..a7b30b648fa 100644 --- a/keyboards/qwertyydox/rev1/rev1.h +++ b/keyboards/qwertyydox/rev1/rev1.h @@ -1,12 +1,7 @@ -#ifndef REV1_H -#define REV1_H +#pragma once #include "qwertyydox.h" -//void promicro_bootloader_jmp(bool program); -#include "quantum.h" - - #ifdef USE_I2C #include #ifdef __AVR__ @@ -15,12 +10,10 @@ #endif #endif -//void promicro_bootloader_jmp(bool program); - #define LAYOUT( \ L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, R16, \ - L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, R26, \ + L20, L21, L22, L23, L24, L25, R21, R22, R23, R24, R25, R26, \ L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36 \ ) \ { \ @@ -30,8 +23,6 @@ { L30, L31, L32, L33, L34, L35, L36 }, \ { R06, R05, R04, R03, R02, R01, R00 }, \ { R16, R15, R14, R13, R12, R11, R10 }, \ - { R26, R25, R24, R23, R22, R21, R20, }, \ + { R26, R25, R24, R23, R22, R21, KC_NO, }, \ { R36, R35, R34, R33, R32, R31, R30 } \ } - -#endif diff --git a/keyboards/qwertyydox/rev1/rules.mk b/keyboards/qwertyydox/rev1/rules.mk index 7b30c0beff2..e69de29bb2d 100644 --- a/keyboards/qwertyydox/rev1/rules.mk +++ b/keyboards/qwertyydox/rev1/rules.mk @@ -1 +0,0 @@ -BACKLIGHT_ENABLE = no diff --git a/keyboards/qwertyydox/rules.mk b/keyboards/qwertyydox/rules.mk index 7cc070ba598..fcd3d708e2d 100644 --- a/keyboards/qwertyydox/rules.mk +++ b/keyboards/qwertyydox/rules.mk @@ -52,14 +52,12 @@ EXTRAKEY_ENABLE = no # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. -SUBPROJECT_rev1 = yes -USE_I2C = yes # I2C is used between the sides # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend From f1cebc9d9de58f892457b199dcc29fbd82e89418 Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Thu, 1 Aug 2019 11:34:51 -0500 Subject: [PATCH 084/115] [Keymap] Fixing Sol Rev2 default keymap OLED rotation. (#6448) --- keyboards/rgbkb/sol/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/rgbkb/sol/keymaps/default/keymap.c b/keyboards/rgbkb/sol/keymaps/default/keymap.c index 1fae6cc971a..9bbc6397b93 100644 --- a/keyboards/rgbkb/sol/keymaps/default/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/default/keymap.c @@ -300,7 +300,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef OLED_DRIVER_ENABLE oled_rotation_t oled_init_user(oled_rotation_t rotation) { if (is_keyboard_master()) - return OLED_ROTATION_90; + return OLED_ROTATION_270; return rotation; } From 17eea779df16ae4888a73d5b7d33d0533d5c06c5 Mon Sep 17 00:00:00 2001 From: Brian L Date: Thu, 1 Aug 2019 12:36:00 -0400 Subject: [PATCH 085/115] [Keymap] Adds Keymap for Iris/blucky (#6449) * Adds Keymap for Iris/blucky * code review changes * removed custom define * removed mistyped character --- keyboards/keebio/iris/keymaps/blucky/config.h | 34 ++++++++ keyboards/keebio/iris/keymaps/blucky/keymap.c | 86 +++++++++++++++++++ keyboards/keebio/iris/keymaps/blucky/rules.md | 7 ++ keyboards/keebio/iris/keymaps/blucky/rules.mk | 5 ++ 4 files changed, 132 insertions(+) create mode 100644 keyboards/keebio/iris/keymaps/blucky/config.h create mode 100644 keyboards/keebio/iris/keymaps/blucky/keymap.c create mode 100644 keyboards/keebio/iris/keymaps/blucky/rules.md create mode 100644 keyboards/keebio/iris/keymaps/blucky/rules.mk diff --git a/keyboards/keebio/iris/keymaps/blucky/config.h b/keyboards/keebio/iris/keymaps/blucky/config.h new file mode 100644 index 00000000000..213445dd3f3 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/blucky/config.h @@ -0,0 +1,34 @@ +/* +Copyright 2019 Brian Luckenbill + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 C6_AUDIO + +#undef RGBLED_NUM +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_ANIMATIONS + +#define MOUSEKEY_DELAY 300 +#define MOUSEKEY_INTERVAL 50 +#define MOUSEKEY_MAX_SPEED 10 +#define MOUSEKEY_TIME_TO_MAX 20 +#define MOUSEKEY_WHEEL_MAX_SPEED 8 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 diff --git a/keyboards/keebio/iris/keymaps/blucky/keymap.c b/keyboards/keebio/iris/keymaps/blucky/keymap.c new file mode 100644 index 00000000000..f7ede3f220f --- /dev/null +++ b/keyboards/keebio/iris/keymaps/blucky/keymap.c @@ -0,0 +1,86 @@ +#include QMK_KEYBOARD_H + +enum layer_names { + _QWERTY, + _LAYER1, + _LAYER2, + _LAYER3 +}; + +#define WM_0 LGUI(KC_ENT) +#define WM_1 LGUI(KC_BSPC) +#define WM_2 LGUI(KC_DEL) +#define WM_3 SGUI(KC_ENT) +#define WM_4 SGUI(KC_BSPC) +#define WM_5 SGUI(KC_DEL) +#define WM_6 SGUI(KC_TAB) + +#define LAYER1 TT(_LAYER1) +#define LAYER2 TT(_LAYER2) + +#define CS_U C(S(KC_UP)) +#define CS_D C(S(KC_DOWN)) +#define CS_SPC C(S(KC_SPC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + LAYER1, 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_LGUI, KC_RGUI, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LAYER2, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + KC_LCTL, KC_LALT, KC_SPC, KC_ENT, KC_RGUI, WM_0 + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + + [_LAYER1] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MINS, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_SLCK, KC_PSCR, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_PGDN, KC_HOME, KC_END, KC_NO, KC_DEL, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_NO, KC_NO, C(KC_LEFT), KC_NO, C(KC_RGHT), KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_INS, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_RSFT, KC_NO, WM_5, WM_4, WM_3, WM_2, MU_TOG, AU_TOG, KC_NO, KC_NO, KC_LBRC, KC_RBRC, KC_BSLS, KC_NO, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + WM_1, KC_LGUI, KC_PIPE, KC_UNDS, KC_RCTL, KC_RALT + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + + [_LAYER2] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_ESC, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_NO, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_NO, KC_NO, KC_NO, CS_SPC, CS_U, S(KC_PGUP), RGB_VAI, RGB_HUI, RGB_SAI, RGB_M_SW,RGB_M_R, KC_NO, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_NO, KC_NO, KC_NO, KC_NO, CS_D, S(KC_PGDN), RGB_VAD, RGB_HUD, RGB_SAD, KC_NO, KC_NO, KC_NO, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LSFT, KC_VOLD, KC_VOLU, KC_MUTE, KC_BRID, KC_BRIU, MU_MOD, AU_OFF, KC_RCTL, KC_LCTL, KC_RALT, KC_LALT, KC_DEL, KC_NO, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + WM_6, VLK_TOG, RGB_MOD, RGB_TOG, BL_TOGG, BL_STEP + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + + [_LAYER3] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ) + +}; diff --git a/keyboards/keebio/iris/keymaps/blucky/rules.md b/keyboards/keebio/iris/keymaps/blucky/rules.md new file mode 100644 index 00000000000..5c1458faeea --- /dev/null +++ b/keyboards/keebio/iris/keymaps/blucky/rules.md @@ -0,0 +1,7 @@ +# blucky's keymap for iris rev 2 w/ speaker, backlight and RGB and rev 3 + +```shell +make keebio/iris/rev2:blucky + +make keebio/iris/rev3:blucky +``` diff --git a/keyboards/keebio/iris/keymaps/blucky/rules.mk b/keyboards/keebio/iris/keymaps/blucky/rules.mk new file mode 100644 index 00000000000..5fdc528057a --- /dev/null +++ b/keyboards/keebio/iris/keymaps/blucky/rules.mk @@ -0,0 +1,5 @@ +RGBLIGHT_ENABLE = yes +BACKLIGHT_ENABLE = yes +VELOCIKEY_ENABLE = yes +MOUSEKEY_ENABLE = yes +AUDIO_ENABLE = no From a2d61d76fa840eecf20480f317397b23be6b93de Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Thu, 1 Aug 2019 09:39:03 -0700 Subject: [PATCH 086/115] [Keyboard] New Keyboard: KBDPad MKI (#6452) * initial commit * define pins used and matrix size * update readme * delete un needed files * make an appropriate switch matrix * create appropriate keymap * one little typo * add QMK Configurator support * Update keyboards/kbdfans/kbdpad/mk1/info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> --- keyboards/kbdfans/kbdpad/mk1/config.h | 38 ++ keyboards/kbdfans/kbdpad/mk1/info.json | 12 + .../kbdpad/mk1/keymaps/default/keymap.c | 27 ++ keyboards/kbdfans/kbdpad/mk1/mk1.c | 88 ++++ keyboards/kbdfans/kbdpad/mk1/mk1.h | 38 ++ keyboards/kbdfans/kbdpad/mk1/readme.md | 47 +++ keyboards/kbdfans/kbdpad/mk1/rules.mk | 48 +++ keyboards/kbdfans/kbdpad/mk1/usbconfig.h | 393 ++++++++++++++++++ 8 files changed, 691 insertions(+) create mode 100644 keyboards/kbdfans/kbdpad/mk1/config.h create mode 100644 keyboards/kbdfans/kbdpad/mk1/info.json create mode 100644 keyboards/kbdfans/kbdpad/mk1/keymaps/default/keymap.c create mode 100644 keyboards/kbdfans/kbdpad/mk1/mk1.c create mode 100644 keyboards/kbdfans/kbdpad/mk1/mk1.h create mode 100644 keyboards/kbdfans/kbdpad/mk1/readme.md create mode 100644 keyboards/kbdfans/kbdpad/mk1/rules.mk create mode 100644 keyboards/kbdfans/kbdpad/mk1/usbconfig.h diff --git a/keyboards/kbdfans/kbdpad/mk1/config.h b/keyboards/kbdfans/kbdpad/mk1/config.h new file mode 100644 index 00000000000..2c55d2aef06 --- /dev/null +++ b/keyboards/kbdfans/kbdpad/mk1/config.h @@ -0,0 +1,38 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +#define VENDOR_ID 0x20A0 +#define PRODUCT_ID 0x422D +#define MANUFACTURER KBDfans +#define PRODUCT KBDPAD-MKI + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +// 0 1 2 3 4 5 +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5 } +#define MATRIX_COL_PINS { A0, A1, A2, A3 } +#define UNUSED_PINS + +#define DIODE_DIRECTION COL2ROW +#define DEBOUNCE 5 + +#define BACKLIGHT_LEVELS 1 diff --git a/keyboards/kbdfans/kbdpad/mk1/info.json b/keyboards/kbdfans/kbdpad/mk1/info.json new file mode 100644 index 00000000000..426a23b8d52 --- /dev/null +++ b/keyboards/kbdfans/kbdpad/mk1/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "KBDFans KBDPad MKI", + "url": "", + "maintainer": "qmk", + "width": 4, + "height": 6.25, + "layouts": { + "LAYOUT": { + "layout": [{"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}] + } + } +} diff --git a/keyboards/kbdfans/kbdpad/mk1/keymaps/default/keymap.c b/keyboards/kbdfans/kbdpad/mk1/keymaps/default/keymap.c new file mode 100644 index 00000000000..2d5053e0b6a --- /dev/null +++ b/keyboards/kbdfans/kbdpad/mk1/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2019 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(\ + KC_DEL, KC_BSPC, \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, \ + KC_P4, KC_P5, KC_P6, KC_PPLS, \ + KC_P1, KC_P2, KC_P3, \ + KC_P0, KC_PDOT, KC_PENT) \ +}; diff --git a/keyboards/kbdfans/kbdpad/mk1/mk1.c b/keyboards/kbdfans/kbdpad/mk1/mk1.c new file mode 100644 index 00000000000..c17cb008486 --- /dev/null +++ b/keyboards/kbdfans/kbdpad/mk1/mk1.c @@ -0,0 +1,88 @@ +/* Copyright 2019 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 "i2c_master.h" +#include "quantum.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +extern rgblight_config_t rgblight_config; + +void rgblight_set(void) { + if (!rgblight_config.enable) { + for (uint8_t i = 0; i < RGBLED_NUM; i++) { + led[i].r = 0; + led[i].g = 0; + led[i].b = 0; + } + } + + i2c_init(); + i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100); +} +#endif + +void matrix_init_kb(void) { +#ifdef RGBLIGHT_ENABLE + if (rgblight_config.enable) { + i2c_init(); + i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100); + } +#endif + // call user level keymaps, if any + matrix_init_user(); +} + +void matrix_scan_kb(void) { +#ifdef RGBLIGHT_ENABLE + rgblight_task(); +#endif + matrix_scan_user(); + /* Nothing else for now. */ +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +void backlight_init_ports(void) { + // initialize pins D0, D1, D4 and D6 as output + setPinOutput(D0); + setPinOutput(D1); + setPinOutput(D4); + setPinOutput(D6); + + // turn backlight LEDs on + writePinHigh(D0); + writePinHigh(D1); + writePinHigh(D4); + writePinHigh(D6); +} + +void backlight_set(uint8_t level) { + if (level == 0) { + // turn backlight LEDs off + writePinLow(D0); + writePinLow(D1); + writePinLow(D4); + writePinLow(D6); + } else { + // turn backlight LEDs on + writePinHigh(D0); + writePinHigh(D1); + writePinHigh(D4); + writePinHigh(D6); + } +} \ No newline at end of file diff --git a/keyboards/kbdfans/kbdpad/mk1/mk1.h b/keyboards/kbdfans/kbdpad/mk1/mk1.h new file mode 100644 index 00000000000..ace7466f548 --- /dev/null +++ b/keyboards/kbdfans/kbdpad/mk1/mk1.h @@ -0,0 +1,38 @@ +/* Copyright 2019 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" + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array + +#define LAYOUT( \ + k52, k53, \ + k40, k41, k42, k43, \ + k30, k31, k32, \ + k20, k21, k22, k23, \ + k10, k11, k12, \ + k00, k02, k03 \ +){ \ + { k00, KC_NO, k02, k03 }, \ + { k10, k11, k12, KC_NO }, \ + { k20, k21, k22, k23 }, \ + { k30, k31, k32, KC_NO }, \ + { k40, k41, k42, k43 }, \ + { KC_NO, KC_NO, k52, k53 }, \ +} diff --git a/keyboards/kbdfans/kbdpad/mk1/readme.md b/keyboards/kbdfans/kbdpad/mk1/readme.md new file mode 100644 index 00000000000..569fb88a229 --- /dev/null +++ b/keyboards/kbdfans/kbdpad/mk1/readme.md @@ -0,0 +1,47 @@ +# KBDPad MKI + +Custom numpad. + +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +Hardware Supported: KBDPad MKI +Hardware Availability: No longer available. + + +Make example for this keyboard (after setting up your build environment): + + make kbdfans/kbdpad/mk1:default + +Flashing + +ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods. + +**Reset Key:** Hold down the key located at `K00`, commonly programmed as `0` while plugging in the keyboard. + +Windows: +1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash). +2. Place your keyboard into reset. +3. Press the `Find Device` button and ensure that your keyboard is found. +4. Press the `Open .hex File` button and locate the `.hex` file you created. +5. Press the `Flash Device` button and wait for the process to complete. + +macOS: +1. Install homebrew by typing the following: + ``` + /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + ``` +2. Install `crosspack-avr`. + ``` + brew cask install crosspack-avr + ``` +3. Install the following packages: + ``` + brew install python3 + pip3 install pyusb + brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb + ``` + +4. Place your keyboard into reset. +5. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file. + + +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/kbdfans/kbdpad/mk1/rules.mk b/keyboards/kbdfans/kbdpad/mk1/rules.mk new file mode 100644 index 00000000000..421b0cf32d1 --- /dev/null +++ b/keyboards/kbdfans/kbdpad/mk1/rules.mk @@ -0,0 +1,48 @@ +# Copyright 2017 Luiz Ribeiro +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# MCU name +MCU = atmega32a +PROTOCOL = VUSB + +# unsupported features for now +NO_UART = yes +NO_SUSPEND_POWER_DOWN = yes + +# processor frequency +F_CPU = 12000000 + +# Bootloader +# This definition is optional, and if your keyboard supports multiple bootloaders of +# different sizes, comment this out, and the correct address will be loaded +# automatically (+60). See bootloader.mk for all options. +BOOTLOADER = bootloadHID + +# build options +BOOTMAGIC_ENABLE = no +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = yes +COMMAND_ENABLE = yes +BACKLIGHT_ENABLE = yes +RGBLIGHT_ENABLE = no +RGBLIGHT_CUSTOM_DRIVER = no + +OPT_DEFS = -DDEBUG_LEVEL=0 + +QUANTUM_LIB_SRC = i2c_master.c + +# programming options +PROGRAM_CMD = ./util/atmega32a_program.py $(TARGET).hex diff --git a/keyboards/kbdfans/kbdpad/mk1/usbconfig.h b/keyboards/kbdfans/kbdpad/mk1/usbconfig.h new file mode 100644 index 00000000000..54a7d20f142 --- /dev/null +++ b/keyboards/kbdfans/kbdpad/mk1/usbconfig.h @@ -0,0 +1,393 @@ +/* Name: usbconfig.h + * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers + * Author: Christian Starkjohann + * Creation Date: 2005-04-01 + * Tabsize: 4 + * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH + * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) + * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $ + */ + +#pragma once + +#include "config.h" + +/* +General Description: +This file is an example configuration (with inline documentation) for the USB +driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is +also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may +wire the lines to any other port, as long as D+ is also wired to INT0 (or any +other hardware interrupt, as long as it is the highest level interrupt, see +section at the end of this file). +*/ + +/* ---------------------------- Hardware Config ---------------------------- */ + +#define USB_CFG_IOPORTNAME D +/* This is the port where the USB bus is connected. When you configure it to + * "B", the registers PORTB, PINB and DDRB will be used. + */ +#define USB_CFG_DMINUS_BIT 3 +/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. + * This may be any bit in the port. + */ +#define USB_CFG_DPLUS_BIT 2 +/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. + * This may be any bit in the port. Please note that D+ must also be connected + * to interrupt pin INT0! [You can also use other interrupts, see section + * "Optional MCU Description" below, or you can connect D- to the interrupt, as + * it is required if you use the USB_COUNT_SOF feature. If you use D- for the + * interrupt, the USB interrupt will also be triggered at Start-Of-Frame + * markers every millisecond.] + */ +#define USB_CFG_CLOCK_KHZ (F_CPU/1000) +/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000, + * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code + * require no crystal, they tolerate +/- 1% deviation from the nominal + * frequency. All other rates require a precision of 2000 ppm and thus a + * crystal! + * Since F_CPU should be defined to your actual clock rate anyway, you should + * not need to modify this setting. + */ +#define USB_CFG_CHECK_CRC 0 +/* Define this to 1 if you want that the driver checks integrity of incoming + * data packets (CRC checks). CRC checks cost quite a bit of code size and are + * currently only available for 18 MHz crystal clock. You must choose + * USB_CFG_CLOCK_KHZ = 18000 if you enable this option. + */ + +/* ----------------------- Optional Hardware Config ------------------------ */ + +/* #define USB_CFG_PULLUP_IOPORTNAME D */ +/* If you connect the 1.5k pullup resistor from D- to a port pin instead of + * V+, you can connect and disconnect the device from firmware by calling + * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h). + * This constant defines the port on which the pullup resistor is connected. + */ +/* #define USB_CFG_PULLUP_BIT 4 */ +/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined + * above) where the 1.5k pullup resistor is connected. See description + * above for details. + */ + +/* --------------------------- Functional Range ---------------------------- */ + +#define USB_CFG_HAVE_INTRIN_ENDPOINT 1 +/* Define this to 1 if you want to compile a version with two endpoints: The + * default control endpoint 0 and an interrupt-in endpoint (any other endpoint + * number). + */ +#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1 +/* Define this to 1 if you want to compile a version with three endpoints: The + * default control endpoint 0, an interrupt-in endpoint 3 (or the number + * configured below) and a catch-all default interrupt-in endpoint as above. + * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature. + */ +#define USB_CFG_EP3_NUMBER 3 +/* If the so-called endpoint 3 is used, it can now be configured to any other + * endpoint number (except 0) with this macro. Default if undefined is 3. + */ +/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */ +/* The above macro defines the startup condition for data toggling on the + * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1. + * Since the token is toggled BEFORE sending any data, the first packet is + * sent with the oposite value of this configuration! + */ +#define USB_CFG_IMPLEMENT_HALT 0 +/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature + * for endpoint 1 (interrupt endpoint). Although you may not need this feature, + * it is required by the standard. We have made it a config option because it + * bloats the code considerably. + */ +#define USB_CFG_SUPPRESS_INTR_CODE 0 +/* Define this to 1 if you want to declare interrupt-in endpoints, but don't + * want to send any data over them. If this macro is defined to 1, functions + * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if + * you need the interrupt-in endpoints in order to comply to an interface + * (e.g. HID), but never want to send any data. This option saves a couple + * of bytes in flash memory and the transmit buffers in RAM. + */ +#define USB_CFG_INTR_POLL_INTERVAL 1 +/* If you compile a version with endpoint 1 (interrupt-in), this is the poll + * interval. The value is in milliseconds and must not be less than 10 ms for + * low speed devices. + */ +#define USB_CFG_IS_SELF_POWERED 0 +/* Define this to 1 if the device has its own power supply. Set it to 0 if the + * device is powered from the USB bus. + */ +#define USB_CFG_MAX_BUS_POWER 500 +/* Set this variable to the maximum USB bus power consumption of your device. + * The value is in milliamperes. [It will be divided by two since USB + * communicates power requirements in units of 2 mA.] + */ +#define USB_CFG_IMPLEMENT_FN_WRITE 1 +/* Set this to 1 if you want usbFunctionWrite() to be called for control-out + * transfers. Set it to 0 if you don't need it and want to save a couple of + * bytes. + */ +#define USB_CFG_IMPLEMENT_FN_READ 0 +/* Set this to 1 if you need to send control replies which are generated + * "on the fly" when usbFunctionRead() is called. If you only want to send + * data from a static buffer, set it to 0 and return the data from + * usbFunctionSetup(). This saves a couple of bytes. + */ +#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0 +/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints. + * You must implement the function usbFunctionWriteOut() which receives all + * interrupt/bulk data sent to any endpoint other than 0. The endpoint number + * can be found in 'usbRxToken'. + */ +#define USB_CFG_HAVE_FLOWCONTROL 0 +/* Define this to 1 if you want flowcontrol over USB data. See the definition + * of the macros usbDisableAllRequests() and usbEnableAllRequests() in + * usbdrv.h. + */ +#define USB_CFG_DRIVER_FLASH_PAGE 0 +/* If the device has more than 64 kBytes of flash, define this to the 64 k page + * where the driver's constants (descriptors) are located. Or in other words: + * Define this to 1 for boot loaders on the ATMega128. + */ +#define USB_CFG_LONG_TRANSFERS 0 +/* Define this to 1 if you want to send/receive blocks of more than 254 bytes + * in a single control-in or control-out transfer. Note that the capability + * for long transfers increases the driver size. + */ +/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */ +/* This macro is a hook if you want to do unconventional things. If it is + * defined, it's inserted at the beginning of received message processing. + * If you eat the received message and don't want default processing to + * proceed, do a return after doing your things. One possible application + * (besides debugging) is to flash a status LED on each packet. + */ +/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */ +/* This macro is a hook if you need to know when an USB RESET occurs. It has + * one parameter which distinguishes between the start of RESET state and its + * end. + */ +/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */ +/* This macro (if defined) is executed when a USB SET_ADDRESS request was + * received. + */ +#define USB_COUNT_SOF 1 +/* define this macro to 1 if you need the global variable "usbSofCount" which + * counts SOF packets. This feature requires that the hardware interrupt is + * connected to D- instead of D+. + */ +/* #ifdef __ASSEMBLER__ + * macro myAssemblerMacro + * in YL, TCNT0 + * sts timer0Snapshot, YL + * endm + * #endif + * #define USB_SOF_HOOK myAssemblerMacro + * This macro (if defined) is executed in the assembler module when a + * Start Of Frame condition is detected. It is recommended to define it to + * the name of an assembler macro which is defined here as well so that more + * than one assembler instruction can be used. The macro may use the register + * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages + * immediately after an SOF pulse may be lost and must be retried by the host. + * What can you do with this hook? Since the SOF signal occurs exactly every + * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in + * designs running on the internal RC oscillator. + * Please note that Start Of Frame detection works only if D- is wired to the + * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES! + */ +#define USB_CFG_CHECK_DATA_TOGGLING 0 +/* define this macro to 1 if you want to filter out duplicate data packets + * sent by the host. Duplicates occur only as a consequence of communication + * errors, when the host does not receive an ACK. Please note that you need to + * implement the filtering yourself in usbFunctionWriteOut() and + * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable + * for each control- and out-endpoint to check for duplicate packets. + */ +#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0 +/* define this macro to 1 if you want the function usbMeasureFrameLength() + * compiled in. This function can be used to calibrate the AVR's RC oscillator. + */ +#define USB_USE_FAST_CRC 0 +/* The assembler module has two implementations for the CRC algorithm. One is + * faster, the other is smaller. This CRC routine is only used for transmitted + * messages where timing is not critical. The faster routine needs 31 cycles + * per byte while the smaller one needs 61 to 69 cycles. The faster routine + * may be worth the 32 bytes bigger code size if you transmit lots of data and + * run the AVR close to its limit. + */ + +/* -------------------------- Device Description --------------------------- */ + +#define USB_CFG_VENDOR_ID (VENDOR_ID & 0xFF), ((VENDOR_ID >> 8) & 0xFF) +/* USB vendor ID for the device, low byte first. If you have registered your + * own Vendor ID, define it here. Otherwise you may use one of obdev's free + * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_ID (PRODUCT_ID & 0xFF), ((PRODUCT_ID >> 8) & 0xFF) +/* This is the ID of the product, low byte first. It is interpreted in the + * scope of the vendor ID. If you have registered your own VID with usb.org + * or if you have licensed a PID from somebody else, define it here. Otherwise + * you may use one of obdev's free shared VID/PID pairs. See the file + * USB-IDs-for-free.txt for details! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_VERSION 0x00, 0x02 +/* Version number of the device: Minor number first, then major number. + */ +#define USB_CFG_VENDOR_NAME 'w', 'i', 'n', 'k', 'e', 'y', 'l', 'e', 's', 's', '.', 'k', 'r' +#define USB_CFG_VENDOR_NAME_LEN 13 +/* These two values define the vendor name returned by the USB device. The name + * must be given as a list of characters under single quotes. The characters + * are interpreted as Unicode (UTF-16) entities. + * If you don't want a vendor name string, undefine these macros. + * ALWAYS define a vendor name containing your Internet domain name if you use + * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for + * details. + */ +#define USB_CFG_DEVICE_NAME 'p', 's', '2', 'a', 'v', 'r', 'G', 'B' +#define USB_CFG_DEVICE_NAME_LEN 8 +/* Same as above for the device name. If you don't want a device name, undefine + * the macros. See the file USB-IDs-for-free.txt before you assign a name if + * you use a shared VID/PID. + */ +/*#define USB_CFG_SERIAL_NUMBER 'N', 'o', 'n', 'e' */ +/*#define USB_CFG_SERIAL_NUMBER_LEN 0 */ +/* Same as above for the serial number. If you don't want a serial number, + * undefine the macros. + * It may be useful to provide the serial number through other means than at + * compile time. See the section about descriptor properties below for how + * to fine tune control over USB descriptors such as the string descriptor + * for the serial number. + */ +#define USB_CFG_DEVICE_CLASS 0 +#define USB_CFG_DEVICE_SUBCLASS 0 +/* See USB specification if you want to conform to an existing device class. + * Class 0xff is "vendor specific". + */ +#define USB_CFG_INTERFACE_CLASS 3 /* HID */ +#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */ +#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */ +/* See USB specification if you want to conform to an existing device class or + * protocol. The following classes must be set at interface level: + * HID class is 3, no subclass and protocol required (but may be useful!) + * CDC class is 2, use subclass 2 and protocol 1 for ACM + */ +#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0 +/* Define this to the length of the HID report descriptor, if you implement + * an HID device. Otherwise don't define it or define it to 0. + * If you use this define, you must add a PROGMEM character array named + * "usbHidReportDescriptor" to your code which contains the report descriptor. + * Don't forget to keep the array and this define in sync! + */ + +/* #define USB_PUBLIC static */ +/* Use the define above if you #include usbdrv.c instead of linking against it. + * This technique saves a couple of bytes in flash memory. + */ + +/* ------------------- Fine Control over USB Descriptors ------------------- */ +/* If you don't want to use the driver's default USB descriptors, you can + * provide our own. These can be provided as (1) fixed length static data in + * flash memory, (2) fixed length static data in RAM or (3) dynamically at + * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more + * information about this function. + * Descriptor handling is configured through the descriptor's properties. If + * no properties are defined or if they are 0, the default descriptor is used. + * Possible properties are: + * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched + * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is + * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if + * you want RAM pointers. + * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found + * in static memory is in RAM, not in flash memory. + * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash), + * the driver must know the descriptor's length. The descriptor itself is + * found at the address of a well known identifier (see below). + * List of static descriptor names (must be declared PROGMEM if in flash): + * char usbDescriptorDevice[]; + * char usbDescriptorConfiguration[]; + * char usbDescriptorHidReport[]; + * char usbDescriptorString0[]; + * int usbDescriptorStringVendor[]; + * int usbDescriptorStringDevice[]; + * int usbDescriptorStringSerialNumber[]; + * Other descriptors can't be provided statically, they must be provided + * dynamically at runtime. + * + * Descriptor properties are or-ed or added together, e.g.: + * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18)) + * + * The following descriptors are defined: + * USB_CFG_DESCR_PROPS_DEVICE + * USB_CFG_DESCR_PROPS_CONFIGURATION + * USB_CFG_DESCR_PROPS_STRINGS + * USB_CFG_DESCR_PROPS_STRING_0 + * USB_CFG_DESCR_PROPS_STRING_VENDOR + * USB_CFG_DESCR_PROPS_STRING_PRODUCT + * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER + * USB_CFG_DESCR_PROPS_HID + * USB_CFG_DESCR_PROPS_HID_REPORT + * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver) + * + * Note about string descriptors: String descriptors are not just strings, they + * are Unicode strings prefixed with a 2 byte header. Example: + * int serialNumberDescriptor[] = { + * USB_STRING_DESCRIPTOR_HEADER(6), + * 'S', 'e', 'r', 'i', 'a', 'l' + * }; + */ + +#define USB_CFG_DESCR_PROPS_DEVICE 0 +#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_CONFIGURATION 0 +#define USB_CFG_DESCR_PROPS_STRINGS 0 +#define USB_CFG_DESCR_PROPS_STRING_0 0 +#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0 +#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0 +#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0 +#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_HID 0 +#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_HID_REPORT 0 +#define USB_CFG_DESCR_PROPS_UNKNOWN 0 + +#define usbMsgPtr_t unsigned short +/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to + * a scalar type here because gcc generates slightly shorter code for scalar + * arithmetics than for pointer arithmetics. Remove this define for backward + * type compatibility or define it to an 8 bit type if you use data in RAM only + * and all RAM is below 256 bytes (tiny memory model in IAR CC). + */ + +/* ----------------------- Optional MCU Description ------------------------ */ + +/* The following configurations have working defaults in usbdrv.h. You + * usually don't need to set them explicitly. Only if you want to run + * the driver on a device which is not yet supported or with a compiler + * which is not fully supported (such as IAR C) or if you use a differnt + * interrupt than INT0, you may have to define some of these. + */ +/* #define USB_INTR_CFG MCUCR */ +/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */ +/* #define USB_INTR_CFG_CLR 0 */ +/* #define USB_INTR_ENABLE GIMSK */ +/* #define USB_INTR_ENABLE_BIT INT0 */ +/* #define USB_INTR_PENDING GIFR */ +/* #define USB_INTR_PENDING_BIT INTF0 */ +/* #define USB_INTR_VECTOR INT0_vect */ + +/* Set INT1 for D- falling edge to count SOF */ +/* #define USB_INTR_CFG EICRA */ +#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10)) +/* #define USB_INTR_CFG_CLR 0 */ +/* #define USB_INTR_ENABLE EIMSK */ +#define USB_INTR_ENABLE_BIT INT1 +/* #define USB_INTR_PENDING EIFR */ +#define USB_INTR_PENDING_BIT INTF1 +#define USB_INTR_VECTOR INT1_vect From ac20e7e3f2dd60f2f7c3823362f0b1ba985a63b0 Mon Sep 17 00:00:00 2001 From: jotix <47826561+jotix@users.noreply.github.com> Date: Thu, 1 Aug 2019 13:51:51 -0300 Subject: [PATCH 087/115] [Keymap] jotix ortho_4x12_layout (#6458) * jotix ortho_4x12_layout * jotix ortho_4x12_layout --- layouts/community/ortho_4x12/jotix/keymap.c | 44 +++++++++++++------- layouts/community/ortho_4x12/jotix/unicode.c | 23 ++++++++-- 2 files changed, 49 insertions(+), 18 deletions(-) diff --git a/layouts/community/ortho_4x12/jotix/keymap.c b/layouts/community/ortho_4x12/jotix/keymap.c index d1e8b39589e..b61cf3e0685 100644 --- a/layouts/community/ortho_4x12/jotix/keymap.c +++ b/layouts/community/ortho_4x12/jotix/keymap.c @@ -3,17 +3,18 @@ enum layers { _QWERTY, + _FN, _LOWER, _RAISE, - _UNI_LCK + _UNICODE }; +#define FN MO(_FN) #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define UNI_LCK MO(_UNI_LCK) +#define UNICODE MO(_UNICODE) #define TGLOWER TG(_LOWER) #define TGRAISE TG(_RAISE) -#define SHRAISE LM(_RAISE, MOD_LSFT) static bool is_ctl_pressed; static bool is_esc_pressed; @@ -29,19 +30,31 @@ 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_UP ,KC_SLSH, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - KC_LCTL,KC_LGUI,KC_LALT,UNI_LCK, LOWER , KC_SPC, KC_SPC, RAISE ,SHRAISE,KC_LEFT,KC_DOWN,KC_RGHT + KC_LCTL,KC_LGUI,KC_LALT, FN , LOWER , KC_SPC, KC_SPC, RAISE ,UNICODE,KC_LEFT,KC_DOWN,KC_RGHT // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), +[_FN] = 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_PGUP,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,TGLOWER,_______,_______,TGRAISE,_______,KC_HOME,KC_PGDN, KC_END +// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ +), + [_LOWER] = LAYOUT_ortho_4x12 ( // ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ - _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 ,_______, KC_INS, KC_P7 , KC_P8 , KC_P9 ,KC_PMNS,_______, + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 ,KC_HOME,KC_PGUP, KC_P4 , KC_P5 , KC_P6 ,KC_PPLS,KC_PENT, + _______,KC_VOLD,KC_MUTE,KC_VOLU,KC_HOME,KC_PGUP,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______, KC_F9 , KC_F10, KC_F11, KC_F12, KC_END,KC_PGDN, KC_P1 , KC_P2 , KC_P3 ,KC_PAST,KC_PSLS, + _______,KC_MPRV,KC_MPLY,KC_MNXT, KC_END,KC_PGDN,KC_MINS, KC_EQL,_______,_______,_______,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,_______,_______,_______,_______,_______,_______,_______, KC_P0 ,KC_PDOT,KC_LPRN,KC_RPRN + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), @@ -49,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ KC_GRV, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - KC_CAPS,_______,_______,_______,_______,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______, + _______,_______,_______,_______,_______,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ _______,_______,_______,_______,_______,_______,KC_MINS, KC_EQL,_______,_______,KC_VOLU,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ @@ -57,15 +70,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), -[_UNI_LCK] = LAYOUT_ortho_4x12 ( +[_UNICODE] = LAYOUT_ortho_4x12 ( // ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ - UN_ESC, UN_Q , UN_W , UN_E , UN_R , UN_T , UN_Y , UN_U , UN_I , UN_O , UN_P ,_______, + UN_ESC, UN_Q , UN_W , UN_E , UN_R , UN_T , UN_Y , UN_U , UN_I , UN_O , UN_P ,UN_BSPC, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______, UN_A , UN_S , UN_D , UN_F , UN_G , UN_H , UN_J , UN_K , UN_L ,UN_SCLN,_______, + UN_TAB, UN_A , UN_S , UN_D , UN_F , UN_G , UN_H , UN_J , UN_K , UN_L ,UN_SCLN, UN_ENT, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ _______, UN_Z , UN_X , UN_C , UN_V , UN_B , UN_N , UN_M ,UN_COMM, UN_DOT, UN_UP ,UN_SLSH, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - UC_M_LN,UC_M_WI,UC_M_OS,_______,TGLOWER,_______,_______,TGRAISE,_______,UN_LEFT,UN_DOWN,UN_RGHT + UC_M_LN,UC_M_WI,UC_M_OS,_______,_______,_______,_______,_______,_______,UN_DOWN, UN_UP ,UN_RGHT // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), @@ -82,7 +95,7 @@ uint32_t layer_state_set_user(uint32_t state) { writePinLow(JOTANCK_LED1); writePinHigh(JOTANCK_LED2); break; - case _UNI_LCK: + case _FN: writePinHigh(JOTANCK_LED1); writePinHigh(JOTANCK_LED2); break; @@ -95,11 +108,13 @@ uint32_t layer_state_set_user(uint32_t state) { return state; } +/* void led_set_user(uint8_t usb_led) { if (!(IS_LED_ON(usb_led, USB_LED_NUM_LOCK))) { tap_code(KC_NUMLOCK); } } +*/ void keyboard_post_init_user(void) { set_unicode_input_mode(UC_LNX); @@ -119,6 +134,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; return true; } + void matrix_scan_user(void) { if (is_ctl_pressed && is_esc_pressed && is_bspc_pressed) { reset_keyboard(); diff --git a/layouts/community/ortho_4x12/jotix/unicode.c b/layouts/community/ortho_4x12/jotix/unicode.c index eaa0da1ac43..1935d3a7214 100644 --- a/layouts/community/ortho_4x12/jotix/unicode.c +++ b/layouts/community/ortho_4x12/jotix/unicode.c @@ -71,6 +71,12 @@ enum unicode_names { TREBOL_SUIT, HEART_SUIT, DIAMOND_SUIT, + NARRAY_SUM, + INFINIT_SYMBOL, + DIAMOND_BULLET, + CIRCLE_BULLET, + SMILE_FACE, + SAD_FACE }; const uint32_t PROGMEM unicode_map[] = { @@ -142,10 +148,16 @@ const uint32_t PROGMEM unicode_map[] = { [DIVISION] = 0x00F7, [SQUARE_ROOT] = 0x221A, [CUBE_ROOT] = 0x221B, - [SPADE_SUIT] = 0x2660, + [SPADE_SUIT] = 0x2660, [TREBOL_SUIT] = 0x2663, [HEART_SUIT] = 0x2664, - [DIAMOND_SUIT] = 0x2665 + [DIAMOND_SUIT] = 0x2665, + [NARRAY_SUM] = 0x2211, + [INFINIT_SYMBOL]= 0x221E, + [DIAMOND_BULLET]= 0x2B25, + [CIRCLE_BULLET] = 0x2981, + [SMILE_FACE] = 0x263A, + [SAD_FACE] = 0x2639 }; #define UN_ESC XP(DEGREE, DEGREE_CELCIUS) @@ -159,6 +171,8 @@ const uint32_t PROGMEM unicode_map[] = { #define UN_I XP(I_ACUTE, I_ACUTEC) #define UN_O XP(O_ACUTE, O_ACUTEC) #define UN_P XP(POUND, PILCROW) +#define UN_BSPC XP(BOX_CROSS, DBOX_CROSS) +#define UN_TAB XP(DIAMOND_BULLET, CIRCLE_BULLET) #define UN_A XP(A_ACUTE, A_ACUTEC) #define UN_S XP(BOX_CORNER_1, DBOX_CORNER_1) #define UN_D XP(BOX_CORNER_2, DBOX_CORNER_2) @@ -169,8 +183,9 @@ const uint32_t PROGMEM unicode_map[] = { #define UN_K XP(BOX_UNION_3, DBOX_UNION_3) #define UN_L XP(BOX_UNION_4, DBOX_UNION_4) #define UN_SCLN XP(BOX_HORIZONTAL, DBOX_HORIZONT) -#define UN_Z XP(BOX_VERTICAL, DBOX_VERTICAL) -#define UN_X XP(BOX_CROSS, DBOX_CROSS) +#define UN_ENT XP(BOX_VERTICAL, DBOX_VERTICAL) +#define UN_Z XP(NARRAY_SUM, INFINIT_SYMBOL) +#define UN_X XP(SMILE_FACE, SAD_FACE) #define UN_C XP(COPYRIGHT, REGISTERED) #define UN_V XP(SPADE_SUIT, TREBOL_SUIT) #define UN_B XP(HEART_SUIT, DIAMOND_SUIT) From d68d5104731fc70d63c0769e3093bedfbaf7b694 Mon Sep 17 00:00:00 2001 From: ai03 Date: Fri, 2 Aug 2019 02:03:07 +0900 Subject: [PATCH 088/115] Add iS0 Keypad (#6456) * Start progress * Build firmware * Prepare for pullreq * Add a keymap * Update keyboards/illuminati/is0/rules.mk Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/illuminati/is0/info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> --- keyboards/illuminati/is0/config.h | 251 ++++++++++++++++++ keyboards/illuminati/is0/info.json | 12 + keyboards/illuminati/is0/is0.c | 51 ++++ keyboards/illuminati/is0/is0.h | 33 +++ .../is0/keymaps/ctrlaltdel/keymap.c | 38 +++ .../is0/keymaps/ctrlaltdel/readme.md | 3 + .../illuminati/is0/keymaps/default/keymap.c | 52 ++++ .../illuminati/is0/keymaps/default/readme.md | 3 + keyboards/illuminati/is0/readme.md | 15 ++ keyboards/illuminati/is0/rules.mk | 80 ++++++ 10 files changed, 538 insertions(+) create mode 100644 keyboards/illuminati/is0/config.h create mode 100644 keyboards/illuminati/is0/info.json create mode 100644 keyboards/illuminati/is0/is0.c create mode 100644 keyboards/illuminati/is0/is0.h create mode 100644 keyboards/illuminati/is0/keymaps/ctrlaltdel/keymap.c create mode 100644 keyboards/illuminati/is0/keymaps/ctrlaltdel/readme.md create mode 100644 keyboards/illuminati/is0/keymaps/default/keymap.c create mode 100644 keyboards/illuminati/is0/keymaps/default/readme.md create mode 100644 keyboards/illuminati/is0/readme.md create mode 100644 keyboards/illuminati/is0/rules.mk diff --git a/keyboards/illuminati/is0/config.h b/keyboards/illuminati/is0/config.h new file mode 100644 index 00000000000..e35b1500d3d --- /dev/null +++ b/keyboards/illuminati/is0/config.h @@ -0,0 +1,251 @@ +/* +Copyright 2019 Ryota Goto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0xA103 +#define PRODUCT_ID 0x0012 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Illuminati Works +#define PRODUCT iS0 +#define DESCRIPTION no + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 + +/* + * 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 { D2 } +#define MATRIX_COL_PINS { D0 } +#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 5 + +// #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 */ +#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 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/illuminati/is0/info.json b/keyboards/illuminati/is0/info.json new file mode 100644 index 00000000000..0f3bb64eca3 --- /dev/null +++ b/keyboards/illuminati/is0/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "iS0", + "url": "", + "maintainer": "ai03", + "width": 1.5, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [{"x":0.25, "y":0, "w":1.25, "h":2}] + } + } +} diff --git a/keyboards/illuminati/is0/is0.c b/keyboards/illuminati/is0/is0.c new file mode 100644 index 00000000000..920277e6c9c --- /dev/null +++ b/keyboards/illuminati/is0/is0.c @@ -0,0 +1,51 @@ +/* Copyright 2019 Ryota Goto + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "is0.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 + + 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); +} + +*/ diff --git a/keyboards/illuminati/is0/is0.h b/keyboards/illuminati/is0/is0.h new file mode 100644 index 00000000000..a9fae5b40eb --- /dev/null +++ b/keyboards/illuminati/is0/is0.h @@ -0,0 +1,33 @@ +/* Copyright 2019 Ryota Goto + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 LAYOUT( \ + K0 \ +) \ +{ \ + { K0 } \ +} diff --git a/keyboards/illuminati/is0/keymaps/ctrlaltdel/keymap.c b/keyboards/illuminati/is0/keymaps/ctrlaltdel/keymap.c new file mode 100644 index 00000000000..e38df1e2279 --- /dev/null +++ b/keyboards/illuminati/is0/keymaps/ctrlaltdel/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2019 Ryota Goto + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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( /* Base */ + LCTL(LALT(KC_DEL)) + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/illuminati/is0/keymaps/ctrlaltdel/readme.md b/keyboards/illuminati/is0/keymaps/ctrlaltdel/readme.md new file mode 100644 index 00000000000..5d9e162c1c2 --- /dev/null +++ b/keyboards/illuminati/is0/keymaps/ctrlaltdel/readme.md @@ -0,0 +1,3 @@ +# The ctrlaltdel keymap for is0 + +A simple keymap to send Ctrl + Alt + Del on keypress. \ No newline at end of file diff --git a/keyboards/illuminati/is0/keymaps/default/keymap.c b/keyboards/illuminati/is0/keymaps/default/keymap.c new file mode 100644 index 00000000000..68545add668 --- /dev/null +++ b/keyboards/illuminati/is0/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2019 Ryota Goto + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 +enum custom_keycodes { + KBINFO = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KBINFO + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KBINFO: + if (record->event.pressed) { + SEND_STRING("Hello from Illuminati Works"); + } else { + SEND_STRING("iS0 working properly"); + } + 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/illuminati/is0/keymaps/default/readme.md b/keyboards/illuminati/is0/keymaps/default/readme.md new file mode 100644 index 00000000000..84110e663a9 --- /dev/null +++ b/keyboards/illuminati/is0/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The default keymap for is0 + +Simply to verify that it works. \ No newline at end of file diff --git a/keyboards/illuminati/is0/readme.md b/keyboards/illuminati/is0/readme.md new file mode 100644 index 00000000000..ad287f788b2 --- /dev/null +++ b/keyboards/illuminati/is0/readme.md @@ -0,0 +1,15 @@ +# iS0 + +![is0](https://i.imgur.com/ObiNJ2O.jpg) + +Single-key macropad + +Keyboard Maintainer: [ai03](https://github.com/ai03-2725) +Hardware Supported: iS0 by Illuminati Works +Hardware Availability: [Illuminati Works website](https://illuminati.works/is0/) + +Make example for this keyboard (after setting up your build environment): + + make illuminati/is0: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/illuminati/is0/rules.mk b/keyboards/illuminati/is0/rules.mk new file mode 100644 index 00000000000..065d0d2843e --- /dev/null +++ b/keyboards/illuminati/is0/rules.mk @@ -0,0 +1,80 @@ +# MCU name +MCU = atmega32u2 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +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 +# 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 +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +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 = yes # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +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 (+400) From 586bd92ea74a1345b4de5422f25bb8618c20eea3 Mon Sep 17 00:00:00 2001 From: tucznak Date: Sun, 4 Aug 2019 06:01:14 +0200 Subject: [PATCH 089/115] [Keymap] Fixed Tanuki RGB lighting (#6462) --- keyboards/tanuki/keymaps/default/keymap.c | 208 ++++++++++------------ 1 file changed, 94 insertions(+), 114 deletions(-) diff --git a/keyboards/tanuki/keymaps/default/keymap.c b/keyboards/tanuki/keymaps/default/keymap.c index 34ca6a639c0..7c3e11f27d1 100644 --- a/keyboards/tanuki/keymaps/default/keymap.c +++ b/keyboards/tanuki/keymaps/default/keymap.c @@ -1,140 +1,120 @@ #include QMK_KEYBOARD_H -//Layer definitions +// custom type to store stuff in EEPROM +typedef union { + uint32_t raw; + struct { + bool layer_rgb :1; + }; +} user_config_t; + +user_config_t user_config; + +// Layer definitions #define _BL 0 #define _DL 1 #define _UL 2 #define _GL 3 #define _BK 4 - -//other variables -int mCalled = 0; -bool blockToggle = false; -bool lRGB = true; +// Custom keycode to toggle normal RGB or per-layer RGB +enum custom_keycodes { + CUSTRGB = SAFE_RANGE, +}; 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_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, TG(_GL), \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_QUOT, KC_SLSH, KC_ENT, \ - KC_LCTL, KC_LALT, KC_COMMA, LT(_DL,KC_SPC), LT(_UL,KC_SPC), KC_DOT, KC_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_SCLN, TG(_GL), \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_QUOT, KC_SLSH, KC_ENT, \ + KC_LCTL, KC_LALT, KC_COMMA, LT(_DL,KC_SPC), LT(_UL,KC_SPC), KC_DOT, KC_LGUI), [_DL] = LAYOUT( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,\ - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,\ - KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,\ + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,\ + KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), [_UL] = LAYOUT( - KC_GRV, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_PIPE, KC_BSLS, KC_PLUS, KC_UNDS, KC_MINS, KC_EQL, KC_DEL,\ - KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, \ - KC_TRNS, KC_FN0, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, \ - KC_TRNS, RGB_MOD, RGB_HUI, KC_TRNS, KC_TRNS, RGB_SAI, RGB_VAI), + KC_GRV, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_PIPE, KC_BSLS, KC_PLUS, KC_UNDS, KC_MINS, KC_EQL, KC_DEL,\ + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, \ + KC_TRNS, CUSTRGB, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, \ + KC_TRNS, RGB_MOD, RGB_HUI, KC_TRNS, KC_TRNS, RGB_SAI, RGB_VAI), [_GL] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS), - -[_BK] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_FN1, KC_NO, KC_NO), - + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS) + }; - -//KC_MPLY, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_MNXT, KC_MPRV -//function to toggle the interactive rgb variable -bool toggleLayerRGB(void){ - if(lRGB == true){ - return false; - } - else{ - return true; - } +void keyboard_post_init_user(void) { + user_config.raw = eeconfig_read_user(); + if(user_config.layer_rgb) { + rgblight_enable_noeeprom(); + rgblight_mode_noeeprom(1); + rgblight_sethsv_noeeprom(0,10,255); + } } -void matrix_init_user(void){ - rgblight_enable(); - rgblight_mode(1); - rgblight_sethsv(0,10,255); +uint32_t layer_state_set_user(uint32_t state) { + // This code switches underglow color by active layer, if the user has enabled the feature + if(user_config.layer_rgb) { + switch (biton32(state)) { + case _BL: + rgblight_sethsv_noeeprom(0,10,255); + rgblight_mode_noeeprom(1); + break; + case _DL: + rgblight_sethsv_noeeprom(130,200,255); + rgblight_mode_noeeprom(1); + break; + case _UL: + rgblight_sethsv_noeeprom(170,200,255); + rgblight_mode_noeeprom(1); + break; + case _GL: + rgblight_sethsv_noeeprom(0,180,255); + rgblight_mode_noeeprom(1); + break; + } + } + return state; } -//check for layer and if there was a keypress change underglow lighting -void matrix_scan_kb(void){ - if(lRGB == true) - { - - - - //base layer - if(layer_state == 0x00000000 && mCalled == 1 ){ - rgblight_sethsv(0,10,255); - mCalled = 0; - } - - //down layer - else if(layer_state == 0x00000002 && mCalled == 1){ - rgblight_sethsv(160,255,255); - mCalled = 0; - } - - - //up layer with rgb access blocked - else if(layer_state == 0x00000004 && mCalled == 1 && lRGB == true){ - //blockToggle = true; - layer_state = 0x00000014; - rgblight_sethsv(180,255,255); - mCalled = 0; - } - - //arrow cluster layer - else if(layer_state == 0x00000008 && mCalled == 1){ - rgblight_sethsv(0,180,255); - mCalled = 0; - } - - //if on blocked layer and the spacebar has been released reset to baselayer and set colours to white - else if(layer_state == 0x00000014 && blockToggle == true ) - { - blockToggle = false; - layer_state = 0x00000000; - rgblight_sethsv(0,10,255); - } - - } -} - -//set mCalled to 1 when a button is pressed to make sure the leds aren't continuesly updated. bool process_record_user (uint16_t keycode, keyrecord_t *record) { - mCalled = 1; - - //uncommenting the line below causes the lights to flicker when typing on the keyboard. - //rgblight_sethsv(0,255,0); - - if(keycode == KC_FN0 && record->event.pressed){ - //set the toggle and make sure to set the colour back to white - lRGB = toggleLayerRGB(); - rgblight_enable(); - rgblight_mode(1); - rgblight_sethsv(0,255,255); - layer_state =0x00000000; - - return false; - } - - //check if spacebar is released when on a different layer - if(keycode == KC_FN1){ - if(record ->event.pressed){ - }else{ - blockToggle = true; - } - } - - return true; + switch (keycode) { + case CUSTRGB: // if the user toggled per-layer RGB, update the config and refresh the RGB color + if(record->event.pressed) { + user_config.layer_rgb ^= 1; + eeconfig_update_user(user_config.raw); + if (user_config.layer_rgb) { + layer_state_set(layer_state); + } + } + return false; + break; + case RGB_MOD: + case RGB_SAD: + case RGB_SAI: + case RGB_HUI: + case RGB_VAD: + case RGB_VAI: + if(user_config.layer_rgb && record->event.pressed) { + return false; // if layer RGB is on, ignore attempts to change RGB settings + } + break; + } + return true; +} + +void eeconfig_init_user(void) { // in case EEPROM is reset, set up our custom config + user_config.raw = 0; + user_config.layer_rgb = true; // enable per-layer RGB by default + eeconfig_update_user(user_config.raw); + rgblight_enable(); + rgblight_sethsv(0,10,255); + rgblight_mode(1); } From 0261bf3e30ce0487273885d26c8d5f307b44a326 Mon Sep 17 00:00:00 2001 From: dsanchezseco Date: Sun, 4 Aug 2019 06:10:34 +0200 Subject: [PATCH 090/115] [Keymap] update to dsanchezseco keymap (#6470) * cleanup and start sound * clean up adjust and ptrscrn --- keyboards/planck/keymaps/dsanchezseco/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/planck/keymaps/dsanchezseco/keymap.c b/keyboards/planck/keymaps/dsanchezseco/keymap.c index df560b46c55..f7764ca8460 100644 --- a/keyboards/planck/keymaps/dsanchezseco/keymap.c +++ b/keyboards/planck/keymaps/dsanchezseco/keymap.c @@ -11,7 +11,7 @@ enum planck_layers { }; enum planck_keycodes { - DVORAK, + DVORAK = SAFE_RANGE, }; #define LOWER MO(_LOWER) @@ -77,17 +77,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,----------------------------------------------------------------------------------- * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap| | | | | | + * | | | | | | | | | | | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * | |PtrScr| |Mus on|Musoff| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, + _______, RESET, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_PSCR, _______, MU_ON, MU_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) From 9ae874e0c35094e30df5dd6e77fe18047f08730d Mon Sep 17 00:00:00 2001 From: Wilba Date: Sun, 4 Aug 2019 14:11:28 +1000 Subject: [PATCH 091/115] [Keyboard] WT75-A & WT75-B fixes for QMK Configurator (#6472) * Fixed QMK Configurator layout * Added WT60-D --- keyboards/wilba_tech/wt60_d/config.h | 200 ++++++++++++++++++ keyboards/wilba_tech/wt60_d/info.json | 13 ++ .../wt60_d/keymaps/default/keymap.c | 38 ++++ .../wilba_tech/wt60_d/keymaps/via/keymap.c | 38 ++++ .../wilba_tech/wt60_d/keymaps/via/rules.mk | 68 ++++++ keyboards/wilba_tech/wt60_d/readme.md | 17 ++ keyboards/wilba_tech/wt60_d/rules.mk | 68 ++++++ keyboards/wilba_tech/wt60_d/wt60_d.c | 17 ++ keyboards/wilba_tech/wt60_d/wt60_d.h | 35 +++ keyboards/wilba_tech/wt75_a/info.json | 2 +- keyboards/wilba_tech/wt75_b/info.json | 2 +- 11 files changed, 496 insertions(+), 2 deletions(-) create mode 100644 keyboards/wilba_tech/wt60_d/config.h create mode 100644 keyboards/wilba_tech/wt60_d/info.json create mode 100644 keyboards/wilba_tech/wt60_d/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt60_d/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt60_d/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt60_d/readme.md create mode 100644 keyboards/wilba_tech/wt60_d/rules.mk create mode 100644 keyboards/wilba_tech/wt60_d/wt60_d.c create mode 100644 keyboards/wilba_tech/wt60_d/wt60_d.h diff --git a/keyboards/wilba_tech/wt60_d/config.h b/keyboards/wilba_tech/wt60_d/config.h new file mode 100644 index 00000000000..0ba243159e9 --- /dev/null +++ b/keyboards/wilba_tech/wt60_d/config.h @@ -0,0 +1,200 @@ +/* Copyright 2018 Jason Williams (Wilba) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6582 // wilba.tech +#define PRODUCT_ID 0x060D // 60-D +#define DEVICE_VER 0x0001 +#define MANUFACTURER wilba.tech +#define PRODUCT wilba.tech WT60-D +#define DESCRIPTION wilba.tech WT60-D + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * 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 { E6, F0, F4, F6, F7 } +#define MATRIX_COL_PINS { F5, D5, D3, D2, B7, B0, B3, C7, C6, B6, B5, B4, D7, D6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +/* 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. + * + */ + +/* 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 + +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 + +// EEPROM usage + +// TODO: refactor with new user EEPROM code (coming soon) +#define EEPROM_MAGIC 0x451F +#define EEPROM_MAGIC_ADDR 32 +// Bump this every time we change what we store +// This will automatically reset the EEPROM with defaults +// and avoid loading invalid data from the EEPROM +#define EEPROM_VERSION 0x08 +#define EEPROM_VERSION_ADDR 34 + +// Dynamic keymap starts after EEPROM version +#define DYNAMIC_KEYMAP_EEPROM_ADDR 35 +// Dynamic macro starts after dynamic keymaps (35+(4*5*14*2)) = (35+560) +#define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 595 +#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 429 +#define DYNAMIC_KEYMAP_MACRO_COUNT 16 diff --git a/keyboards/wilba_tech/wt60_d/info.json b/keyboards/wilba_tech/wt60_d/info.json new file mode 100644 index 00000000000..adb19a15b71 --- /dev/null +++ b/keyboards/wilba_tech/wt60_d/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "wilba.tech WT60-D", + "url": "https://wilba.tech", + "maintainer": "Wilba", + "bootloader": "atmel-dfu", + "width": 15, + "height": 5, + "layouts": { + "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":"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}, {"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":"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}] + } + } +} \ No newline at end of file diff --git a/keyboards/wilba_tech/wt60_d/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_d/keymaps/default/keymap.c new file mode 100644 index 00000000000..94977c160ad --- /dev/null +++ b/keyboards/wilba_tech/wt60_d/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +// Default layout for WT60-D +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// Default 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_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + +// Fn1 Layer +[1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +// Fn2 Layer +[2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +// Fn3 Layer +[3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/wilba_tech/wt60_d/keymaps/via/keymap.c b/keyboards/wilba_tech/wt60_d/keymaps/via/keymap.c new file mode 100644 index 00000000000..94977c160ad --- /dev/null +++ b/keyboards/wilba_tech/wt60_d/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +// Default layout for WT60-D +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// Default 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_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + +// Fn1 Layer +[1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +// Fn2 Layer +[2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +// Fn3 Layer +[3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/wilba_tech/wt60_d/keymaps/via/rules.mk b/keyboards/wilba_tech/wt60_d/keymaps/via/rules.mk new file mode 100644 index 00000000000..f072c67198c --- /dev/null +++ b/keyboards/wilba_tech/wt60_d/keymaps/via/rules.mk @@ -0,0 +1,68 @@ +# project specific files +SRC = keyboards/wilba_tech/wt_main.c + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section +BOOTLOADER = atmel-dfu + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +RAW_ENABLE = yes +DYNAMIC_KEYMAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/wt60_d/readme.md b/keyboards/wilba_tech/wt60_d/readme.md new file mode 100644 index 00000000000..354adff3906 --- /dev/null +++ b/keyboards/wilba_tech/wt60_d/readme.md @@ -0,0 +1,17 @@ +# wilba.tech WT60-D + +![wilba.tech WT60-D](https://cdn.shopify.com/s/files/1/1347/2157/products/Untitled-5_1800x1800.png?v=1563699242) + +WT60-D is a keyboard PCB supporting 60% layout. [More info at wilba.tech](https://wilba.tech/) + +First produced as WT60-D MEKANISK for Mekanisk. + +Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) +Hardware Supported: wilba.tech WT60-D +Hardware Availability: Custom keyboard group buys + +Make example for this keyboard (after setting up your build environment): + + make wilba_tech/wt60_d:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/wilba_tech/wt60_d/rules.mk b/keyboards/wilba_tech/wt60_d/rules.mk new file mode 100644 index 00000000000..f072c67198c --- /dev/null +++ b/keyboards/wilba_tech/wt60_d/rules.mk @@ -0,0 +1,68 @@ +# project specific files +SRC = keyboards/wilba_tech/wt_main.c + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section +BOOTLOADER = atmel-dfu + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + +RAW_ENABLE = yes +DYNAMIC_KEYMAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/wt60_d/wt60_d.c b/keyboards/wilba_tech/wt60_d/wt60_d.c new file mode 100644 index 00000000000..ccff6d62c94 --- /dev/null +++ b/keyboards/wilba_tech/wt60_d/wt60_d.c @@ -0,0 +1,17 @@ +/* Copyright 2018 Jason Williams (Wilba) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Nothing to see here, move along... ;-) diff --git a/keyboards/wilba_tech/wt60_d/wt60_d.h b/keyboards/wilba_tech/wt60_d/wt60_d.h new file mode 100644 index 00000000000..402fc57a11a --- /dev/null +++ b/keyboards/wilba_tech/wt60_d/wt60_d.h @@ -0,0 +1,35 @@ +/* Copyright 2018 Jason Williams (Wilba) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + K000, K003, K002, K001, K004, K005, K006, K007, K008, K009, K012, K011, K010, K013, K213, \ + 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, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K402, K403, K410, K411, K412, K413 \ +) { \ + { 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, K313 }, \ + { K400, K401, K402, K403, ____, ____, ____, ____, ____, ____, K410, K411, K412, K413 } \ +} diff --git a/keyboards/wilba_tech/wt75_a/info.json b/keyboards/wilba_tech/wt75_a/info.json index d9c54a63a6b..b52d96852ac 100644 --- a/keyboards/wilba_tech/wt75_a/info.json +++ b/keyboards/wilba_tech/wt75_a/info.json @@ -6,7 +6,7 @@ "width": 16, "height": 6, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.5, "y":0}, {"label":"F2", "x":2.5, "y":0}, {"label":"F3", "x":3.5, "y":0}, {"label":"F4", "x":4.5, "y":0}, {"label":"F5", "x":5.75, "y":0}, {"label":"F6", "x":6.75, "y":0}, {"label":"F7", "x":7.75, "y":0}, {"label":"F8", "x":8.75, "y":0}, {"label":"F9", "x":10, "y":0}, {"label":"F10", "x":11, "y":0}, {"label":"F11", "x":12, "y":0}, {"label":"F12", "x":13, "y":0}, {"label":"Del", "x":15, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Bksp", "x":13, "y":1.25}, {"label":"Bksp", "x":14, "y":1.25}, {"label":"Home", "x":15, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"PgUp", "x":15, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"PgDn", "x":15, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"\u2191", "x":14, "y":4.25}, {"label":"End", "x":15, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"label":"6.25U", "x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, {"label":"\u2190", "x":13, "y":5.25}, {"label":"\u2193", "x":14, "y":5.25}, {"label":"\u2192", "x":15, "y":5.25}] } } diff --git a/keyboards/wilba_tech/wt75_b/info.json b/keyboards/wilba_tech/wt75_b/info.json index 92947cf87f6..e35518aa029 100644 --- a/keyboards/wilba_tech/wt75_b/info.json +++ b/keyboards/wilba_tech/wt75_b/info.json @@ -6,7 +6,7 @@ "width": 16, "height": 6, "layouts": { - "LAYOUT": { + "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}, {"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":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":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":0, "y":4, "w":2.25}, {"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":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":6.25}, {"x":10, "y":5, "w":1.25}, {"x":11.25, "y":5, "w":1.25}, {"x":13, "y":5}, {"x":14, "y":5}, {"x":15, "y":5}] } } From 465acd4d09fbf429ebd5894d13ae43a55c6777ee Mon Sep 17 00:00:00 2001 From: zunger-humu Date: Sat, 3 Aug 2019 21:25:05 -0700 Subject: [PATCH 092/115] [Keymap] Add some more commonly used symbols to melody96/zunger. (#6478) --- keyboards/melody96/keymaps/zunger/keymap.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/keyboards/melody96/keymaps/zunger/keymap.c b/keyboards/melody96/keymaps/zunger/keymap.c index 9031447cd20..bedb77a4b79 100644 --- a/keyboards/melody96/keymaps/zunger/keymap.c +++ b/keyboards/melody96/keymaps/zunger/keymap.c @@ -54,7 +54,6 @@ enum layers_keymap { // autogenerate the keymaps for the other layers. // TODO: It would also be nice to be able to put the actual code points in here, rather than // numbers. -// TODO: Also add checkmark and dengir. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -70,9 +69,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ∅ | | | | | | | | | | | | | | | | | | | SHIFTCADET * |---------------------------------------------------------------------------| * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | BKSPC |LCK| / | * | - | - * | ` | | | | | | | | | | | ∝ | ∼ | BKSPC |LCK| ⊘ | ⊙ | ⊖ | - * | ` | | | | | | | | | | | | ≁ | BKSPC |LCK| | ⊗ | | - * | | | | | | | | | | | | | ± | BKSPC |LCK| | | | + * | ` | ¡ | | £ | | | | | ° | | | ∝ | ∼ | BKSPC |LCK| ⊘ | ⊙ | ⊖ | + * | ` | ¿ | | € | | | | | | | | | ≁ | BKSPC |LCK| | ⊗ | | + * | | ̀ | ́ | ̂ | ̃ | ̈ | ̄ | | | | | | ± | BKSPC |LCK| | × | | [3] * | | | | | | | | | | | | | ∓ | BKSPC |LCK| | | | * |---------------------------------------------------------------------------| * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | 7 | 8 | 9 | | @@ -104,6 +103,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * clicks the mouse, and SHIFT+CADET+FIVE right-clicks. * [2] The Greek letters in this row are the three modifier keys (GREEK, CADET, FN), * not the Unicode Greek letters. + * [3] The accent marks in this row are combining accent marks, which may be put after + * a character to combine it. In order, they are grave, acute, circumflex, tilde, + * diaresis (umlaut), and macron. */ // NB: Using GESC for escape in the QWERTY layer as a temporary hack because I messed up the // switch on the KC_GRV key; change back to KC_ESC once this is fixed. @@ -116,14 +118,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_GREEK,KC_CADET,MO_FN, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [_GREEK] = LAYOUT_hotswap( KC_GRV, H(00b9), H(00b2), H(00b3), H(2074), H(2075), H(2076), H(2077), H(2078), H(2079), H(2070), H(207b), H(207a), H(207d), H(207e), XXXXXXX, XXXXXXX, XXXXXXX, _______, - KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, H(221d), H(223c), _______, _______, H(2298), H(2299), H(2296), + KC_GRV, H(00a1), _______, H(00a3), _______, _______, _______, _______, H(00b0), _______, _______, H(221d), H(223c), _______, _______, H(2298), H(2299), H(2296), _______, H(03b8), H(03c9), H(03b5), H(03c1), H(03c4), H(03c8), H(03c5), H(03b9), H(03bf), H(03c0), KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, _______, H(03b1), H(03c3), H(03b4), H(03c6), H(03b3), H(03b7), H(03d1), H(03ba), H(03bb), H(22ef), H(22c5), _______, KC_P4, KC_P5, KC_P6, H(2295), _______, H(03b6), H(03be), H(03c7), H(03c2), H(03b2), H(03bd), H(03bc), H(226a), H(226b), H(222b), _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT), [_SHIFTGREEK] = LAYOUT_hotswap( KC_GRV, H(2081), H(2082), H(2083), H(2084), H(2085), H(2086), H(2087), H(2088), H(2089), H(2080), H(208b), H(208a), H(208d), H(208e), XXXXXXX, XXXXXXX, XXXXXXX, _______, - KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, H(2241), _______, _______, XXXXXXX, H(2297), XXXXXXX, + KC_GRV, H(00bf), _______, H(20ac), _______, _______, _______, _______, _______, _______, _______, XXXXXXX, H(2241), _______, _______, XXXXXXX, H(2297), XXXXXXX, _______, H(0398), H(03a9), H(0395), H(03a1), H(03a4), H(03a8), H(03a5), H(0399), H(039f), H(03a0), KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, _______, H(0391), H(03a3), H(0394), H(03a6), H(0393), H(0397), XXXXXXX, H(039a), H(039b), H(2026), H(2234), _______, KC_P4, KC_P5, KC_P6, H(2295), _______, H(0396), H(039e), H(03a7), H(2714), H(0392), H(039d), H(039c), H(2272), H(2273), XXXXXXX, _______, _______, KC_P1, KC_P2, KC_P3, @@ -131,7 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // TODO: Add mouse keys to keypad. [_CADET] = LAYOUT_hotswap( H(00AC), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(00b1), _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, + KC_GRV, H(0300), H(0301), H(0302), H(0303), H(0308), H(0304), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(00b1), _______, _______, XXXXXXX, H(00d7), XXXXXXX, _______, H(2227), H(2228), H(2229), H(222a), H(2282), H(2283), H(2200), H(221e), H(2203), H(2202), H(2208), XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, _______, H(22a5), H(22a4), H(22a2), H(22a3), H(2191), H(2193), H(2190), H(2192), H(2194), XXXXXXX, XXXXXXX, _______, KC_P4, KC_P5, KC_P6, XXXXXXX, _______, XXXXXXX, XXXXXXX, H(2260), H(2248), H(2261), H(2264), H(2265), XXXXXXX, XXXXXXX, H(00f7), _______, _______, KC_P1, KC_P2, KC_P3, @@ -145,7 +147,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT), // Function layer is mostly for keyboard meta-control operations. Lots of this is just from the - // default layout; TODO make it nicer, add Unicode mode switchers. + // default layout; TODO make it nicer. [_FUNCTION] = LAYOUT_hotswap( RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, From f644db042c488a19c2256c9f3870b5bd331cc98c Mon Sep 17 00:00:00 2001 From: Garrett Singer Date: Sun, 4 Aug 2019 00:26:02 -0400 Subject: [PATCH 093/115] [Split] Add config option for DIRECT_PINS_RIGHT (#6479) Adds support for different direct pin mappings on the halves of a split keyboard. --- docs/config_options.md | 3 +++ docs/feature_split_keyboard.md | 5 +++++ quantum/split_common/matrix.c | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/docs/config_options.md b/docs/config_options.md index 01c0e3ee8ca..3be294db894 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -248,6 +248,9 @@ There are a few different ways to set handedness for split keyboards (listed in * `#define MATRIX_COL_PINS_RIGHT { }` * If you want to specify a different pinout for the right half than the left half, you can define `MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT`. Currently, the size of `MATRIX_ROW_PINS` must be the same as `MATRIX_ROW_PINS_RIGHT` and likewise for the definition of columns. +* `#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }` + * If you want to specify a different direct pinout for the right half than the left half, you can define `DIRECT_PINS_RIGHT`. Currently, the size of `DIRECT_PINS` must be the same as `DIRECT_PINS_RIGHT`. + * `#define RGBLED_SPLIT { 6, 6 }` * See [RGB Light Configuration](#rgb-light-configuration) diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md index 95aceab2238..4addb1bfd0f 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/feature_split_keyboard.md @@ -160,6 +160,11 @@ There are some settings that you may need to configure, based on how the hardwar This allows you to specify a different set of pins for the matrix on the right side. This is useful if you have a board with differently-shaped halves that requires a different configuration (such as Keebio's Quefrency). +```c +#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } } +``` + +This allows you to specify a different set of direct pins for the right side. ```c #define RGBLIGHT_SPLIT diff --git a/quantum/split_common/matrix.c b/quantum/split_common/matrix.c index 41a15ace4e4..e0f094e34ba 100644 --- a/quantum/split_common/matrix.c +++ b/quantum/split_common/matrix.c @@ -252,6 +252,14 @@ void matrix_init(void) { // Set pinout for right half if pinout for that half is defined if (!isLeftHand) { +#ifdef DIRECT_PINS_RIGHT + const pin_t direct_pins_right[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS_RIGHT; + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + for (uint8_t j = 0; j < MATRIX_COLS; j++) { + direct_pins[i][j] = direct_pins_right[i][j]; + } + } +#endif #ifdef MATRIX_ROW_PINS_RIGHT const pin_t row_pins_right[MATRIX_ROWS] = MATRIX_ROW_PINS_RIGHT; for (uint8_t i = 0; i < MATRIX_ROWS; i++) { From 430c37024e8de42bb735f26386f2b13f042e3569 Mon Sep 17 00:00:00 2001 From: coseyfannitutti <43188488+coseyfannitutti@users.noreply.github.com> Date: Sun, 4 Aug 2019 00:37:26 -0400 Subject: [PATCH 094/115] [Keyboard] add keyboard-discipline (#6464) * add keyboard-discipline * move discipline to /coseyfannitutti * Update readme.md * Update keyboards/coseyfannitutti/discipline/discipline.h Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/coseyfannitutti/discipline/discipline.h Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/coseyfannitutti/discipline/info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/coseyfannitutti/discipline/info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/coseyfannitutti/discipline/readme.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/coseyfannitutti/discipline/rules.mk Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update readme.md * Update keyboards/coseyfannitutti/discipline/discipline.c Co-Authored-By: Drashna Jaelre --- keyboards/coseyfannitutti/discipline/config.h | 247 +++++++++++ .../coseyfannitutti/discipline/discipline.c | 24 ++ .../coseyfannitutti/discipline/discipline.h | 78 ++++ .../coseyfannitutti/discipline/info.json | 21 + .../discipline/keymaps/67_ansi/keymap.c | 68 +++ .../keymaps/coseyfannitutti/keymap.c | 69 +++ .../discipline/keymaps/default/keymap.c | 68 +++ .../keymaps/wkl_ansi_2_right_mods/keymap.c | 68 +++ .../keymaps/wkl_ansi_3_right_mods/keymap.c | 68 +++ .../coseyfannitutti/discipline/readme.md | 15 + keyboards/coseyfannitutti/discipline/rules.mk | 91 ++++ .../coseyfannitutti/discipline/usbconfig.h | 397 ++++++++++++++++++ 12 files changed, 1214 insertions(+) create mode 100644 keyboards/coseyfannitutti/discipline/config.h create mode 100644 keyboards/coseyfannitutti/discipline/discipline.c create mode 100644 keyboards/coseyfannitutti/discipline/discipline.h create mode 100644 keyboards/coseyfannitutti/discipline/info.json create mode 100644 keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c create mode 100644 keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c create mode 100644 keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c create mode 100644 keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_2_right_mods/keymap.c create mode 100644 keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_3_right_mods/keymap.c create mode 100644 keyboards/coseyfannitutti/discipline/readme.md create mode 100644 keyboards/coseyfannitutti/discipline/rules.mk create mode 100644 keyboards/coseyfannitutti/discipline/usbconfig.h diff --git a/keyboards/coseyfannitutti/discipline/config.h b/keyboards/coseyfannitutti/discipline/config.h new file mode 100644 index 00000000000..b3386f94d8f --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/config.h @@ -0,0 +1,247 @@ +/*Copyright 2019 coseyfannitutti + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0xFEED +#define PRODUCT_ID 0x6869 +#define DEVICE_VER 0x0001 +#define MANUFACTURER coseyfannitutti +#define PRODUCT DISCIPLINE +#define DESCRIPTION 65% keyboard that can be assembled with only through hole components + +/* 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 { B2, A1, B1, A0, B0 } +#define MATRIX_COL_PINS { A2, B3, A3, B4, A4, D5, D6, C6, C5, C4, C3, C2, C1, C0, D7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define NO_UART 1 + +/* + * 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 +// #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 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + diff --git a/keyboards/coseyfannitutti/discipline/discipline.c b/keyboards/coseyfannitutti/discipline/discipline.c new file mode 100644 index 00000000000..6a788ce0e8f --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/discipline.c @@ -0,0 +1,24 @@ +/* Copyright 2019 coseyfannitutti + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "discipline.h" + + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} diff --git a/keyboards/coseyfannitutti/discipline/discipline.h b/keyboards/coseyfannitutti/discipline/discipline.h new file mode 100644 index 00000000000..1703a61284d --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/discipline.h @@ -0,0 +1,78 @@ +/* Copyright 2019 coseyfannitutti + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 _x_ KC_NO + +#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, 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 }, \ +{ 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, _x_, K2D, K2E }, \ +{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ +{ K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \ +} + +#define LAYOUT_65_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, \ + 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 }, \ +{ 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, _x_, K2D, K2E }, \ +{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ +{ K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E} \ +} + +#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, \ + 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, K42, K46, K49, K4A, 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, _x_, K2D, K2E }, \ +{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ +{ K40, _x_, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E} \ +} + +#define LAYOUT_wkl_ansi_3_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, \ + 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, K42, K46, 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, _x_, K2D, K2E }, \ +{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ +{ K40, _x_, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E} \ +} + diff --git a/keyboards/coseyfannitutti/discipline/info.json b/keyboards/coseyfannitutti/discipline/info.json new file mode 100644 index 00000000000..66203f09e03 --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/info.json @@ -0,0 +1,21 @@ +{ + "keyboard_name": "DISCIPLINE", + "url": "https://github.com/coseyfannitutti/discipline", + "maintainer": "coseyfannitutti", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_ansi": { + "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":"~", "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":"Delete", "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":"PgUp", "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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "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":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + }, + "LAYOUT_65_ansi_2_right_mods": { + "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":"~", "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":"Delete", "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":"PgUp", "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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "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":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Fn", "x":11.5, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + }, + "LAYOUT_wkl_2_right_mods": { + "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":"~", "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":"Delete", "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":"PgUp", "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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Fn", "x":11.5, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + }, + "LAYOUT_wkl_3_right_mods": { + "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":"~", "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":"Delete", "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":"PgUp", "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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + } + } +} diff --git a/keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c new file mode 100644 index 00000000000..34410d54af9 --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2019 COSEYFANNITUTTI + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 _BL 0 +#define _FL 1 + + /* Qwerty + * .---------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins | + * |---------------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del | + * |---------------------------------------------------------------------------------------------+ + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgUp| + * |---------------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | U | Pgdn| + * |---------------------------------------------------------------------------------------------+ + * | Ctrl | Win | Alt | Space | RAlt | FN ||||||| L | D | R | + * '---------------------------------------------------------------------------------------------' + */ + + /* FnLayer + * .---------------------------------------------------------------------------------------------. + * | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |PNTSC| + * |---------------------------------------------------------------------------------------------+ + * | Tab | | | |RESET| | | | | | |PAUSE| | \ | | + * |---------------------------------------------------------------------------------------------+ + * | Caps | | | | | | | | | | | INS | Enter | HOME| + * |---------------------------------------------------------------------------------------------+ + * | Shift | | | | | | | | | | | Shift |VOLUP| END | + * |---------------------------------------------------------------------------------------------+ + * | Ctrl | Win | Alt | | RAlt| FN ||||||| L |VOLDN| R | + * '---------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_65_ansi_2_right_mods( + 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_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(_FL), KC_LEFT, KC_DOWN, KC_RIGHT), + + [_FL] = LAYOUT_65_ansi_2_right_mods( + /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */ + 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, + /* tab Q W E R T Y U I O P [ ] \ delete*/ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, + /* caps A S D F G H J K L ; ' enter pg 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_INS, KC_HOME, + /* shift Z X C V B N M , . / shift up pg dn*/ + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_VOLU, KC_END, + /* ctrl win alt space alt fn ctrl left down right*/ + KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_RALT, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS) +}; diff --git a/keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c new file mode 100644 index 00000000000..cb14d23f103 --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2019 COSEYFANNITUTTI + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 _BL 0 +#define _FL 1 + + /* Qwerty + * .---------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins | + * |---------------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del | + * |---------------------------------------------------------------------------------------------+ + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgUp| + * |---------------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | U | Pgdn| + * |---------------------------------------------------------------------------------------------+ + * | Ctrl | Win | Alt | Space | RAlt | FN ||||||| L | D | R | + * '---------------------------------------------------------------------------------------------' + */ + + /* FnLayer + * .---------------------------------------------------------------------------------------------. + * | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |PNTSC| + * |---------------------------------------------------------------------------------------------+ + * | Tab | | | |RESET| | | | | | |PAUSE| | \ | | + * |---------------------------------------------------------------------------------------------+ + * | Caps | | | | | | | | | | | INS | Enter | HOME| + * |---------------------------------------------------------------------------------------------+ + * | Shift | | | | | | | | | | | Shift |VOLUP| END | + * |---------------------------------------------------------------------------------------------+ + * | Ctrl | Win | Alt | | RAlt| FN ||||||| L |VOLDN| R | + * '---------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_65_ansi_2_right_mods( + 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_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(_FL), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_LEFT, KC_DOWN, KC_RIGHT), + + [_FL] = LAYOUT_65_ansi_2_right_mods( + /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */ + 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, + /* tab Q W E R T Y U I O P [ ] \ delete*/ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, + /* caps A S D F G H J K L ; ' enter pg 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_INS, KC_HOME, + /* shift Z X C V B N M , . / shift up pg dn*/ + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_VOLU, KC_END, + /* ctrl win alt space alt fn left down right*/ + KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_RALT, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS) +}; + diff --git a/keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c new file mode 100644 index 00000000000..da433c1a6b3 --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2019 COSEYFANNITUTTI + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 _BL 0 +#define _FL 1 + + /* Qwerty + * .---------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins | + * |---------------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del | + * |---------------------------------------------------------------------------------------------+ + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgUp| + * |---------------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | U | Pgdn| + * |---------------------------------------------------------------------------------------------+ + * | Ctrl | Win | Alt | Space | RAlt | FN |RCtrl| L | D | R | + * '---------------------------------------------------------------------------------------------' + */ + + /* FnLayer + * .---------------------------------------------------------------------------------------------. + * | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |PNTSC| + * |---------------------------------------------------------------------------------------------+ + * | Tab | | | |RESET| | | | | | |PAUSE| | \ | | + * |---------------------------------------------------------------------------------------------+ + * | Caps | | | | | | | | | | | INS | Enter | HOME| + * |---------------------------------------------------------------------------------------------+ + * | Shift | | | | | | | | | | | Shift |VOLUP| END | + * |---------------------------------------------------------------------------------------------+ + * | Ctrl | Win | Alt | | RAlt| FN |RCtrl| L |VOLDN| R | + * '---------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_65_ansi( + 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_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(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [_FL] = LAYOUT_65_ansi( + /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */ + 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, + /* tab Q W E R T Y U I O P [ ] \ delete*/ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, + /* caps A S D F G H J K L ; ' enter pg 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_INS, KC_HOME, + /* shift Z X C V B N M , . / shift up pg dn*/ + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_VOLU, KC_END, + /* ctrl win alt space alt fn ctrl left down right*/ + KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_RALT, KC_TRNS, KC_RCTL, KC_TRNS, KC_VOLD, KC_TRNS) +}; diff --git a/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_2_right_mods/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_2_right_mods/keymap.c new file mode 100644 index 00000000000..01b1e21f110 --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_2_right_mods/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2019 COSEYFANNITUTTI + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 _BL 0 +#define _FL 1 + + /* Qwerty + * .---------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins | + * |---------------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del | + * |---------------------------------------------------------------------------------------------+ + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgUp| + * |---------------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | U | Pgdn| + * |---------------------------------------------------------------------------------------------+ + * | Ctrl | Alt | Space | RAlt | FN | L | D | R | + * '---------------------------------------------------------------------------------------------' + */ + + /* FnLayer + * .---------------------------------------------------------------------------------------------. + * | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |PNTSC| + * |---------------------------------------------------------------------------------------------+ + * | Tab | | | |RESET| | | | | | |PAUSE| | \ | | + * |---------------------------------------------------------------------------------------------+ + * | Caps | | | | | | | | | | | INS | Enter | HOME| + * |---------------------------------------------------------------------------------------------+ + * | Shift | | | | | | | | | | | Shift |VOLUP| END | + * |---------------------------------------------------------------------------------------------+ + * | Ctrl | Alt | | RAlt | FN | L |VOLDN| R | + * '---------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_wkl_ansi_2_right_mods( + 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_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_LALT, KC_SPC, KC_RALT, MO(_FL), KC_LEFT, KC_DOWN, KC_RIGHT), + + [_FL] = LAYOUT_wkl_ansi_2_right_mods( + /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */ + 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, + /* tab Q W E R T Y U I O P [ ] \ delete*/ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, + /* caps A S D F G H J K L ; ' enter pg 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_INS, KC_HOME, + /* shift Z X C V B N M , . / shift up pg dn*/ + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_VOLU, KC_END, + /* ctrl alt space alt fn left down right*/ + KC_LCTL, KC_LALT, KC_TRNS, KC_RALT, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS) +}; diff --git a/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_3_right_mods/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_3_right_mods/keymap.c new file mode 100644 index 00000000000..05f8810e6cf --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/wkl_ansi_3_right_mods/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2019 COSEYFANNITUTTI + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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 _BL 0 +#define _FL 1 + + /* Qwerty + * .---------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins | + * |---------------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del | + * |---------------------------------------------------------------------------------------------+ + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgUp| + * |---------------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | U | Pgdn| + * |---------------------------------------------------------------------------------------------+ + * | Ctrl | Alt | Space | RAlt | FN |RCtrl| L | D | R | + * '---------------------------------------------------------------------------------------------' + */ + + /* FnLayer + * .---------------------------------------------------------------------------------------------. + * | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE |PNTSC| + * |---------------------------------------------------------------------------------------------+ + * | Tab |STATC|BRTHE|RNBOW|RESET| | | | | | |PAUSE| | \ | | + * |---------------------------------------------------------------------------------------------+ + * | Caps |RGBH+|RGBS+|RGBB+| | | | | | | | INS | Enter | HOME| + * |---------------------------------------------------------------------------------------------+ + * | Shift |RGBH-|RGBS-|RGBB-| | | | |RGBM-|RGBM+|RGBTG| Shift |VOLUP| END | + * |---------------------------------------------------------------------------------------------+ + * | Ctrl | Alt | | RAlt| FN |RCtrl| L |VOLDN| R | + * '---------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_wkl_ansi_3_right_mods( + 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_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_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [_FL] = LAYOUT_wkl_ansi_3_right_mods( + /* esc 1 2 3 4 5 6 7 8 9 0 - = bkspc `~ */ + 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, + /* tab Q W E R T Y U I O P [ ] \ delete*/ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, + /* caps A S D F G H J K L ; ' enter pg 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_INS, KC_HOME, + /* shift Z X C V B N M , . / shift up pg dn*/ + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_VOLU, KC_END, + /* ctrl alt space alt fn ctrl left down right*/ + KC_LCTL, KC_LALT, KC_TRNS, KC_RALT, KC_TRNS, KC_RCTL, KC_TRNS, KC_VOLD, KC_TRNS) +}; diff --git a/keyboards/coseyfannitutti/discipline/readme.md b/keyboards/coseyfannitutti/discipline/readme.md new file mode 100644 index 00000000000..1668387937e --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/readme.md @@ -0,0 +1,15 @@ +# DISCIPLINE + +![discipline](https://i.imgur.com/OqQ1Ko8.jpg) + +A 65% keyboard that can be assembled with only through hole components, including usb type-c + +Keyboard Maintainer: [coseyfannitutti](https://github.com/coseyfannitutti) +Hardware Supported: DISCIPLINE, atmega32a +Hardware Availability: [cftkb.com](http://www.cftkb.com), [GitHub](https://github.com/coseyfannitutti/discipline) + +Make example for this keyboard (after setting up your build environment): + + make coseyfannitutti/discipline:default:program + +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/coseyfannitutti/discipline/rules.mk b/keyboards/coseyfannitutti/discipline/rules.mk new file mode 100644 index 00000000000..bc81342de27 --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/rules.mk @@ -0,0 +1,91 @@ +# MCU name +MCU = atmega32a +PROTOCOL = VUSB + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +# +# This uses usbaspbootloader +BOOTLOADER = USBasp + +# 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 +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 + +# Flash program via avrdude, but default command is not suitable. +# You can use plaid:default:program +PROGRAM_CMD = avrdude -c usbasp -p m32 -U flash:w:$(BUILD_DIR)/$(TARGET).hex + +# disable debug code +OPT_DEFS = -DDEBUG_LEVEL=0 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# 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 on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +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 (+400) + +# unsupported features for now +NO_UART = yes +NO_SUSPEND_POWER_DOWN = yes + +LAYOUTS = 65_ansi diff --git a/keyboards/coseyfannitutti/discipline/usbconfig.h b/keyboards/coseyfannitutti/discipline/usbconfig.h new file mode 100644 index 00000000000..f20ad2f9c7e --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/usbconfig.h @@ -0,0 +1,397 @@ +/* Name: usbconfig.h + * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers + * Author: Christian Starkjohann + * Creation Date: 2005-04-01 + * Tabsize: 4 + * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH + * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) + * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $ + */ + +#ifndef __usbconfig_h_included__ +#define __usbconfig_h_included__ + +#include "config.h" + +/* +General Description: +This file is an example configuration (with inline documentation) for the USB +driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is +also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may +wire the lines to any other port, as long as D+ is also wired to INT0 (or any +other hardware interrupt, as long as it is the highest level interrupt, see +section at the end of this file). +*/ + +/* ---------------------------- Hardware Config ---------------------------- */ + +#define USB_CFG_IOPORTNAME D +/* This is the port where the USB bus is connected. When you configure it to + * "B", the registers PORTB, PINB and DDRB will be used. + */ +#define USB_CFG_DMINUS_BIT 3 +/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. + * This may be any bit in the port. + */ +#define USB_CFG_DPLUS_BIT 2 +/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. + * This may be any bit in the port. Please note that D+ must also be connected + * to interrupt pin INT0! [You can also use other interrupts, see section + * "Optional MCU Description" below, or you can connect D- to the interrupt, as + * it is required if you use the USB_COUNT_SOF feature. If you use D- for the + * interrupt, the USB interrupt will also be triggered at Start-Of-Frame + * markers every millisecond.] + */ +#define USB_CFG_CLOCK_KHZ (F_CPU/1000) +/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000, + * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code + * require no crystal, they tolerate +/- 1% deviation from the nominal + * frequency. All other rates require a precision of 2000 ppm and thus a + * crystal! + * Since F_CPU should be defined to your actual clock rate anyway, you should + * not need to modify this setting. + */ +#define USB_CFG_CHECK_CRC 0 +/* Define this to 1 if you want that the driver checks integrity of incoming + * data packets (CRC checks). CRC checks cost quite a bit of code size and are + * currently only available for 18 MHz crystal clock. You must choose + * USB_CFG_CLOCK_KHZ = 18000 if you enable this option. + */ + +/* ----------------------- Optional Hardware Config ------------------------ */ + +/* #define USB_CFG_PULLUP_IOPORTNAME D */ +/* If you connect the 1.5k pullup resistor from D- to a port pin instead of + * V+, you can connect and disconnect the device from firmware by calling + * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h). + * This constant defines the port on which the pullup resistor is connected. + */ +/* #define USB_CFG_PULLUP_BIT 4 */ +/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined + * above) where the 1.5k pullup resistor is connected. See description + * above for details. + */ + +/* --------------------------- Functional Range ---------------------------- */ + +#define USB_CFG_HAVE_INTRIN_ENDPOINT 1 +/* Define this to 1 if you want to compile a version with two endpoints: The + * default control endpoint 0 and an interrupt-in endpoint (any other endpoint + * number). + */ +#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1 +/* Define this to 1 if you want to compile a version with three endpoints: The + * default control endpoint 0, an interrupt-in endpoint 3 (or the number + * configured below) and a catch-all default interrupt-in endpoint as above. + * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature. + */ +#define USB_CFG_EP3_NUMBER 3 +/* If the so-called endpoint 3 is used, it can now be configured to any other + * endpoint number (except 0) with this macro. Default if undefined is 3. + */ +/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */ +/* The above macro defines the startup condition for data toggling on the + * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1. + * Since the token is toggled BEFORE sending any data, the first packet is + * sent with the oposite value of this configuration! + */ +#define USB_CFG_IMPLEMENT_HALT 0 +/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature + * for endpoint 1 (interrupt endpoint). Although you may not need this feature, + * it is required by the standard. We have made it a config option because it + * bloats the code considerably. + */ +#define USB_CFG_SUPPRESS_INTR_CODE 0 +/* Define this to 1 if you want to declare interrupt-in endpoints, but don't + * want to send any data over them. If this macro is defined to 1, functions + * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if + * you need the interrupt-in endpoints in order to comply to an interface + * (e.g. HID), but never want to send any data. This option saves a couple + * of bytes in flash memory and the transmit buffers in RAM. + */ +#define USB_CFG_INTR_POLL_INTERVAL 1 +/* If you compile a version with endpoint 1 (interrupt-in), this is the poll + * interval. The value is in milliseconds and must not be less than 10 ms for + * low speed devices. + */ +#define USB_CFG_IS_SELF_POWERED 0 +/* Define this to 1 if the device has its own power supply. Set it to 0 if the + * device is powered from the USB bus. + */ +// max power draw with maxed white underglow measured at 120 mA (peaks) +#define USB_CFG_MAX_BUS_POWER 100 +/* Set this variable to the maximum USB bus power consumption of your device. + * The value is in milliamperes. [It will be divided by two since USB + * communicates power requirements in units of 2 mA.] + */ +#define USB_CFG_IMPLEMENT_FN_WRITE 1 +/* Set this to 1 if you want usbFunctionWrite() to be called for control-out + * transfers. Set it to 0 if you don't need it and want to save a couple of + * bytes. + */ +#define USB_CFG_IMPLEMENT_FN_READ 0 +/* Set this to 1 if you need to send control replies which are generated + * "on the fly" when usbFunctionRead() is called. If you only want to send + * data from a static buffer, set it to 0 and return the data from + * usbFunctionSetup(). This saves a couple of bytes. + */ +#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0 +/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints. + * You must implement the function usbFunctionWriteOut() which receives all + * interrupt/bulk data sent to any endpoint other than 0. The endpoint number + * can be found in 'usbRxToken'. + */ +#define USB_CFG_HAVE_FLOWCONTROL 0 +/* Define this to 1 if you want flowcontrol over USB data. See the definition + * of the macros usbDisableAllRequests() and usbEnableAllRequests() in + * usbdrv.h. + */ +#define USB_CFG_DRIVER_FLASH_PAGE 0 +/* If the device has more than 64 kBytes of flash, define this to the 64 k page + * where the driver's constants (descriptors) are located. Or in other words: + * Define this to 1 for boot loaders on the ATMega128. + */ +#define USB_CFG_LONG_TRANSFERS 0 +/* Define this to 1 if you want to send/receive blocks of more than 254 bytes + * in a single control-in or control-out transfer. Note that the capability + * for long transfers increases the driver size. + */ +/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */ +/* This macro is a hook if you want to do unconventional things. If it is + * defined, it's inserted at the beginning of received message processing. + * If you eat the received message and don't want default processing to + * proceed, do a return after doing your things. One possible application + * (besides debugging) is to flash a status LED on each packet. + */ +/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */ +/* This macro is a hook if you need to know when an USB RESET occurs. It has + * one parameter which distinguishes between the start of RESET state and its + * end. + */ +/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */ +/* This macro (if defined) is executed when a USB SET_ADDRESS request was + * received. + */ +#define USB_COUNT_SOF 0 +/* define this macro to 1 if you need the global variable "usbSofCount" which + * counts SOF packets. This feature requires that the hardware interrupt is + * connected to D- instead of D+. + */ +/* #ifdef __ASSEMBLER__ + * macro myAssemblerMacro + * in YL, TCNT0 + * sts timer0Snapshot, YL + * endm + * #endif + * #define USB_SOF_HOOK myAssemblerMacro + * This macro (if defined) is executed in the assembler module when a + * Start Of Frame condition is detected. It is recommended to define it to + * the name of an assembler macro which is defined here as well so that more + * than one assembler instruction can be used. The macro may use the register + * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages + * immediately after an SOF pulse may be lost and must be retried by the host. + * What can you do with this hook? Since the SOF signal occurs exactly every + * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in + * designs running on the internal RC oscillator. + * Please note that Start Of Frame detection works only if D- is wired to the + * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES! + */ +#define USB_CFG_CHECK_DATA_TOGGLING 0 +/* define this macro to 1 if you want to filter out duplicate data packets + * sent by the host. Duplicates occur only as a consequence of communication + * errors, when the host does not receive an ACK. Please note that you need to + * implement the filtering yourself in usbFunctionWriteOut() and + * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable + * for each control- and out-endpoint to check for duplicate packets. + */ +#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0 +/* define this macro to 1 if you want the function usbMeasureFrameLength() + * compiled in. This function can be used to calibrate the AVR's RC oscillator. + */ +#define USB_USE_FAST_CRC 0 +/* The assembler module has two implementations for the CRC algorithm. One is + * faster, the other is smaller. This CRC routine is only used for transmitted + * messages where timing is not critical. The faster routine needs 31 cycles + * per byte while the smaller one needs 61 to 69 cycles. The faster routine + * may be worth the 32 bytes bigger code size if you transmit lots of data and + * run the AVR close to its limit. + */ + +/* -------------------------- Device Description --------------------------- */ + +#define USB_CFG_VENDOR_ID (VENDOR_ID & 0xFF), ((VENDOR_ID >> 8) & 0xFF) +/* USB vendor ID for the device, low byte first. If you have registered your + * own Vendor ID, define it here. Otherwise you may use one of obdev's free + * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_ID (PRODUCT_ID & 0xFF), ((PRODUCT_ID >> 8) & 0xFF) +/* This is the ID of the product, low byte first. It is interpreted in the + * scope of the vendor ID. If you have registered your own VID with usb.org + * or if you have licensed a PID from somebody else, define it here. Otherwise + * you may use one of obdev's free shared VID/PID pairs. See the file + * USB-IDs-for-free.txt for details! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_VERSION 0x01, 0x00 +/* Version number of the device: Minor number first, then major number. + */ +#define USB_CFG_VENDOR_NAME 'c','o','s','e','y','f','a','n','n','i','t','u','t','t','i' +#define USB_CFG_VENDOR_NAME_LEN 15 +/* These two values define the vendor name returned by the USB device. The name + * must be given as a list of characters under single quotes. The characters + * are interpreted as Unicode (UTF-16) entities. + * If you don't want a vendor name string, undefine these macros. + * ALWAYS define a vendor name containing your Internet domain name if you use + * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for + * details. + */ +#define USB_CFG_DEVICE_NAME 'D','I','S','C','I','P','L','I','N','E' +#define USB_CFG_DEVICE_NAME_LEN 10 +/* Same as above for the device name. If you don't want a device name, undefine + * the macros. See the file USB-IDs-for-free.txt before you assign a name if + * you use a shared VID/PID. + */ +#define USB_CFG_SERIAL_NUMBER '0' +#define USB_CFG_SERIAL_NUMBER_LEN 1 +/* Same as above for the serial number. If you don't want a serial number, + * undefine the macros. + * It may be useful to provide the serial number through other means than at + * compile time. See the section about descriptor properties below for how + * to fine tune control over USB descriptors such as the string descriptor + * for the serial number. + */ +#define USB_CFG_DEVICE_CLASS 0 +#define USB_CFG_DEVICE_SUBCLASS 0 +/* See USB specification if you want to conform to an existing device class. + * Class 0xff is "vendor specific". + */ +#define USB_CFG_INTERFACE_CLASS 3 /* HID */ +#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */ +#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */ +/* See USB specification if you want to conform to an existing device class or + * protocol. The following classes must be set at interface level: + * HID class is 3, no subclass and protocol required (but may be useful!) + * CDC class is 2, use subclass 2 and protocol 1 for ACM + */ +#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0 +/* Define this to the length of the HID report descriptor, if you implement + * an HID device. Otherwise don't define it or define it to 0. + * If you use this define, you must add a PROGMEM character array named + * "usbHidReportDescriptor" to your code which contains the report descriptor. + * Don't forget to keep the array and this define in sync! + */ + +/* #define USB_PUBLIC static */ +/* Use the define above if you #include usbdrv.c instead of linking against it. + * This technique saves a couple of bytes in flash memory. + */ + +/* ------------------- Fine Control over USB Descriptors ------------------- */ +/* If you don't want to use the driver's default USB descriptors, you can + * provide our own. These can be provided as (1) fixed length static data in + * flash memory, (2) fixed length static data in RAM or (3) dynamically at + * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more + * information about this function. + * Descriptor handling is configured through the descriptor's properties. If + * no properties are defined or if they are 0, the default descriptor is used. + * Possible properties are: + * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched + * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is + * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if + * you want RAM pointers. + * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found + * in static memory is in RAM, not in flash memory. + * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash), + * the driver must know the descriptor's length. The descriptor itself is + * found at the address of a well known identifier (see below). + * List of static descriptor names (must be declared PROGMEM if in flash): + * char usbDescriptorDevice[]; + * char usbDescriptorConfiguration[]; + * char usbDescriptorHidReport[]; + * char usbDescriptorString0[]; + * int usbDescriptorStringVendor[]; + * int usbDescriptorStringDevice[]; + * int usbDescriptorStringSerialNumber[]; + * Other descriptors can't be provided statically, they must be provided + * dynamically at runtime. + * + * Descriptor properties are or-ed or added together, e.g.: + * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18)) + * + * The following descriptors are defined: + * USB_CFG_DESCR_PROPS_DEVICE + * USB_CFG_DESCR_PROPS_CONFIGURATION + * USB_CFG_DESCR_PROPS_STRINGS + * USB_CFG_DESCR_PROPS_STRING_0 + * USB_CFG_DESCR_PROPS_STRING_VENDOR + * USB_CFG_DESCR_PROPS_STRING_PRODUCT + * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER + * USB_CFG_DESCR_PROPS_HID + * USB_CFG_DESCR_PROPS_HID_REPORT + * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver) + * + * Note about string descriptors: String descriptors are not just strings, they + * are Unicode strings prefixed with a 2 byte header. Example: + * int serialNumberDescriptor[] = { + * USB_STRING_DESCRIPTOR_HEADER(6), + * 'S', 'e', 'r', 'i', 'a', 'l' + * }; + */ + +#define USB_CFG_DESCR_PROPS_DEVICE 0 +#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_CONFIGURATION 0 +#define USB_CFG_DESCR_PROPS_STRINGS 0 +#define USB_CFG_DESCR_PROPS_STRING_0 0 +#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0 +#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0 +#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0 +#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_HID 0 +#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_HID_REPORT 0 +#define USB_CFG_DESCR_PROPS_UNKNOWN 0 + +#define usbMsgPtr_t unsigned short +/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to + * a scalar type here because gcc generates slightly shorter code for scalar + * arithmetics than for pointer arithmetics. Remove this define for backward + * type compatibility or define it to an 8 bit type if you use data in RAM only + * and all RAM is below 256 bytes (tiny memory model in IAR CC). + */ + +/* ----------------------- Optional MCU Description ------------------------ */ + +/* The following configurations have working defaults in usbdrv.h. You + * usually don't need to set them explicitly. Only if you want to run + * the driver on a device which is not yet supported or with a compiler + * which is not fully supported (such as IAR C) or if you use a differnt + * interrupt than INT0, you may have to define some of these. + */ +/* #define USB_INTR_CFG MCUCR */ +/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */ +/* #define USB_INTR_CFG_CLR 0 */ +/* #define USB_INTR_ENABLE GIMSK */ +/* #define USB_INTR_ENABLE_BIT INT0 */ +/* #define USB_INTR_PENDING GIFR */ +/* #define USB_INTR_PENDING_BIT INTF0 */ +/* #define USB_INTR_VECTOR INT0_vect */ + +/* Set INT1 for D- falling edge to count SOF */ +/* #define USB_INTR_CFG EICRA */ +// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10)) +// /* #define USB_INTR_CFG_CLR 0 */ +// /* #define USB_INTR_ENABLE EIMSK */ +// #define USB_INTR_ENABLE_BIT INT1 +// /* #define USB_INTR_PENDING EIFR */ +// #define USB_INTR_PENDING_BIT INTF1 +// #define USB_INTR_VECTOR INT1_vect + +#endif /* __usbconfig_h_included__ */ From 72f382fc02b3c5c81c54fd2d239d653fe2f8083c Mon Sep 17 00:00:00 2001 From: fauxpark Date: Fri, 2 Aug 2019 13:47:52 +1000 Subject: [PATCH 095/115] Remove unused _BOOTLOADER defines --- keyboards/alice/config.h | 1 - keyboards/ergo42/rev1/config.h | 2 -- keyboards/ergo42/rules.mk | 16 +++++++++------- keyboards/helix/rev1/config.h | 2 -- keyboards/helix/rules.mk | 11 +++++++---- keyboards/jj50/config.h | 1 - keyboards/jj50/rules.mk | 11 +++++++---- keyboards/lets_split/keymaps/zer09/config.h | 1 - keyboards/lets_split/rules.mk | 11 +++++++---- keyboards/lily58/rev1/config.h | 4 +--- keyboards/lily58/rules.mk | 11 +++++++---- keyboards/meira/featherble/config.h | 3 --- keyboards/meira/promicro/config.h | 2 -- keyboards/meira/rules.mk | 17 ++++++++--------- keyboards/orthodox/rev3/config.h | 2 -- keyboards/skog/config.h | 1 - keyboards/winkeyless/bface/config.h | 1 - keyboards/winkeyless/bface/rules.mk | 2 +- keyboards/ymd75/config.h | 1 - keyboards/ymd96/config.h | 3 +-- 20 files changed, 48 insertions(+), 55 deletions(-) diff --git a/keyboards/alice/config.h b/keyboards/alice/config.h index 07b9599f58e..2200fbbe464 100644 --- a/keyboards/alice/config.h +++ b/keyboards/alice/config.h @@ -36,4 +36,3 @@ along with this program. If not, see . #define RGBLIGHT_ANIMATIONS #define NO_UART 1 -#define BOOTLOADHID_BOOTLOADER 1 diff --git a/keyboards/ergo42/rev1/config.h b/keyboards/ergo42/rev1/config.h index 68a5e2bbe5f..f8fae93cf40 100644 --- a/keyboards/ergo42/rev1/config.h +++ b/keyboards/ergo42/rev1/config.h @@ -40,8 +40,6 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 } // #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order -#define CATERINA_BOOTLOADER - /* define tapping term */ #define TAPPING_TERM 100 diff --git a/keyboards/ergo42/rules.mk b/keyboards/ergo42/rules.mk index 286c5fccb50..d8544d9ba05 100644 --- a/keyboards/ergo42/rules.mk +++ b/keyboards/ergo42/rules.mk @@ -43,13 +43,15 @@ F_USB = $(F_CPU) OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = caterina + # Build Options # change to "no" to disable the options, or define them in the Makefile in diff --git a/keyboards/helix/rev1/config.h b/keyboards/helix/rev1/config.h index 454e8ee628a..61fe744728b 100644 --- a/keyboards/helix/rev1/config.h +++ b/keyboards/helix/rev1/config.h @@ -51,8 +51,6 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 } // #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order -#define CATERINA_BOOTLOADER - /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST diff --git a/keyboards/helix/rules.mk b/keyboards/helix/rules.mk index b3eea4028e3..245bff70fa9 100644 --- a/keyboards/helix/rules.mk +++ b/keyboards/helix/rules.mk @@ -37,10 +37,13 @@ ARCH = AVR8 # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. F_USB = $(F_CPU) -# Bootloader -# This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded -# automatically (+60). See bootloader.mk for all options. +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID BOOTLOADER = caterina # Interrupt driven control endpoint task(+60) diff --git a/keyboards/jj50/config.h b/keyboards/jj50/config.h index 0f09f02ff87..0d35e3129e9 100644 --- a/keyboards/jj50/config.h +++ b/keyboards/jj50/config.h @@ -46,6 +46,5 @@ along with this program. If not, see . #define RGBLIGHT_VAL_STEP 18 #define NO_UART 1 -#define BOOTLOADHID_BOOTLOADER 1 #endif diff --git a/keyboards/jj50/rules.mk b/keyboards/jj50/rules.mk index 4ee5719185e..2390d9631e3 100644 --- a/keyboards/jj50/rules.mk +++ b/keyboards/jj50/rules.mk @@ -25,10 +25,13 @@ NO_SUSPEND_POWER_DOWN = yes # processor frequency F_CPU = 12000000 -# Bootloader -# This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded -# automatically (+60). See bootloader.mk for all options. +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID BOOTLOADER = bootloadHID # build options diff --git a/keyboards/lets_split/keymaps/zer09/config.h b/keyboards/lets_split/keymaps/zer09/config.h index 14be4ccc59b..3990c3dc5bf 100644 --- a/keyboards/lets_split/keymaps/zer09/config.h +++ b/keyboards/lets_split/keymaps/zer09/config.h @@ -35,7 +35,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } #define MATRIX_COL_PINS { F7, B1, B3, B2, B6 } -#define CATERINA_BOOTLOADER #define USB_MAX_POWER_CONSUMPTION 50 /* Use I2C or Serial, not both */ diff --git a/keyboards/lets_split/rules.mk b/keyboards/lets_split/rules.mk index f9d1a0dadb4..4899657357f 100644 --- a/keyboards/lets_split/rules.mk +++ b/keyboards/lets_split/rules.mk @@ -33,10 +33,13 @@ ARCH = AVR8 # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. F_USB = $(F_CPU) -# Bootloader -# This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded -# automatically (+60). See bootloader.mk for all options. +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID BOOTLOADER = caterina # Interrupt driven control endpoint task(+60) diff --git a/keyboards/lily58/rev1/config.h b/keyboards/lily58/rev1/config.h index 8fd42070e02..4e8e3a7c9cd 100644 --- a/keyboards/lily58/rev1/config.h +++ b/keyboards/lily58/rev1/config.h @@ -36,8 +36,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } #define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 } -#define CATERINA_BOOTLOADER - /* define tapping term */ #define TAPPING_TERM 100 @@ -72,4 +70,4 @@ along with this program. If not, see . //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION \ No newline at end of file +//#define NO_ACTION_FUNCTION diff --git a/keyboards/lily58/rules.mk b/keyboards/lily58/rules.mk index 0ef951872ee..d13c88ba695 100644 --- a/keyboards/lily58/rules.mk +++ b/keyboards/lily58/rules.mk @@ -40,10 +40,13 @@ ARCH = AVR8 # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. F_USB = $(F_CPU) -# Bootloader -# This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded -# automatically (+60). See bootloader.mk for all options. +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID BOOTLOADER = caterina # Interrupt driven control endpoint task(+60) diff --git a/keyboards/meira/featherble/config.h b/keyboards/meira/featherble/config.h index fb24c607953..5aa5c29503e 100644 --- a/keyboards/meira/featherble/config.h +++ b/keyboards/meira/featherble/config.h @@ -40,9 +40,6 @@ along with this program. If not, see . #define B5_AUDIO #define AUDIO_VOICES -#define CATERINA_BOOTLOADER - - // #define BACKLIGHT_PIN B7 // #define BACKLIGHT_BREATHING //#define BACKLIGHT_LEVELS 3 diff --git a/keyboards/meira/promicro/config.h b/keyboards/meira/promicro/config.h index 67e5ca06d18..22975f68c02 100644 --- a/keyboards/meira/promicro/config.h +++ b/keyboards/meira/promicro/config.h @@ -36,8 +36,6 @@ along with this program. If not, see . #define LED_EN_PIN D2 #define UNUSED_PINS -#define CATERINA_BOOTLOADER - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/meira/rules.mk b/keyboards/meira/rules.mk index 2796335b6a9..7893e6556fc 100644 --- a/keyboards/meira/rules.mk +++ b/keyboards/meira/rules.mk @@ -32,15 +32,14 @@ BOOTLOADER = caterina # Interrupt driven control endpoint task(+60) OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = caterina # Build Options # change yes to no to disable diff --git a/keyboards/orthodox/rev3/config.h b/keyboards/orthodox/rev3/config.h index ad3437a6262..07ecb663bae 100644 --- a/keyboards/orthodox/rev3/config.h +++ b/keyboards/orthodox/rev3/config.h @@ -48,8 +48,6 @@ along with this program. If not, see . #define MATRIX_COL_PINS { D2, F5, F6, D6, D7, B4, B5, B6, F7 } /*/ -#define CATERINA_BOOTLOADER - /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/skog/config.h b/keyboards/skog/config.h index f518da8c9b0..ed7c558db73 100644 --- a/keyboards/skog/config.h +++ b/keyboards/skog/config.h @@ -34,6 +34,5 @@ along with this program. If not, see . #define BACKLIGHT_LEVELS 5 #define NO_UART 1 -#define BOOTLOADHID_BOOTLOADER 1 #endif diff --git a/keyboards/winkeyless/bface/config.h b/keyboards/winkeyless/bface/config.h index 7a1fe333549..20f3642dc80 100644 --- a/keyboards/winkeyless/bface/config.h +++ b/keyboards/winkeyless/bface/config.h @@ -38,7 +38,6 @@ along with this program. If not, see . #define RGBLIGHT_ANIMATIONS #define NO_UART 1 -#define BOOTLOADHID_BOOTLOADER 1 #ifdef BACKLIGHT_ENABLE // the backlight PWM does not work (yet). Therefore, we only have two backlight levels (on/off) diff --git a/keyboards/winkeyless/bface/rules.mk b/keyboards/winkeyless/bface/rules.mk index b6d172f266e..4e016b47dad 100644 --- a/keyboards/winkeyless/bface/rules.mk +++ b/keyboards/winkeyless/bface/rules.mk @@ -37,7 +37,7 @@ RGBLIGHT_ENABLE = yes RGBLIGHT_CUSTOM_DRIVER = yes OPT_DEFS = -DDEBUG_LEVEL=0 -OPT_DEFS += -DBOOTLOADER_SIZE=2048 +BOOTLOADER = bootloadHID # custom matrix setup SRC = i2c_master.c diff --git a/keyboards/ymd75/config.h b/keyboards/ymd75/config.h index 36031eebf5d..6afd077b0a1 100644 --- a/keyboards/ymd75/config.h +++ b/keyboards/ymd75/config.h @@ -46,6 +46,5 @@ along with this program. If not, see . #define RGBLIGHT_VAL_STEP 18 #define NO_UART 1 -#define BOOTLOADHID_BOOTLOADER 1 #endif diff --git a/keyboards/ymd96/config.h b/keyboards/ymd96/config.h index 51d42603dcb..58169196b4a 100644 --- a/keyboards/ymd96/config.h +++ b/keyboards/ymd96/config.h @@ -51,7 +51,6 @@ along with this program. If not, see . #define RGBLIGHT_ANIMATIONS /*#define RGBLIGHT_VAL_STEP 20 -#define NO_UART 1 -#define BOOTLOADHID_BOOTLOADER 1*/ +#define NO_UART 1*/ #endif From 7f8922ae7bc6c52bd22d3953b8eda9e87c664cf9 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sun, 4 Aug 2019 23:06:33 -0700 Subject: [PATCH 096/115] GH60 Refactor: Move Satan into GH60 directory (#6485) * Move Satan into the GH60 directory to avoid the confusion of what PCB people have * set bootmagic to lite * rename gh60 file to revc --- keyboards/gh60/{ => revc}/config.h | 6 ------ keyboards/gh60/{ => revc}/info.json | 0 keyboards/gh60/{ => revc}/keymaps/bluezio/keymap.c | 0 keyboards/gh60/{ => revc}/keymaps/bluezio/rules.mk | 0 keyboards/gh60/{ => revc}/keymaps/chaser/README.md | 0 keyboards/gh60/{ => revc}/keymaps/chaser/keymap.c | 0 keyboards/gh60/{ => revc}/keymaps/dbroqua/config.h | 0 keyboards/gh60/{ => revc}/keymaps/dbroqua/keymap.c | 0 keyboards/gh60/{ => revc}/keymaps/dbroqua/rules.mk | 0 keyboards/gh60/{ => revc}/keymaps/dbroqua_7U/keymap.c | 0 keyboards/gh60/{ => revc}/keymaps/dbroqua_7U/rules.mk | 0 keyboards/gh60/{ => revc}/keymaps/default/keymap.c | 0 keyboards/gh60/{ => revc}/keymaps/emiilsd/keymap.c | 0 keyboards/gh60/{ => revc}/keymaps/maartenwut/keymap.c | 0 keyboards/gh60/{ => revc}/keymaps/maxr1998/config.h | 0 keyboards/gh60/{ => revc}/keymaps/maxr1998/keymap.c | 0 keyboards/gh60/{ => revc}/keymaps/maxr1998/rules.mk | 0 keyboards/gh60/{ => revc}/keymaps/robotmaxtron/config.h | 0 keyboards/gh60/{ => revc}/keymaps/robotmaxtron/keymap.c | 0 keyboards/gh60/{ => revc}/keymaps/robotmaxtron/readme.md | 0 keyboards/gh60/{ => revc}/keymaps/robotmaxtron/rules.mk | 0 keyboards/gh60/{ => revc}/keymaps/sethbc/keymap.c | 0 keyboards/gh60/{ => revc}/keymaps/sethbc/rules.mk | 0 keyboards/gh60/{ => revc}/keymaps/xyverz/keymap.c | 0 keyboards/gh60/{ => revc}/pinout.txt | 0 keyboards/gh60/{ => revc}/readme.md | 7 ++++--- keyboards/gh60/{gh60.c => revc/revc.c} | 2 +- keyboards/gh60/{gh60.h => revc/revc.h} | 0 keyboards/gh60/{ => revc}/rules.mk | 2 +- keyboards/{ => gh60}/satan/config.h | 0 keyboards/{ => gh60}/satan/info.json | 0 keyboards/{ => gh60}/satan/keymaps/abhixec/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/abhixec/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/abhixec/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/addcninblue/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/addcninblue/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/addcninblue/rules.mk | 0 .../{ => gh60}/satan/keymaps/admiralStrokers/config.h | 0 .../{ => gh60}/satan/keymaps/admiralStrokers/keymap.c | 0 .../{ => gh60}/satan/keymaps/admiralStrokers/readme.md | 0 .../{ => gh60}/satan/keymaps/admiralStrokers/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/ben_iso/config.h | 0 keyboards/{ => gh60}/satan/keymaps/ben_iso/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/ben_iso/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/ben_iso/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/bri/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/bri/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/chaser/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/chaser/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/chaser/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/colemak/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/colemak/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/colemak/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/dbroqua/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/dbroqua/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/default/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/default/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/default/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/dende_iso/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/dende_iso/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/dende_iso/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/denolfe/README.md | 0 keyboards/{ => gh60}/satan/keymaps/denolfe/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/denolfe/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/dkrieger/config.h | 0 keyboards/{ => gh60}/satan/keymaps/dkrieger/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/dkrieger/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/dkrieger/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/fakb/config.h | 0 keyboards/{ => gh60}/satan/keymaps/fakb/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/fakb/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/fakb/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/hhkb_7u/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/hhkb_7u/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/isoHHKB/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/isoHHKB/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/isoHHKB/rules.mk | 0 .../{ => gh60}/satan/keymaps/iso_split_rshift/.gitignore | 0 .../{ => gh60}/satan/keymaps/iso_split_rshift/build.sh | 0 .../{ => gh60}/satan/keymaps/iso_split_rshift/config.h | 0 .../{ => gh60}/satan/keymaps/iso_split_rshift/keymap.c | 0 .../{ => gh60}/satan/keymaps/iso_split_rshift/readme.md | 0 .../{ => gh60}/satan/keymaps/iso_split_rshift/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/jarred/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/jarred/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/lepa/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/lepa/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/lepa/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/mark1/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/mark1/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/midi/config.h | 0 keyboards/{ => gh60}/satan/keymaps/midi/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/midi/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/midi/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/no_caps_lock/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/no_caps_lock/readme.md | 0 .../{ => gh60}/satan/keymaps/olligranlund_iso/config.h | 0 .../{ => gh60}/satan/keymaps/olligranlund_iso/keymap.c | 0 .../{ => gh60}/satan/keymaps/olligranlund_iso/readme.md | 0 .../{ => gh60}/satan/keymaps/olligranlund_iso/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/poker/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/rask63/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/sethbc/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/sethbc/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/sethbc/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/smt/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/smt/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/smt/rules.mk | 0 keyboards/{ => gh60}/satan/keymaps/spacemanspiff/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/spacemanspiff/readme.md | 0 keyboards/{ => gh60}/satan/keymaps/stanleylai/config.h | 0 keyboards/{ => gh60}/satan/keymaps/stanleylai/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/unxmaal/README.md | 0 keyboards/{ => gh60}/satan/keymaps/unxmaal/keymap.c | 0 keyboards/{ => gh60}/satan/keymaps/unxmaal/rules.mk | 0 keyboards/{ => gh60}/satan/readme.md | 4 +++- keyboards/{ => gh60}/satan/rules.mk | 2 +- keyboards/{ => gh60}/satan/satan.c | 0 keyboards/{ => gh60}/satan/satan.h | 0 keyboards/satan/keymaps/iso_split_rshift/resetboard.sh | 4 ---- 120 files changed, 10 insertions(+), 17 deletions(-) rename keyboards/gh60/{ => revc}/config.h (99%) rename keyboards/gh60/{ => revc}/info.json (100%) rename keyboards/gh60/{ => revc}/keymaps/bluezio/keymap.c (100%) rename keyboards/gh60/{ => revc}/keymaps/bluezio/rules.mk (100%) rename keyboards/gh60/{ => revc}/keymaps/chaser/README.md (100%) rename keyboards/gh60/{ => revc}/keymaps/chaser/keymap.c (100%) rename keyboards/gh60/{ => revc}/keymaps/dbroqua/config.h (100%) rename keyboards/gh60/{ => revc}/keymaps/dbroqua/keymap.c (100%) rename keyboards/gh60/{ => revc}/keymaps/dbroqua/rules.mk (100%) rename keyboards/gh60/{ => revc}/keymaps/dbroqua_7U/keymap.c (100%) rename keyboards/gh60/{ => revc}/keymaps/dbroqua_7U/rules.mk (100%) rename keyboards/gh60/{ => revc}/keymaps/default/keymap.c (100%) rename keyboards/gh60/{ => revc}/keymaps/emiilsd/keymap.c (100%) rename keyboards/gh60/{ => revc}/keymaps/maartenwut/keymap.c (100%) rename keyboards/gh60/{ => revc}/keymaps/maxr1998/config.h (100%) rename keyboards/gh60/{ => revc}/keymaps/maxr1998/keymap.c (100%) rename keyboards/gh60/{ => revc}/keymaps/maxr1998/rules.mk (100%) rename keyboards/gh60/{ => revc}/keymaps/robotmaxtron/config.h (100%) rename keyboards/gh60/{ => revc}/keymaps/robotmaxtron/keymap.c (100%) rename keyboards/gh60/{ => revc}/keymaps/robotmaxtron/readme.md (100%) rename keyboards/gh60/{ => revc}/keymaps/robotmaxtron/rules.mk (100%) rename keyboards/gh60/{ => revc}/keymaps/sethbc/keymap.c (100%) rename keyboards/gh60/{ => revc}/keymaps/sethbc/rules.mk (100%) rename keyboards/gh60/{ => revc}/keymaps/xyverz/keymap.c (100%) rename keyboards/gh60/{ => revc}/pinout.txt (100%) rename keyboards/gh60/{ => revc}/readme.md (83%) rename keyboards/gh60/{gh60.c => revc/revc.c} (97%) rename keyboards/gh60/{gh60.h => revc/revc.h} (100%) rename keyboards/gh60/{ => revc}/rules.mk (97%) rename keyboards/{ => gh60}/satan/config.h (100%) rename keyboards/{ => gh60}/satan/info.json (100%) rename keyboards/{ => gh60}/satan/keymaps/abhixec/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/abhixec/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/abhixec/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/addcninblue/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/addcninblue/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/addcninblue/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/admiralStrokers/config.h (100%) rename keyboards/{ => gh60}/satan/keymaps/admiralStrokers/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/admiralStrokers/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/admiralStrokers/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/ben_iso/config.h (100%) rename keyboards/{ => gh60}/satan/keymaps/ben_iso/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/ben_iso/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/ben_iso/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/bri/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/bri/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/chaser/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/chaser/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/chaser/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/colemak/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/colemak/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/colemak/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/dbroqua/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/dbroqua/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/default/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/default/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/default/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/dende_iso/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/dende_iso/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/dende_iso/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/denolfe/README.md (100%) rename keyboards/{ => gh60}/satan/keymaps/denolfe/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/denolfe/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/dkrieger/config.h (100%) rename keyboards/{ => gh60}/satan/keymaps/dkrieger/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/dkrieger/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/dkrieger/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/fakb/config.h (100%) rename keyboards/{ => gh60}/satan/keymaps/fakb/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/fakb/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/fakb/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/hhkb_7u/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/hhkb_7u/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/isoHHKB/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/isoHHKB/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/isoHHKB/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/iso_split_rshift/.gitignore (100%) rename keyboards/{ => gh60}/satan/keymaps/iso_split_rshift/build.sh (100%) rename keyboards/{ => gh60}/satan/keymaps/iso_split_rshift/config.h (100%) rename keyboards/{ => gh60}/satan/keymaps/iso_split_rshift/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/iso_split_rshift/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/iso_split_rshift/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/jarred/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/jarred/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/lepa/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/lepa/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/lepa/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/mark1/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/mark1/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/midi/config.h (100%) rename keyboards/{ => gh60}/satan/keymaps/midi/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/midi/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/midi/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/no_caps_lock/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/no_caps_lock/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/olligranlund_iso/config.h (100%) rename keyboards/{ => gh60}/satan/keymaps/olligranlund_iso/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/olligranlund_iso/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/olligranlund_iso/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/poker/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/rask63/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/sethbc/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/sethbc/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/sethbc/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/smt/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/smt/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/smt/rules.mk (100%) rename keyboards/{ => gh60}/satan/keymaps/spacemanspiff/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/spacemanspiff/readme.md (100%) rename keyboards/{ => gh60}/satan/keymaps/stanleylai/config.h (100%) rename keyboards/{ => gh60}/satan/keymaps/stanleylai/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/unxmaal/README.md (100%) rename keyboards/{ => gh60}/satan/keymaps/unxmaal/keymap.c (100%) rename keyboards/{ => gh60}/satan/keymaps/unxmaal/rules.mk (100%) rename keyboards/{ => gh60}/satan/readme.md (82%) rename keyboards/{ => gh60}/satan/rules.mk (97%) rename keyboards/{ => gh60}/satan/satan.c (100%) rename keyboards/{ => gh60}/satan/satan.h (100%) delete mode 100755 keyboards/satan/keymaps/iso_split_rshift/resetboard.sh diff --git a/keyboards/gh60/config.h b/keyboards/gh60/revc/config.h similarity index 99% rename from keyboards/gh60/config.h rename to keyboards/gh60/revc/config.h index 8b7391faf13..e0cfa7268d3 100644 --- a/keyboards/gh60/config.h +++ b/keyboards/gh60/revc/config.h @@ -14,10 +14,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ - -#ifndef CONFIG_H -#define CONFIG_H - #include "config_common.h" /* USB Device descriptor parameter */ @@ -152,5 +148,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/gh60/info.json b/keyboards/gh60/revc/info.json similarity index 100% rename from keyboards/gh60/info.json rename to keyboards/gh60/revc/info.json diff --git a/keyboards/gh60/keymaps/bluezio/keymap.c b/keyboards/gh60/revc/keymaps/bluezio/keymap.c similarity index 100% rename from keyboards/gh60/keymaps/bluezio/keymap.c rename to keyboards/gh60/revc/keymaps/bluezio/keymap.c diff --git a/keyboards/gh60/keymaps/bluezio/rules.mk b/keyboards/gh60/revc/keymaps/bluezio/rules.mk similarity index 100% rename from keyboards/gh60/keymaps/bluezio/rules.mk rename to keyboards/gh60/revc/keymaps/bluezio/rules.mk diff --git a/keyboards/gh60/keymaps/chaser/README.md b/keyboards/gh60/revc/keymaps/chaser/README.md similarity index 100% rename from keyboards/gh60/keymaps/chaser/README.md rename to keyboards/gh60/revc/keymaps/chaser/README.md diff --git a/keyboards/gh60/keymaps/chaser/keymap.c b/keyboards/gh60/revc/keymaps/chaser/keymap.c similarity index 100% rename from keyboards/gh60/keymaps/chaser/keymap.c rename to keyboards/gh60/revc/keymaps/chaser/keymap.c diff --git a/keyboards/gh60/keymaps/dbroqua/config.h b/keyboards/gh60/revc/keymaps/dbroqua/config.h similarity index 100% rename from keyboards/gh60/keymaps/dbroqua/config.h rename to keyboards/gh60/revc/keymaps/dbroqua/config.h diff --git a/keyboards/gh60/keymaps/dbroqua/keymap.c b/keyboards/gh60/revc/keymaps/dbroqua/keymap.c similarity index 100% rename from keyboards/gh60/keymaps/dbroqua/keymap.c rename to keyboards/gh60/revc/keymaps/dbroqua/keymap.c diff --git a/keyboards/gh60/keymaps/dbroqua/rules.mk b/keyboards/gh60/revc/keymaps/dbroqua/rules.mk similarity index 100% rename from keyboards/gh60/keymaps/dbroqua/rules.mk rename to keyboards/gh60/revc/keymaps/dbroqua/rules.mk diff --git a/keyboards/gh60/keymaps/dbroqua_7U/keymap.c b/keyboards/gh60/revc/keymaps/dbroqua_7U/keymap.c similarity index 100% rename from keyboards/gh60/keymaps/dbroqua_7U/keymap.c rename to keyboards/gh60/revc/keymaps/dbroqua_7U/keymap.c diff --git a/keyboards/gh60/keymaps/dbroqua_7U/rules.mk b/keyboards/gh60/revc/keymaps/dbroqua_7U/rules.mk similarity index 100% rename from keyboards/gh60/keymaps/dbroqua_7U/rules.mk rename to keyboards/gh60/revc/keymaps/dbroqua_7U/rules.mk diff --git a/keyboards/gh60/keymaps/default/keymap.c b/keyboards/gh60/revc/keymaps/default/keymap.c similarity index 100% rename from keyboards/gh60/keymaps/default/keymap.c rename to keyboards/gh60/revc/keymaps/default/keymap.c diff --git a/keyboards/gh60/keymaps/emiilsd/keymap.c b/keyboards/gh60/revc/keymaps/emiilsd/keymap.c similarity index 100% rename from keyboards/gh60/keymaps/emiilsd/keymap.c rename to keyboards/gh60/revc/keymaps/emiilsd/keymap.c diff --git a/keyboards/gh60/keymaps/maartenwut/keymap.c b/keyboards/gh60/revc/keymaps/maartenwut/keymap.c similarity index 100% rename from keyboards/gh60/keymaps/maartenwut/keymap.c rename to keyboards/gh60/revc/keymaps/maartenwut/keymap.c diff --git a/keyboards/gh60/keymaps/maxr1998/config.h b/keyboards/gh60/revc/keymaps/maxr1998/config.h similarity index 100% rename from keyboards/gh60/keymaps/maxr1998/config.h rename to keyboards/gh60/revc/keymaps/maxr1998/config.h diff --git a/keyboards/gh60/keymaps/maxr1998/keymap.c b/keyboards/gh60/revc/keymaps/maxr1998/keymap.c similarity index 100% rename from keyboards/gh60/keymaps/maxr1998/keymap.c rename to keyboards/gh60/revc/keymaps/maxr1998/keymap.c diff --git a/keyboards/gh60/keymaps/maxr1998/rules.mk b/keyboards/gh60/revc/keymaps/maxr1998/rules.mk similarity index 100% rename from keyboards/gh60/keymaps/maxr1998/rules.mk rename to keyboards/gh60/revc/keymaps/maxr1998/rules.mk diff --git a/keyboards/gh60/keymaps/robotmaxtron/config.h b/keyboards/gh60/revc/keymaps/robotmaxtron/config.h similarity index 100% rename from keyboards/gh60/keymaps/robotmaxtron/config.h rename to keyboards/gh60/revc/keymaps/robotmaxtron/config.h diff --git a/keyboards/gh60/keymaps/robotmaxtron/keymap.c b/keyboards/gh60/revc/keymaps/robotmaxtron/keymap.c similarity index 100% rename from keyboards/gh60/keymaps/robotmaxtron/keymap.c rename to keyboards/gh60/revc/keymaps/robotmaxtron/keymap.c diff --git a/keyboards/gh60/keymaps/robotmaxtron/readme.md b/keyboards/gh60/revc/keymaps/robotmaxtron/readme.md similarity index 100% rename from keyboards/gh60/keymaps/robotmaxtron/readme.md rename to keyboards/gh60/revc/keymaps/robotmaxtron/readme.md diff --git a/keyboards/gh60/keymaps/robotmaxtron/rules.mk b/keyboards/gh60/revc/keymaps/robotmaxtron/rules.mk similarity index 100% rename from keyboards/gh60/keymaps/robotmaxtron/rules.mk rename to keyboards/gh60/revc/keymaps/robotmaxtron/rules.mk diff --git a/keyboards/gh60/keymaps/sethbc/keymap.c b/keyboards/gh60/revc/keymaps/sethbc/keymap.c similarity index 100% rename from keyboards/gh60/keymaps/sethbc/keymap.c rename to keyboards/gh60/revc/keymaps/sethbc/keymap.c diff --git a/keyboards/gh60/keymaps/sethbc/rules.mk b/keyboards/gh60/revc/keymaps/sethbc/rules.mk similarity index 100% rename from keyboards/gh60/keymaps/sethbc/rules.mk rename to keyboards/gh60/revc/keymaps/sethbc/rules.mk diff --git a/keyboards/gh60/keymaps/xyverz/keymap.c b/keyboards/gh60/revc/keymaps/xyverz/keymap.c similarity index 100% rename from keyboards/gh60/keymaps/xyverz/keymap.c rename to keyboards/gh60/revc/keymaps/xyverz/keymap.c diff --git a/keyboards/gh60/pinout.txt b/keyboards/gh60/revc/pinout.txt similarity index 100% rename from keyboards/gh60/pinout.txt rename to keyboards/gh60/revc/pinout.txt diff --git a/keyboards/gh60/readme.md b/keyboards/gh60/revc/readme.md similarity index 83% rename from keyboards/gh60/readme.md rename to keyboards/gh60/revc/readme.md index b63cce9735e..cb0d9535147 100644 --- a/keyboards/gh60/readme.md +++ b/keyboards/gh60/revc/readme.md @@ -1,5 +1,4 @@ -GH60 -=== +# GH60 Rev C ![gh60 Rev C PCB](https://i.imgur.com/FejpoNF.jpg) @@ -11,7 +10,9 @@ Hardware Availability: http://blog.komar.be/projects/gh60-programmable-keyboard/ Make example for this keyboard (after setting up your build environment): - make gh60:default + make gh60/revc:default + +**Note:** This GH60 firmware will not be compatible with the GH60 Satan PCB. Conversely, the GH60 Satan firmware will not be compatible with this PCB. Please ensure you have the correct firmware/pcb combination before flashing. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/gh60/gh60.c b/keyboards/gh60/revc/revc.c similarity index 97% rename from keyboards/gh60/gh60.c rename to keyboards/gh60/revc/revc.c index 10ae8935949..e06739d2baa 100644 --- a/keyboards/gh60/gh60.c +++ b/keyboards/gh60/revc/revc.c @@ -1,4 +1,4 @@ -#include "gh60.h" +#include "revc.h" extern inline void gh60_caps_led_on(void); diff --git a/keyboards/gh60/gh60.h b/keyboards/gh60/revc/revc.h similarity index 100% rename from keyboards/gh60/gh60.h rename to keyboards/gh60/revc/revc.h diff --git a/keyboards/gh60/rules.mk b/keyboards/gh60/revc/rules.mk similarity index 97% rename from keyboards/gh60/rules.mk rename to keyboards/gh60/revc/rules.mk index a4ee56d84a2..bf7ea514d6e 100644 --- a/keyboards/gh60/rules.mk +++ b/keyboards/gh60/revc/rules.mk @@ -50,7 +50,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) # CONSOLE_ENABLE = yes # Console for debug(+400) diff --git a/keyboards/satan/config.h b/keyboards/gh60/satan/config.h similarity index 100% rename from keyboards/satan/config.h rename to keyboards/gh60/satan/config.h diff --git a/keyboards/satan/info.json b/keyboards/gh60/satan/info.json similarity index 100% rename from keyboards/satan/info.json rename to keyboards/gh60/satan/info.json diff --git a/keyboards/satan/keymaps/abhixec/keymap.c b/keyboards/gh60/satan/keymaps/abhixec/keymap.c similarity index 100% rename from keyboards/satan/keymaps/abhixec/keymap.c rename to keyboards/gh60/satan/keymaps/abhixec/keymap.c diff --git a/keyboards/satan/keymaps/abhixec/readme.md b/keyboards/gh60/satan/keymaps/abhixec/readme.md similarity index 100% rename from keyboards/satan/keymaps/abhixec/readme.md rename to keyboards/gh60/satan/keymaps/abhixec/readme.md diff --git a/keyboards/satan/keymaps/abhixec/rules.mk b/keyboards/gh60/satan/keymaps/abhixec/rules.mk similarity index 100% rename from keyboards/satan/keymaps/abhixec/rules.mk rename to keyboards/gh60/satan/keymaps/abhixec/rules.mk diff --git a/keyboards/satan/keymaps/addcninblue/keymap.c b/keyboards/gh60/satan/keymaps/addcninblue/keymap.c similarity index 100% rename from keyboards/satan/keymaps/addcninblue/keymap.c rename to keyboards/gh60/satan/keymaps/addcninblue/keymap.c diff --git a/keyboards/satan/keymaps/addcninblue/readme.md b/keyboards/gh60/satan/keymaps/addcninblue/readme.md similarity index 100% rename from keyboards/satan/keymaps/addcninblue/readme.md rename to keyboards/gh60/satan/keymaps/addcninblue/readme.md diff --git a/keyboards/satan/keymaps/addcninblue/rules.mk b/keyboards/gh60/satan/keymaps/addcninblue/rules.mk similarity index 100% rename from keyboards/satan/keymaps/addcninblue/rules.mk rename to keyboards/gh60/satan/keymaps/addcninblue/rules.mk diff --git a/keyboards/satan/keymaps/admiralStrokers/config.h b/keyboards/gh60/satan/keymaps/admiralStrokers/config.h similarity index 100% rename from keyboards/satan/keymaps/admiralStrokers/config.h rename to keyboards/gh60/satan/keymaps/admiralStrokers/config.h diff --git a/keyboards/satan/keymaps/admiralStrokers/keymap.c b/keyboards/gh60/satan/keymaps/admiralStrokers/keymap.c similarity index 100% rename from keyboards/satan/keymaps/admiralStrokers/keymap.c rename to keyboards/gh60/satan/keymaps/admiralStrokers/keymap.c diff --git a/keyboards/satan/keymaps/admiralStrokers/readme.md b/keyboards/gh60/satan/keymaps/admiralStrokers/readme.md similarity index 100% rename from keyboards/satan/keymaps/admiralStrokers/readme.md rename to keyboards/gh60/satan/keymaps/admiralStrokers/readme.md diff --git a/keyboards/satan/keymaps/admiralStrokers/rules.mk b/keyboards/gh60/satan/keymaps/admiralStrokers/rules.mk similarity index 100% rename from keyboards/satan/keymaps/admiralStrokers/rules.mk rename to keyboards/gh60/satan/keymaps/admiralStrokers/rules.mk diff --git a/keyboards/satan/keymaps/ben_iso/config.h b/keyboards/gh60/satan/keymaps/ben_iso/config.h similarity index 100% rename from keyboards/satan/keymaps/ben_iso/config.h rename to keyboards/gh60/satan/keymaps/ben_iso/config.h diff --git a/keyboards/satan/keymaps/ben_iso/keymap.c b/keyboards/gh60/satan/keymaps/ben_iso/keymap.c similarity index 100% rename from keyboards/satan/keymaps/ben_iso/keymap.c rename to keyboards/gh60/satan/keymaps/ben_iso/keymap.c diff --git a/keyboards/satan/keymaps/ben_iso/readme.md b/keyboards/gh60/satan/keymaps/ben_iso/readme.md similarity index 100% rename from keyboards/satan/keymaps/ben_iso/readme.md rename to keyboards/gh60/satan/keymaps/ben_iso/readme.md diff --git a/keyboards/satan/keymaps/ben_iso/rules.mk b/keyboards/gh60/satan/keymaps/ben_iso/rules.mk similarity index 100% rename from keyboards/satan/keymaps/ben_iso/rules.mk rename to keyboards/gh60/satan/keymaps/ben_iso/rules.mk diff --git a/keyboards/satan/keymaps/bri/keymap.c b/keyboards/gh60/satan/keymaps/bri/keymap.c similarity index 100% rename from keyboards/satan/keymaps/bri/keymap.c rename to keyboards/gh60/satan/keymaps/bri/keymap.c diff --git a/keyboards/satan/keymaps/bri/readme.md b/keyboards/gh60/satan/keymaps/bri/readme.md similarity index 100% rename from keyboards/satan/keymaps/bri/readme.md rename to keyboards/gh60/satan/keymaps/bri/readme.md diff --git a/keyboards/satan/keymaps/chaser/keymap.c b/keyboards/gh60/satan/keymaps/chaser/keymap.c similarity index 100% rename from keyboards/satan/keymaps/chaser/keymap.c rename to keyboards/gh60/satan/keymaps/chaser/keymap.c diff --git a/keyboards/satan/keymaps/chaser/readme.md b/keyboards/gh60/satan/keymaps/chaser/readme.md similarity index 100% rename from keyboards/satan/keymaps/chaser/readme.md rename to keyboards/gh60/satan/keymaps/chaser/readme.md diff --git a/keyboards/satan/keymaps/chaser/rules.mk b/keyboards/gh60/satan/keymaps/chaser/rules.mk similarity index 100% rename from keyboards/satan/keymaps/chaser/rules.mk rename to keyboards/gh60/satan/keymaps/chaser/rules.mk diff --git a/keyboards/satan/keymaps/colemak/keymap.c b/keyboards/gh60/satan/keymaps/colemak/keymap.c similarity index 100% rename from keyboards/satan/keymaps/colemak/keymap.c rename to keyboards/gh60/satan/keymaps/colemak/keymap.c diff --git a/keyboards/satan/keymaps/colemak/readme.md b/keyboards/gh60/satan/keymaps/colemak/readme.md similarity index 100% rename from keyboards/satan/keymaps/colemak/readme.md rename to keyboards/gh60/satan/keymaps/colemak/readme.md diff --git a/keyboards/satan/keymaps/colemak/rules.mk b/keyboards/gh60/satan/keymaps/colemak/rules.mk similarity index 100% rename from keyboards/satan/keymaps/colemak/rules.mk rename to keyboards/gh60/satan/keymaps/colemak/rules.mk diff --git a/keyboards/satan/keymaps/dbroqua/keymap.c b/keyboards/gh60/satan/keymaps/dbroqua/keymap.c similarity index 100% rename from keyboards/satan/keymaps/dbroqua/keymap.c rename to keyboards/gh60/satan/keymaps/dbroqua/keymap.c diff --git a/keyboards/satan/keymaps/dbroqua/readme.md b/keyboards/gh60/satan/keymaps/dbroqua/readme.md similarity index 100% rename from keyboards/satan/keymaps/dbroqua/readme.md rename to keyboards/gh60/satan/keymaps/dbroqua/readme.md diff --git a/keyboards/satan/keymaps/default/keymap.c b/keyboards/gh60/satan/keymaps/default/keymap.c similarity index 100% rename from keyboards/satan/keymaps/default/keymap.c rename to keyboards/gh60/satan/keymaps/default/keymap.c diff --git a/keyboards/satan/keymaps/default/readme.md b/keyboards/gh60/satan/keymaps/default/readme.md similarity index 100% rename from keyboards/satan/keymaps/default/readme.md rename to keyboards/gh60/satan/keymaps/default/readme.md diff --git a/keyboards/satan/keymaps/default/rules.mk b/keyboards/gh60/satan/keymaps/default/rules.mk similarity index 100% rename from keyboards/satan/keymaps/default/rules.mk rename to keyboards/gh60/satan/keymaps/default/rules.mk diff --git a/keyboards/satan/keymaps/dende_iso/keymap.c b/keyboards/gh60/satan/keymaps/dende_iso/keymap.c similarity index 100% rename from keyboards/satan/keymaps/dende_iso/keymap.c rename to keyboards/gh60/satan/keymaps/dende_iso/keymap.c diff --git a/keyboards/satan/keymaps/dende_iso/readme.md b/keyboards/gh60/satan/keymaps/dende_iso/readme.md similarity index 100% rename from keyboards/satan/keymaps/dende_iso/readme.md rename to keyboards/gh60/satan/keymaps/dende_iso/readme.md diff --git a/keyboards/satan/keymaps/dende_iso/rules.mk b/keyboards/gh60/satan/keymaps/dende_iso/rules.mk similarity index 100% rename from keyboards/satan/keymaps/dende_iso/rules.mk rename to keyboards/gh60/satan/keymaps/dende_iso/rules.mk diff --git a/keyboards/satan/keymaps/denolfe/README.md b/keyboards/gh60/satan/keymaps/denolfe/README.md similarity index 100% rename from keyboards/satan/keymaps/denolfe/README.md rename to keyboards/gh60/satan/keymaps/denolfe/README.md diff --git a/keyboards/satan/keymaps/denolfe/keymap.c b/keyboards/gh60/satan/keymaps/denolfe/keymap.c similarity index 100% rename from keyboards/satan/keymaps/denolfe/keymap.c rename to keyboards/gh60/satan/keymaps/denolfe/keymap.c diff --git a/keyboards/satan/keymaps/denolfe/rules.mk b/keyboards/gh60/satan/keymaps/denolfe/rules.mk similarity index 100% rename from keyboards/satan/keymaps/denolfe/rules.mk rename to keyboards/gh60/satan/keymaps/denolfe/rules.mk diff --git a/keyboards/satan/keymaps/dkrieger/config.h b/keyboards/gh60/satan/keymaps/dkrieger/config.h similarity index 100% rename from keyboards/satan/keymaps/dkrieger/config.h rename to keyboards/gh60/satan/keymaps/dkrieger/config.h diff --git a/keyboards/satan/keymaps/dkrieger/keymap.c b/keyboards/gh60/satan/keymaps/dkrieger/keymap.c similarity index 100% rename from keyboards/satan/keymaps/dkrieger/keymap.c rename to keyboards/gh60/satan/keymaps/dkrieger/keymap.c diff --git a/keyboards/satan/keymaps/dkrieger/readme.md b/keyboards/gh60/satan/keymaps/dkrieger/readme.md similarity index 100% rename from keyboards/satan/keymaps/dkrieger/readme.md rename to keyboards/gh60/satan/keymaps/dkrieger/readme.md diff --git a/keyboards/satan/keymaps/dkrieger/rules.mk b/keyboards/gh60/satan/keymaps/dkrieger/rules.mk similarity index 100% rename from keyboards/satan/keymaps/dkrieger/rules.mk rename to keyboards/gh60/satan/keymaps/dkrieger/rules.mk diff --git a/keyboards/satan/keymaps/fakb/config.h b/keyboards/gh60/satan/keymaps/fakb/config.h similarity index 100% rename from keyboards/satan/keymaps/fakb/config.h rename to keyboards/gh60/satan/keymaps/fakb/config.h diff --git a/keyboards/satan/keymaps/fakb/keymap.c b/keyboards/gh60/satan/keymaps/fakb/keymap.c similarity index 100% rename from keyboards/satan/keymaps/fakb/keymap.c rename to keyboards/gh60/satan/keymaps/fakb/keymap.c diff --git a/keyboards/satan/keymaps/fakb/readme.md b/keyboards/gh60/satan/keymaps/fakb/readme.md similarity index 100% rename from keyboards/satan/keymaps/fakb/readme.md rename to keyboards/gh60/satan/keymaps/fakb/readme.md diff --git a/keyboards/satan/keymaps/fakb/rules.mk b/keyboards/gh60/satan/keymaps/fakb/rules.mk similarity index 100% rename from keyboards/satan/keymaps/fakb/rules.mk rename to keyboards/gh60/satan/keymaps/fakb/rules.mk diff --git a/keyboards/satan/keymaps/hhkb_7u/keymap.c b/keyboards/gh60/satan/keymaps/hhkb_7u/keymap.c similarity index 100% rename from keyboards/satan/keymaps/hhkb_7u/keymap.c rename to keyboards/gh60/satan/keymaps/hhkb_7u/keymap.c diff --git a/keyboards/satan/keymaps/hhkb_7u/readme.md b/keyboards/gh60/satan/keymaps/hhkb_7u/readme.md similarity index 100% rename from keyboards/satan/keymaps/hhkb_7u/readme.md rename to keyboards/gh60/satan/keymaps/hhkb_7u/readme.md diff --git a/keyboards/satan/keymaps/isoHHKB/keymap.c b/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c similarity index 100% rename from keyboards/satan/keymaps/isoHHKB/keymap.c rename to keyboards/gh60/satan/keymaps/isoHHKB/keymap.c diff --git a/keyboards/satan/keymaps/isoHHKB/readme.md b/keyboards/gh60/satan/keymaps/isoHHKB/readme.md similarity index 100% rename from keyboards/satan/keymaps/isoHHKB/readme.md rename to keyboards/gh60/satan/keymaps/isoHHKB/readme.md diff --git a/keyboards/satan/keymaps/isoHHKB/rules.mk b/keyboards/gh60/satan/keymaps/isoHHKB/rules.mk similarity index 100% rename from keyboards/satan/keymaps/isoHHKB/rules.mk rename to keyboards/gh60/satan/keymaps/isoHHKB/rules.mk diff --git a/keyboards/satan/keymaps/iso_split_rshift/.gitignore b/keyboards/gh60/satan/keymaps/iso_split_rshift/.gitignore similarity index 100% rename from keyboards/satan/keymaps/iso_split_rshift/.gitignore rename to keyboards/gh60/satan/keymaps/iso_split_rshift/.gitignore diff --git a/keyboards/satan/keymaps/iso_split_rshift/build.sh b/keyboards/gh60/satan/keymaps/iso_split_rshift/build.sh similarity index 100% rename from keyboards/satan/keymaps/iso_split_rshift/build.sh rename to keyboards/gh60/satan/keymaps/iso_split_rshift/build.sh diff --git a/keyboards/satan/keymaps/iso_split_rshift/config.h b/keyboards/gh60/satan/keymaps/iso_split_rshift/config.h similarity index 100% rename from keyboards/satan/keymaps/iso_split_rshift/config.h rename to keyboards/gh60/satan/keymaps/iso_split_rshift/config.h diff --git a/keyboards/satan/keymaps/iso_split_rshift/keymap.c b/keyboards/gh60/satan/keymaps/iso_split_rshift/keymap.c similarity index 100% rename from keyboards/satan/keymaps/iso_split_rshift/keymap.c rename to keyboards/gh60/satan/keymaps/iso_split_rshift/keymap.c diff --git a/keyboards/satan/keymaps/iso_split_rshift/readme.md b/keyboards/gh60/satan/keymaps/iso_split_rshift/readme.md similarity index 100% rename from keyboards/satan/keymaps/iso_split_rshift/readme.md rename to keyboards/gh60/satan/keymaps/iso_split_rshift/readme.md diff --git a/keyboards/satan/keymaps/iso_split_rshift/rules.mk b/keyboards/gh60/satan/keymaps/iso_split_rshift/rules.mk similarity index 100% rename from keyboards/satan/keymaps/iso_split_rshift/rules.mk rename to keyboards/gh60/satan/keymaps/iso_split_rshift/rules.mk diff --git a/keyboards/satan/keymaps/jarred/keymap.c b/keyboards/gh60/satan/keymaps/jarred/keymap.c similarity index 100% rename from keyboards/satan/keymaps/jarred/keymap.c rename to keyboards/gh60/satan/keymaps/jarred/keymap.c diff --git a/keyboards/satan/keymaps/jarred/readme.md b/keyboards/gh60/satan/keymaps/jarred/readme.md similarity index 100% rename from keyboards/satan/keymaps/jarred/readme.md rename to keyboards/gh60/satan/keymaps/jarred/readme.md diff --git a/keyboards/satan/keymaps/lepa/keymap.c b/keyboards/gh60/satan/keymaps/lepa/keymap.c similarity index 100% rename from keyboards/satan/keymaps/lepa/keymap.c rename to keyboards/gh60/satan/keymaps/lepa/keymap.c diff --git a/keyboards/satan/keymaps/lepa/readme.md b/keyboards/gh60/satan/keymaps/lepa/readme.md similarity index 100% rename from keyboards/satan/keymaps/lepa/readme.md rename to keyboards/gh60/satan/keymaps/lepa/readme.md diff --git a/keyboards/satan/keymaps/lepa/rules.mk b/keyboards/gh60/satan/keymaps/lepa/rules.mk similarity index 100% rename from keyboards/satan/keymaps/lepa/rules.mk rename to keyboards/gh60/satan/keymaps/lepa/rules.mk diff --git a/keyboards/satan/keymaps/mark1/keymap.c b/keyboards/gh60/satan/keymaps/mark1/keymap.c similarity index 100% rename from keyboards/satan/keymaps/mark1/keymap.c rename to keyboards/gh60/satan/keymaps/mark1/keymap.c diff --git a/keyboards/satan/keymaps/mark1/readme.md b/keyboards/gh60/satan/keymaps/mark1/readme.md similarity index 100% rename from keyboards/satan/keymaps/mark1/readme.md rename to keyboards/gh60/satan/keymaps/mark1/readme.md diff --git a/keyboards/satan/keymaps/midi/config.h b/keyboards/gh60/satan/keymaps/midi/config.h similarity index 100% rename from keyboards/satan/keymaps/midi/config.h rename to keyboards/gh60/satan/keymaps/midi/config.h diff --git a/keyboards/satan/keymaps/midi/keymap.c b/keyboards/gh60/satan/keymaps/midi/keymap.c similarity index 100% rename from keyboards/satan/keymaps/midi/keymap.c rename to keyboards/gh60/satan/keymaps/midi/keymap.c diff --git a/keyboards/satan/keymaps/midi/readme.md b/keyboards/gh60/satan/keymaps/midi/readme.md similarity index 100% rename from keyboards/satan/keymaps/midi/readme.md rename to keyboards/gh60/satan/keymaps/midi/readme.md diff --git a/keyboards/satan/keymaps/midi/rules.mk b/keyboards/gh60/satan/keymaps/midi/rules.mk similarity index 100% rename from keyboards/satan/keymaps/midi/rules.mk rename to keyboards/gh60/satan/keymaps/midi/rules.mk diff --git a/keyboards/satan/keymaps/no_caps_lock/keymap.c b/keyboards/gh60/satan/keymaps/no_caps_lock/keymap.c similarity index 100% rename from keyboards/satan/keymaps/no_caps_lock/keymap.c rename to keyboards/gh60/satan/keymaps/no_caps_lock/keymap.c diff --git a/keyboards/satan/keymaps/no_caps_lock/readme.md b/keyboards/gh60/satan/keymaps/no_caps_lock/readme.md similarity index 100% rename from keyboards/satan/keymaps/no_caps_lock/readme.md rename to keyboards/gh60/satan/keymaps/no_caps_lock/readme.md diff --git a/keyboards/satan/keymaps/olligranlund_iso/config.h b/keyboards/gh60/satan/keymaps/olligranlund_iso/config.h similarity index 100% rename from keyboards/satan/keymaps/olligranlund_iso/config.h rename to keyboards/gh60/satan/keymaps/olligranlund_iso/config.h diff --git a/keyboards/satan/keymaps/olligranlund_iso/keymap.c b/keyboards/gh60/satan/keymaps/olligranlund_iso/keymap.c similarity index 100% rename from keyboards/satan/keymaps/olligranlund_iso/keymap.c rename to keyboards/gh60/satan/keymaps/olligranlund_iso/keymap.c diff --git a/keyboards/satan/keymaps/olligranlund_iso/readme.md b/keyboards/gh60/satan/keymaps/olligranlund_iso/readme.md similarity index 100% rename from keyboards/satan/keymaps/olligranlund_iso/readme.md rename to keyboards/gh60/satan/keymaps/olligranlund_iso/readme.md diff --git a/keyboards/satan/keymaps/olligranlund_iso/rules.mk b/keyboards/gh60/satan/keymaps/olligranlund_iso/rules.mk similarity index 100% rename from keyboards/satan/keymaps/olligranlund_iso/rules.mk rename to keyboards/gh60/satan/keymaps/olligranlund_iso/rules.mk diff --git a/keyboards/satan/keymaps/poker/keymap.c b/keyboards/gh60/satan/keymaps/poker/keymap.c similarity index 100% rename from keyboards/satan/keymaps/poker/keymap.c rename to keyboards/gh60/satan/keymaps/poker/keymap.c diff --git a/keyboards/satan/keymaps/rask63/keymap.c b/keyboards/gh60/satan/keymaps/rask63/keymap.c similarity index 100% rename from keyboards/satan/keymaps/rask63/keymap.c rename to keyboards/gh60/satan/keymaps/rask63/keymap.c diff --git a/keyboards/satan/keymaps/sethbc/keymap.c b/keyboards/gh60/satan/keymaps/sethbc/keymap.c similarity index 100% rename from keyboards/satan/keymaps/sethbc/keymap.c rename to keyboards/gh60/satan/keymaps/sethbc/keymap.c diff --git a/keyboards/satan/keymaps/sethbc/readme.md b/keyboards/gh60/satan/keymaps/sethbc/readme.md similarity index 100% rename from keyboards/satan/keymaps/sethbc/readme.md rename to keyboards/gh60/satan/keymaps/sethbc/readme.md diff --git a/keyboards/satan/keymaps/sethbc/rules.mk b/keyboards/gh60/satan/keymaps/sethbc/rules.mk similarity index 100% rename from keyboards/satan/keymaps/sethbc/rules.mk rename to keyboards/gh60/satan/keymaps/sethbc/rules.mk diff --git a/keyboards/satan/keymaps/smt/keymap.c b/keyboards/gh60/satan/keymaps/smt/keymap.c similarity index 100% rename from keyboards/satan/keymaps/smt/keymap.c rename to keyboards/gh60/satan/keymaps/smt/keymap.c diff --git a/keyboards/satan/keymaps/smt/readme.md b/keyboards/gh60/satan/keymaps/smt/readme.md similarity index 100% rename from keyboards/satan/keymaps/smt/readme.md rename to keyboards/gh60/satan/keymaps/smt/readme.md diff --git a/keyboards/satan/keymaps/smt/rules.mk b/keyboards/gh60/satan/keymaps/smt/rules.mk similarity index 100% rename from keyboards/satan/keymaps/smt/rules.mk rename to keyboards/gh60/satan/keymaps/smt/rules.mk diff --git a/keyboards/satan/keymaps/spacemanspiff/keymap.c b/keyboards/gh60/satan/keymaps/spacemanspiff/keymap.c similarity index 100% rename from keyboards/satan/keymaps/spacemanspiff/keymap.c rename to keyboards/gh60/satan/keymaps/spacemanspiff/keymap.c diff --git a/keyboards/satan/keymaps/spacemanspiff/readme.md b/keyboards/gh60/satan/keymaps/spacemanspiff/readme.md similarity index 100% rename from keyboards/satan/keymaps/spacemanspiff/readme.md rename to keyboards/gh60/satan/keymaps/spacemanspiff/readme.md diff --git a/keyboards/satan/keymaps/stanleylai/config.h b/keyboards/gh60/satan/keymaps/stanleylai/config.h similarity index 100% rename from keyboards/satan/keymaps/stanleylai/config.h rename to keyboards/gh60/satan/keymaps/stanleylai/config.h diff --git a/keyboards/satan/keymaps/stanleylai/keymap.c b/keyboards/gh60/satan/keymaps/stanleylai/keymap.c similarity index 100% rename from keyboards/satan/keymaps/stanleylai/keymap.c rename to keyboards/gh60/satan/keymaps/stanleylai/keymap.c diff --git a/keyboards/satan/keymaps/unxmaal/README.md b/keyboards/gh60/satan/keymaps/unxmaal/README.md similarity index 100% rename from keyboards/satan/keymaps/unxmaal/README.md rename to keyboards/gh60/satan/keymaps/unxmaal/README.md diff --git a/keyboards/satan/keymaps/unxmaal/keymap.c b/keyboards/gh60/satan/keymaps/unxmaal/keymap.c similarity index 100% rename from keyboards/satan/keymaps/unxmaal/keymap.c rename to keyboards/gh60/satan/keymaps/unxmaal/keymap.c diff --git a/keyboards/satan/keymaps/unxmaal/rules.mk b/keyboards/gh60/satan/keymaps/unxmaal/rules.mk similarity index 100% rename from keyboards/satan/keymaps/unxmaal/rules.mk rename to keyboards/gh60/satan/keymaps/unxmaal/rules.mk diff --git a/keyboards/satan/readme.md b/keyboards/gh60/satan/readme.md similarity index 82% rename from keyboards/satan/readme.md rename to keyboards/gh60/satan/readme.md index 7eb272cf304..f6a56e4a80a 100644 --- a/keyboards/satan/readme.md +++ b/keyboards/gh60/satan/readme.md @@ -8,7 +8,9 @@ Hardware Availability: https://www.1upkeyboards.com/shop/controllers/gh60-satan- Make example for this keyboard (after setting up your build environment): - make satan:default + make gh60/satan:default + +**Note:** This GH60 Satan firmware will not be compatible with the GH60 Rev C PCB. Conversely, the GH60 Rev C firmware will not be compatible with this PCB. Please ensure you have the correct firmware/pcb combination before flashing. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/satan/rules.mk b/keyboards/gh60/satan/rules.mk similarity index 97% rename from keyboards/satan/rules.mk rename to keyboards/gh60/satan/rules.mk index 51161490e4d..b6bb68391ff 100644 --- a/keyboards/satan/rules.mk +++ b/keyboards/gh60/satan/rules.mk @@ -47,7 +47,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = yes # Console for debug(+400) diff --git a/keyboards/satan/satan.c b/keyboards/gh60/satan/satan.c similarity index 100% rename from keyboards/satan/satan.c rename to keyboards/gh60/satan/satan.c diff --git a/keyboards/satan/satan.h b/keyboards/gh60/satan/satan.h similarity index 100% rename from keyboards/satan/satan.h rename to keyboards/gh60/satan/satan.h diff --git a/keyboards/satan/keymaps/iso_split_rshift/resetboard.sh b/keyboards/satan/keymaps/iso_split_rshift/resetboard.sh deleted file mode 100755 index d955ccf545a..00000000000 --- a/keyboards/satan/keymaps/iso_split_rshift/resetboard.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -sudo dfu-programmer atmega32u4 erase --force -sudo dfu-programmer atmega32u4 flash clear_flash.hex -sudo dfu-programmer atmega32u4 reset From 209b6baaa8fd49d5df34e0c10da8930e3271e5f1 Mon Sep 17 00:00:00 2001 From: Maarten Dekkers Date: Tue, 6 Aug 2019 05:12:06 +0200 Subject: [PATCH 097/115] Move maartenwut's keyboards to one folder (#6484) --- keyboards/{ => maartenwut}/atom47/keymaps/LEdiodes/keymap.c | 0 keyboards/{ => maartenwut}/atom47/keymaps/LEdiodes/rules.mk | 0 keyboards/{ => maartenwut}/atom47/keymaps/default/keymap.c | 0 keyboards/{ => maartenwut}/atom47/keymaps/default/readme.md | 0 keyboards/{ => maartenwut}/atom47/keymaps/maartenwut/keymap.c | 0 keyboards/{ => maartenwut}/atom47/keymaps/maartenwut/readme.md | 0 keyboards/{ => maartenwut}/atom47/readme.md | 0 keyboards/{ => maartenwut}/atom47/rev2/config.h | 0 keyboards/{ => maartenwut}/atom47/rev2/info.json | 0 keyboards/{ => maartenwut}/atom47/rev2/readme.md | 0 keyboards/{ => maartenwut}/atom47/rev2/rev2.c | 0 keyboards/{ => maartenwut}/atom47/rev2/rev2.h | 0 keyboards/{ => maartenwut}/atom47/rev2/rules.mk | 0 keyboards/{ => maartenwut}/atom47/rev3/config.h | 0 keyboards/{ => maartenwut}/atom47/rev3/info.json | 0 keyboards/{ => maartenwut}/atom47/rev3/rev3.c | 0 keyboards/{ => maartenwut}/atom47/rev3/rev3.h | 0 keyboards/{ => maartenwut}/atom47/rev3/rules.mk | 0 keyboards/{ => maartenwut}/atom47/rules.mk | 0 keyboards/{ => maartenwut}/plain60/config.h | 0 keyboards/{ => maartenwut}/plain60/info.json | 0 keyboards/{ => maartenwut}/plain60/keymaps/RGB/config.h | 0 keyboards/{ => maartenwut}/plain60/keymaps/RGB/keymap.c | 0 keyboards/{ => maartenwut}/plain60/keymaps/RGB/rules.mk | 0 keyboards/{ => maartenwut}/plain60/keymaps/default/keymap.c | 0 keyboards/{ => maartenwut}/plain60/keymaps/yanfali/keymap.c | 0 keyboards/{ => maartenwut}/plain60/keymaps/yanfali/readme.md | 0 keyboards/{ => maartenwut}/plain60/keymaps/yanfali/rules.mk | 0 keyboards/{ => maartenwut}/plain60/plain60.c | 0 keyboards/{ => maartenwut}/plain60/plain60.h | 0 keyboards/{ => maartenwut}/plain60/readme.md | 0 keyboards/{ => maartenwut}/plain60/rules.mk | 0 keyboards/{ => maartenwut}/ta65/config.h | 0 keyboards/{ => maartenwut}/ta65/info.json | 0 keyboards/{ => maartenwut}/ta65/keymaps/default/keymap.c | 0 keyboards/{ => maartenwut}/ta65/keymaps/default_ansi/keymap.c | 0 .../{ => maartenwut}/ta65/keymaps/default_ansi_tsangan/keymap.c | 0 keyboards/{ => maartenwut}/ta65/keymaps/default_iso/keymap.c | 0 .../{ => maartenwut}/ta65/keymaps/default_iso_tsangan/keymap.c | 0 keyboards/{ => maartenwut}/ta65/keymaps/maartenwut/config.h | 0 keyboards/{ => maartenwut}/ta65/keymaps/maartenwut/keymap.c | 0 keyboards/{ => maartenwut}/ta65/readme.md | 0 keyboards/{ => maartenwut}/ta65/rules.mk | 0 keyboards/{ => maartenwut}/ta65/ta65.c | 0 keyboards/{ => maartenwut}/ta65/ta65.h | 0 keyboards/{ => maartenwut}/wasdat/config.h | 0 keyboards/{ => maartenwut}/wasdat/info.json | 0 keyboards/{ => maartenwut}/wasdat/keymaps/default/keymap.c | 0 keyboards/{ => maartenwut}/wasdat/keymaps/default/readme.md | 0 keyboards/{ => maartenwut}/wasdat/keymaps/default_iso/keymap.c | 0 keyboards/{ => maartenwut}/wasdat/keymaps/default_iso/readme.md | 0 keyboards/{ => maartenwut}/wasdat/keymaps/konstantin/config.h | 0 keyboards/{ => maartenwut}/wasdat/keymaps/konstantin/keymap.c | 0 keyboards/{ => maartenwut}/wasdat/keymaps/konstantin/rules.mk | 0 keyboards/{ => maartenwut}/wasdat/matrix.c | 0 keyboards/{ => maartenwut}/wasdat/readme.md | 0 keyboards/{ => maartenwut}/wasdat/rules.mk | 0 keyboards/{ => maartenwut}/wasdat/wasdat.c | 0 keyboards/{ => maartenwut}/wasdat/wasdat.h | 0 59 files changed, 0 insertions(+), 0 deletions(-) rename keyboards/{ => maartenwut}/atom47/keymaps/LEdiodes/keymap.c (100%) rename keyboards/{ => maartenwut}/atom47/keymaps/LEdiodes/rules.mk (100%) rename keyboards/{ => maartenwut}/atom47/keymaps/default/keymap.c (100%) rename keyboards/{ => maartenwut}/atom47/keymaps/default/readme.md (100%) rename keyboards/{ => maartenwut}/atom47/keymaps/maartenwut/keymap.c (100%) rename keyboards/{ => maartenwut}/atom47/keymaps/maartenwut/readme.md (100%) rename keyboards/{ => maartenwut}/atom47/readme.md (100%) rename keyboards/{ => maartenwut}/atom47/rev2/config.h (100%) rename keyboards/{ => maartenwut}/atom47/rev2/info.json (100%) rename keyboards/{ => maartenwut}/atom47/rev2/readme.md (100%) rename keyboards/{ => maartenwut}/atom47/rev2/rev2.c (100%) rename keyboards/{ => maartenwut}/atom47/rev2/rev2.h (100%) rename keyboards/{ => maartenwut}/atom47/rev2/rules.mk (100%) rename keyboards/{ => maartenwut}/atom47/rev3/config.h (100%) rename keyboards/{ => maartenwut}/atom47/rev3/info.json (100%) rename keyboards/{ => maartenwut}/atom47/rev3/rev3.c (100%) rename keyboards/{ => maartenwut}/atom47/rev3/rev3.h (100%) rename keyboards/{ => maartenwut}/atom47/rev3/rules.mk (100%) rename keyboards/{ => maartenwut}/atom47/rules.mk (100%) rename keyboards/{ => maartenwut}/plain60/config.h (100%) rename keyboards/{ => maartenwut}/plain60/info.json (100%) rename keyboards/{ => maartenwut}/plain60/keymaps/RGB/config.h (100%) rename keyboards/{ => maartenwut}/plain60/keymaps/RGB/keymap.c (100%) rename keyboards/{ => maartenwut}/plain60/keymaps/RGB/rules.mk (100%) rename keyboards/{ => maartenwut}/plain60/keymaps/default/keymap.c (100%) rename keyboards/{ => maartenwut}/plain60/keymaps/yanfali/keymap.c (100%) rename keyboards/{ => maartenwut}/plain60/keymaps/yanfali/readme.md (100%) rename keyboards/{ => maartenwut}/plain60/keymaps/yanfali/rules.mk (100%) rename keyboards/{ => maartenwut}/plain60/plain60.c (100%) rename keyboards/{ => maartenwut}/plain60/plain60.h (100%) rename keyboards/{ => maartenwut}/plain60/readme.md (100%) rename keyboards/{ => maartenwut}/plain60/rules.mk (100%) rename keyboards/{ => maartenwut}/ta65/config.h (100%) rename keyboards/{ => maartenwut}/ta65/info.json (100%) rename keyboards/{ => maartenwut}/ta65/keymaps/default/keymap.c (100%) rename keyboards/{ => maartenwut}/ta65/keymaps/default_ansi/keymap.c (100%) rename keyboards/{ => maartenwut}/ta65/keymaps/default_ansi_tsangan/keymap.c (100%) rename keyboards/{ => maartenwut}/ta65/keymaps/default_iso/keymap.c (100%) rename keyboards/{ => maartenwut}/ta65/keymaps/default_iso_tsangan/keymap.c (100%) rename keyboards/{ => maartenwut}/ta65/keymaps/maartenwut/config.h (100%) rename keyboards/{ => maartenwut}/ta65/keymaps/maartenwut/keymap.c (100%) rename keyboards/{ => maartenwut}/ta65/readme.md (100%) rename keyboards/{ => maartenwut}/ta65/rules.mk (100%) rename keyboards/{ => maartenwut}/ta65/ta65.c (100%) rename keyboards/{ => maartenwut}/ta65/ta65.h (100%) rename keyboards/{ => maartenwut}/wasdat/config.h (100%) rename keyboards/{ => maartenwut}/wasdat/info.json (100%) rename keyboards/{ => maartenwut}/wasdat/keymaps/default/keymap.c (100%) rename keyboards/{ => maartenwut}/wasdat/keymaps/default/readme.md (100%) rename keyboards/{ => maartenwut}/wasdat/keymaps/default_iso/keymap.c (100%) rename keyboards/{ => maartenwut}/wasdat/keymaps/default_iso/readme.md (100%) rename keyboards/{ => maartenwut}/wasdat/keymaps/konstantin/config.h (100%) rename keyboards/{ => maartenwut}/wasdat/keymaps/konstantin/keymap.c (100%) rename keyboards/{ => maartenwut}/wasdat/keymaps/konstantin/rules.mk (100%) rename keyboards/{ => maartenwut}/wasdat/matrix.c (100%) rename keyboards/{ => maartenwut}/wasdat/readme.md (100%) rename keyboards/{ => maartenwut}/wasdat/rules.mk (100%) rename keyboards/{ => maartenwut}/wasdat/wasdat.c (100%) rename keyboards/{ => maartenwut}/wasdat/wasdat.h (100%) diff --git a/keyboards/atom47/keymaps/LEdiodes/keymap.c b/keyboards/maartenwut/atom47/keymaps/LEdiodes/keymap.c similarity index 100% rename from keyboards/atom47/keymaps/LEdiodes/keymap.c rename to keyboards/maartenwut/atom47/keymaps/LEdiodes/keymap.c diff --git a/keyboards/atom47/keymaps/LEdiodes/rules.mk b/keyboards/maartenwut/atom47/keymaps/LEdiodes/rules.mk similarity index 100% rename from keyboards/atom47/keymaps/LEdiodes/rules.mk rename to keyboards/maartenwut/atom47/keymaps/LEdiodes/rules.mk diff --git a/keyboards/atom47/keymaps/default/keymap.c b/keyboards/maartenwut/atom47/keymaps/default/keymap.c similarity index 100% rename from keyboards/atom47/keymaps/default/keymap.c rename to keyboards/maartenwut/atom47/keymaps/default/keymap.c diff --git a/keyboards/atom47/keymaps/default/readme.md b/keyboards/maartenwut/atom47/keymaps/default/readme.md similarity index 100% rename from keyboards/atom47/keymaps/default/readme.md rename to keyboards/maartenwut/atom47/keymaps/default/readme.md diff --git a/keyboards/atom47/keymaps/maartenwut/keymap.c b/keyboards/maartenwut/atom47/keymaps/maartenwut/keymap.c similarity index 100% rename from keyboards/atom47/keymaps/maartenwut/keymap.c rename to keyboards/maartenwut/atom47/keymaps/maartenwut/keymap.c diff --git a/keyboards/atom47/keymaps/maartenwut/readme.md b/keyboards/maartenwut/atom47/keymaps/maartenwut/readme.md similarity index 100% rename from keyboards/atom47/keymaps/maartenwut/readme.md rename to keyboards/maartenwut/atom47/keymaps/maartenwut/readme.md diff --git a/keyboards/atom47/readme.md b/keyboards/maartenwut/atom47/readme.md similarity index 100% rename from keyboards/atom47/readme.md rename to keyboards/maartenwut/atom47/readme.md diff --git a/keyboards/atom47/rev2/config.h b/keyboards/maartenwut/atom47/rev2/config.h similarity index 100% rename from keyboards/atom47/rev2/config.h rename to keyboards/maartenwut/atom47/rev2/config.h diff --git a/keyboards/atom47/rev2/info.json b/keyboards/maartenwut/atom47/rev2/info.json similarity index 100% rename from keyboards/atom47/rev2/info.json rename to keyboards/maartenwut/atom47/rev2/info.json diff --git a/keyboards/atom47/rev2/readme.md b/keyboards/maartenwut/atom47/rev2/readme.md similarity index 100% rename from keyboards/atom47/rev2/readme.md rename to keyboards/maartenwut/atom47/rev2/readme.md diff --git a/keyboards/atom47/rev2/rev2.c b/keyboards/maartenwut/atom47/rev2/rev2.c similarity index 100% rename from keyboards/atom47/rev2/rev2.c rename to keyboards/maartenwut/atom47/rev2/rev2.c diff --git a/keyboards/atom47/rev2/rev2.h b/keyboards/maartenwut/atom47/rev2/rev2.h similarity index 100% rename from keyboards/atom47/rev2/rev2.h rename to keyboards/maartenwut/atom47/rev2/rev2.h diff --git a/keyboards/atom47/rev2/rules.mk b/keyboards/maartenwut/atom47/rev2/rules.mk similarity index 100% rename from keyboards/atom47/rev2/rules.mk rename to keyboards/maartenwut/atom47/rev2/rules.mk diff --git a/keyboards/atom47/rev3/config.h b/keyboards/maartenwut/atom47/rev3/config.h similarity index 100% rename from keyboards/atom47/rev3/config.h rename to keyboards/maartenwut/atom47/rev3/config.h diff --git a/keyboards/atom47/rev3/info.json b/keyboards/maartenwut/atom47/rev3/info.json similarity index 100% rename from keyboards/atom47/rev3/info.json rename to keyboards/maartenwut/atom47/rev3/info.json diff --git a/keyboards/atom47/rev3/rev3.c b/keyboards/maartenwut/atom47/rev3/rev3.c similarity index 100% rename from keyboards/atom47/rev3/rev3.c rename to keyboards/maartenwut/atom47/rev3/rev3.c diff --git a/keyboards/atom47/rev3/rev3.h b/keyboards/maartenwut/atom47/rev3/rev3.h similarity index 100% rename from keyboards/atom47/rev3/rev3.h rename to keyboards/maartenwut/atom47/rev3/rev3.h diff --git a/keyboards/atom47/rev3/rules.mk b/keyboards/maartenwut/atom47/rev3/rules.mk similarity index 100% rename from keyboards/atom47/rev3/rules.mk rename to keyboards/maartenwut/atom47/rev3/rules.mk diff --git a/keyboards/atom47/rules.mk b/keyboards/maartenwut/atom47/rules.mk similarity index 100% rename from keyboards/atom47/rules.mk rename to keyboards/maartenwut/atom47/rules.mk diff --git a/keyboards/plain60/config.h b/keyboards/maartenwut/plain60/config.h similarity index 100% rename from keyboards/plain60/config.h rename to keyboards/maartenwut/plain60/config.h diff --git a/keyboards/plain60/info.json b/keyboards/maartenwut/plain60/info.json similarity index 100% rename from keyboards/plain60/info.json rename to keyboards/maartenwut/plain60/info.json diff --git a/keyboards/plain60/keymaps/RGB/config.h b/keyboards/maartenwut/plain60/keymaps/RGB/config.h similarity index 100% rename from keyboards/plain60/keymaps/RGB/config.h rename to keyboards/maartenwut/plain60/keymaps/RGB/config.h diff --git a/keyboards/plain60/keymaps/RGB/keymap.c b/keyboards/maartenwut/plain60/keymaps/RGB/keymap.c similarity index 100% rename from keyboards/plain60/keymaps/RGB/keymap.c rename to keyboards/maartenwut/plain60/keymaps/RGB/keymap.c diff --git a/keyboards/plain60/keymaps/RGB/rules.mk b/keyboards/maartenwut/plain60/keymaps/RGB/rules.mk similarity index 100% rename from keyboards/plain60/keymaps/RGB/rules.mk rename to keyboards/maartenwut/plain60/keymaps/RGB/rules.mk diff --git a/keyboards/plain60/keymaps/default/keymap.c b/keyboards/maartenwut/plain60/keymaps/default/keymap.c similarity index 100% rename from keyboards/plain60/keymaps/default/keymap.c rename to keyboards/maartenwut/plain60/keymaps/default/keymap.c diff --git a/keyboards/plain60/keymaps/yanfali/keymap.c b/keyboards/maartenwut/plain60/keymaps/yanfali/keymap.c similarity index 100% rename from keyboards/plain60/keymaps/yanfali/keymap.c rename to keyboards/maartenwut/plain60/keymaps/yanfali/keymap.c diff --git a/keyboards/plain60/keymaps/yanfali/readme.md b/keyboards/maartenwut/plain60/keymaps/yanfali/readme.md similarity index 100% rename from keyboards/plain60/keymaps/yanfali/readme.md rename to keyboards/maartenwut/plain60/keymaps/yanfali/readme.md diff --git a/keyboards/plain60/keymaps/yanfali/rules.mk b/keyboards/maartenwut/plain60/keymaps/yanfali/rules.mk similarity index 100% rename from keyboards/plain60/keymaps/yanfali/rules.mk rename to keyboards/maartenwut/plain60/keymaps/yanfali/rules.mk diff --git a/keyboards/plain60/plain60.c b/keyboards/maartenwut/plain60/plain60.c similarity index 100% rename from keyboards/plain60/plain60.c rename to keyboards/maartenwut/plain60/plain60.c diff --git a/keyboards/plain60/plain60.h b/keyboards/maartenwut/plain60/plain60.h similarity index 100% rename from keyboards/plain60/plain60.h rename to keyboards/maartenwut/plain60/plain60.h diff --git a/keyboards/plain60/readme.md b/keyboards/maartenwut/plain60/readme.md similarity index 100% rename from keyboards/plain60/readme.md rename to keyboards/maartenwut/plain60/readme.md diff --git a/keyboards/plain60/rules.mk b/keyboards/maartenwut/plain60/rules.mk similarity index 100% rename from keyboards/plain60/rules.mk rename to keyboards/maartenwut/plain60/rules.mk diff --git a/keyboards/ta65/config.h b/keyboards/maartenwut/ta65/config.h similarity index 100% rename from keyboards/ta65/config.h rename to keyboards/maartenwut/ta65/config.h diff --git a/keyboards/ta65/info.json b/keyboards/maartenwut/ta65/info.json similarity index 100% rename from keyboards/ta65/info.json rename to keyboards/maartenwut/ta65/info.json diff --git a/keyboards/ta65/keymaps/default/keymap.c b/keyboards/maartenwut/ta65/keymaps/default/keymap.c similarity index 100% rename from keyboards/ta65/keymaps/default/keymap.c rename to keyboards/maartenwut/ta65/keymaps/default/keymap.c diff --git a/keyboards/ta65/keymaps/default_ansi/keymap.c b/keyboards/maartenwut/ta65/keymaps/default_ansi/keymap.c similarity index 100% rename from keyboards/ta65/keymaps/default_ansi/keymap.c rename to keyboards/maartenwut/ta65/keymaps/default_ansi/keymap.c diff --git a/keyboards/ta65/keymaps/default_ansi_tsangan/keymap.c b/keyboards/maartenwut/ta65/keymaps/default_ansi_tsangan/keymap.c similarity index 100% rename from keyboards/ta65/keymaps/default_ansi_tsangan/keymap.c rename to keyboards/maartenwut/ta65/keymaps/default_ansi_tsangan/keymap.c diff --git a/keyboards/ta65/keymaps/default_iso/keymap.c b/keyboards/maartenwut/ta65/keymaps/default_iso/keymap.c similarity index 100% rename from keyboards/ta65/keymaps/default_iso/keymap.c rename to keyboards/maartenwut/ta65/keymaps/default_iso/keymap.c diff --git a/keyboards/ta65/keymaps/default_iso_tsangan/keymap.c b/keyboards/maartenwut/ta65/keymaps/default_iso_tsangan/keymap.c similarity index 100% rename from keyboards/ta65/keymaps/default_iso_tsangan/keymap.c rename to keyboards/maartenwut/ta65/keymaps/default_iso_tsangan/keymap.c diff --git a/keyboards/ta65/keymaps/maartenwut/config.h b/keyboards/maartenwut/ta65/keymaps/maartenwut/config.h similarity index 100% rename from keyboards/ta65/keymaps/maartenwut/config.h rename to keyboards/maartenwut/ta65/keymaps/maartenwut/config.h diff --git a/keyboards/ta65/keymaps/maartenwut/keymap.c b/keyboards/maartenwut/ta65/keymaps/maartenwut/keymap.c similarity index 100% rename from keyboards/ta65/keymaps/maartenwut/keymap.c rename to keyboards/maartenwut/ta65/keymaps/maartenwut/keymap.c diff --git a/keyboards/ta65/readme.md b/keyboards/maartenwut/ta65/readme.md similarity index 100% rename from keyboards/ta65/readme.md rename to keyboards/maartenwut/ta65/readme.md diff --git a/keyboards/ta65/rules.mk b/keyboards/maartenwut/ta65/rules.mk similarity index 100% rename from keyboards/ta65/rules.mk rename to keyboards/maartenwut/ta65/rules.mk diff --git a/keyboards/ta65/ta65.c b/keyboards/maartenwut/ta65/ta65.c similarity index 100% rename from keyboards/ta65/ta65.c rename to keyboards/maartenwut/ta65/ta65.c diff --git a/keyboards/ta65/ta65.h b/keyboards/maartenwut/ta65/ta65.h similarity index 100% rename from keyboards/ta65/ta65.h rename to keyboards/maartenwut/ta65/ta65.h diff --git a/keyboards/wasdat/config.h b/keyboards/maartenwut/wasdat/config.h similarity index 100% rename from keyboards/wasdat/config.h rename to keyboards/maartenwut/wasdat/config.h diff --git a/keyboards/wasdat/info.json b/keyboards/maartenwut/wasdat/info.json similarity index 100% rename from keyboards/wasdat/info.json rename to keyboards/maartenwut/wasdat/info.json diff --git a/keyboards/wasdat/keymaps/default/keymap.c b/keyboards/maartenwut/wasdat/keymaps/default/keymap.c similarity index 100% rename from keyboards/wasdat/keymaps/default/keymap.c rename to keyboards/maartenwut/wasdat/keymaps/default/keymap.c diff --git a/keyboards/wasdat/keymaps/default/readme.md b/keyboards/maartenwut/wasdat/keymaps/default/readme.md similarity index 100% rename from keyboards/wasdat/keymaps/default/readme.md rename to keyboards/maartenwut/wasdat/keymaps/default/readme.md diff --git a/keyboards/wasdat/keymaps/default_iso/keymap.c b/keyboards/maartenwut/wasdat/keymaps/default_iso/keymap.c similarity index 100% rename from keyboards/wasdat/keymaps/default_iso/keymap.c rename to keyboards/maartenwut/wasdat/keymaps/default_iso/keymap.c diff --git a/keyboards/wasdat/keymaps/default_iso/readme.md b/keyboards/maartenwut/wasdat/keymaps/default_iso/readme.md similarity index 100% rename from keyboards/wasdat/keymaps/default_iso/readme.md rename to keyboards/maartenwut/wasdat/keymaps/default_iso/readme.md diff --git a/keyboards/wasdat/keymaps/konstantin/config.h b/keyboards/maartenwut/wasdat/keymaps/konstantin/config.h similarity index 100% rename from keyboards/wasdat/keymaps/konstantin/config.h rename to keyboards/maartenwut/wasdat/keymaps/konstantin/config.h diff --git a/keyboards/wasdat/keymaps/konstantin/keymap.c b/keyboards/maartenwut/wasdat/keymaps/konstantin/keymap.c similarity index 100% rename from keyboards/wasdat/keymaps/konstantin/keymap.c rename to keyboards/maartenwut/wasdat/keymaps/konstantin/keymap.c diff --git a/keyboards/wasdat/keymaps/konstantin/rules.mk b/keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk similarity index 100% rename from keyboards/wasdat/keymaps/konstantin/rules.mk rename to keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk diff --git a/keyboards/wasdat/matrix.c b/keyboards/maartenwut/wasdat/matrix.c similarity index 100% rename from keyboards/wasdat/matrix.c rename to keyboards/maartenwut/wasdat/matrix.c diff --git a/keyboards/wasdat/readme.md b/keyboards/maartenwut/wasdat/readme.md similarity index 100% rename from keyboards/wasdat/readme.md rename to keyboards/maartenwut/wasdat/readme.md diff --git a/keyboards/wasdat/rules.mk b/keyboards/maartenwut/wasdat/rules.mk similarity index 100% rename from keyboards/wasdat/rules.mk rename to keyboards/maartenwut/wasdat/rules.mk diff --git a/keyboards/wasdat/wasdat.c b/keyboards/maartenwut/wasdat/wasdat.c similarity index 100% rename from keyboards/wasdat/wasdat.c rename to keyboards/maartenwut/wasdat/wasdat.c diff --git a/keyboards/wasdat/wasdat.h b/keyboards/maartenwut/wasdat/wasdat.h similarity index 100% rename from keyboards/wasdat/wasdat.h rename to keyboards/maartenwut/wasdat/wasdat.h From cacfaedb814df4fdf7c01d1f2da5130068f33c91 Mon Sep 17 00:00:00 2001 From: Sid Carter Date: Tue, 6 Aug 2019 11:33:56 -0400 Subject: [PATCH 098/115] new keymap for projectkb alice (#6491) * new keymap for projectkb alice * update documentation for resetting PCB * actually need a grave key more than a tilde * move DFU_ARGS to top level * cleanup unused keycodes and others * align with typical ergo layouts. move enter and keep function layer reachable --- .../alice/keymaps/madhatter/keymap.c | 43 +++++++++++++++++++ keyboards/projectkb/alice/readme.md | 9 +++- keyboards/projectkb/alice/rules.mk | 1 + 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 keyboards/projectkb/alice/keymaps/madhatter/keymap.c diff --git a/keyboards/projectkb/alice/keymaps/madhatter/keymap.c b/keyboards/projectkb/alice/keymaps/madhatter/keymap.c new file mode 100644 index 00000000000..32cf7e0ba76 --- /dev/null +++ b/keyboards/projectkb/alice/keymaps/madhatter/keymap.c @@ -0,0 +1,43 @@ +/* +Copyright 2019 Khader Syed + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +enum layer_names { + _QWERTY, + _FNM +}; + +#define FNM MO(_FNM) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = 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_DEL, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RALT, + KC_LCTL, KC_LALT, KC_ENT, KC_LCMD, KC_SPC, FNM, KC_RCTL + ), + + [_FNM] = LAYOUT_default( + RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, + RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_SAI, RGB_HUI, RGB_VAI, RGB_SAD, RGB_HUD, RGB_VAD, _______, _______, + RGB_RMOD, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, + _______, BL_INC, BL_DEC, BL_TOGG, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______ + ) +}; + diff --git a/keyboards/projectkb/alice/readme.md b/keyboards/projectkb/alice/readme.md index cc9f22685b0..583ddf59203 100644 --- a/keyboards/projectkb/alice/readme.md +++ b/keyboards/projectkb/alice/readme.md @@ -2,11 +2,18 @@ ProjectKeyboard Alice Keyboard Replacement PCB -Keyboard Maintainer: onefiftynine +Keyboard Maintainer: onefiftynine Hardware Supported: STM32F072CBT6 Make example for this keyboard (after setting up your build environment): make projectkb/alice:default +If you are flashing this keyboard/pcb for the first time: + + * Set the dip switch on the reverse of the PCB to 1 + * Hit the reset button and then do + * make projectkb/alice:default:dfu-util + * After flashing the keyboard successfully, you can reset the dip switch back to 0 + 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/projectkb/alice/rules.mk b/keyboards/projectkb/alice/rules.mk index cd366c76aa7..caebb88ae67 100644 --- a/keyboards/projectkb/alice/rules.mk +++ b/keyboards/projectkb/alice/rules.mk @@ -54,3 +54,4 @@ RGBLIGHT_ENABLE = yes # RAW_ENABLE = yes # DYNAMIC_KEYMAP_ENABLE = yes +DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave From 620fcf12e8a7e50274c76f77539484aee798d5dd Mon Sep 17 00:00:00 2001 From: coseyfannitutti <43188488+coseyfannitutti@users.noreply.github.com> Date: Tue, 6 Aug 2019 11:35:29 -0400 Subject: [PATCH 099/115] Update info.json - discipline (#6483) * Update info.json * Update readme.md * Update keyboards/coseyfannitutti/discipline/info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> --- keyboards/coseyfannitutti/discipline/info.json | 4 ++-- keyboards/coseyfannitutti/discipline/readme.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/coseyfannitutti/discipline/info.json b/keyboards/coseyfannitutti/discipline/info.json index 66203f09e03..522e8006789 100644 --- a/keyboards/coseyfannitutti/discipline/info.json +++ b/keyboards/coseyfannitutti/discipline/info.json @@ -11,10 +11,10 @@ "LAYOUT_65_ansi_2_right_mods": { "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":"~", "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":"Delete", "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":"PgUp", "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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "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":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Fn", "x":11.5, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] }, - "LAYOUT_wkl_2_right_mods": { + "LAYOUT_wkl_ansi_2_right_mods": { "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":"~", "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":"Delete", "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":"PgUp", "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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Fn", "x":11.5, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] }, - "LAYOUT_wkl_3_right_mods": { + "LAYOUT_wkl_ansi_3_right_mods": { "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":"~", "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":"Delete", "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":"PgUp", "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":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] } } diff --git a/keyboards/coseyfannitutti/discipline/readme.md b/keyboards/coseyfannitutti/discipline/readme.md index 1668387937e..d11f1724f65 100644 --- a/keyboards/coseyfannitutti/discipline/readme.md +++ b/keyboards/coseyfannitutti/discipline/readme.md @@ -10,6 +10,6 @@ Hardware Availability: [cftkb.com](http://www.cftkb.com), [GitHub](https://githu Make example for this keyboard (after setting up your build environment): - make coseyfannitutti/discipline:default:program + make coseyfannitutti/discipline: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 d967d3a6b586de13b94cce8c8bc45366a282b764 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 6 Aug 2019 09:15:48 -0700 Subject: [PATCH 100/115] Correct info.json data for Hnah40 handwired (#6489) --- keyboards/handwired/hnah40/info.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/keyboards/handwired/hnah40/info.json b/keyboards/handwired/hnah40/info.json index 6a577a5207e..f9664d22c93 100644 --- a/keyboards/handwired/hnah40/info.json +++ b/keyboards/handwired/hnah40/info.json @@ -39,7 +39,8 @@ {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":",", "x":8.75, "y":2}, - {"label":"Shift", "x":9.75, "y":2, "w":2.25}, + {"label":".", "x":9.75, "y":2}, + {"label":"Shift", "x":10.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Win", "x":1.25, "y":3, "w":1.5}, {"label":"Alt", "x":2.75, "y":3, "w":1.25}, @@ -51,4 +52,4 @@ ] } } -} \ No newline at end of file +} From e5831d79c044f394243cfdfe604b91837067b7d6 Mon Sep 17 00:00:00 2001 From: x1 Date: Wed, 7 Aug 2019 01:16:55 +0900 Subject: [PATCH 101/115] [Keyboard] Add kudox game keyboard (#6460) * Add configurations for Kudox Game Keyboard rev1. * Modified Kudox Game Keyboard readme and keymap. * Remove unnecessary codes. * Set BootLoader caterina. * Remove wrong settings on rules.mk. * Clean up config.h. * Modified MATRIX_ROWS on kudox_game/rev1/config.h. * Modified RGB_LED_NUM on kudox_game/rev1/config.h. --- keyboards/kudox_game/config.h | 27 ++++++ keyboards/kudox_game/info.json | 39 ++++++++ keyboards/kudox_game/keymaps/default/config.h | 18 ++++ keyboards/kudox_game/keymaps/default/keymap.c | 44 +++++++++ .../kudox_game/keymaps/default/readme.md | 1 + keyboards/kudox_game/keymaps/default/rules.mk | 0 keyboards/kudox_game/kudox_game.c | 16 ++++ keyboards/kudox_game/kudox_game.h | 23 +++++ keyboards/kudox_game/readme.md | 26 ++++++ keyboards/kudox_game/rev1/config.h | 91 +++++++++++++++++++ keyboards/kudox_game/rev1/rev1.c | 22 +++++ keyboards/kudox_game/rev1/rev1.h | 20 ++++ keyboards/kudox_game/rev1/rules.mk | 0 keyboards/kudox_game/rules.mk | 70 ++++++++++++++ 14 files changed, 397 insertions(+) create mode 100644 keyboards/kudox_game/config.h create mode 100644 keyboards/kudox_game/info.json create mode 100644 keyboards/kudox_game/keymaps/default/config.h create mode 100644 keyboards/kudox_game/keymaps/default/keymap.c create mode 100644 keyboards/kudox_game/keymaps/default/readme.md create mode 100644 keyboards/kudox_game/keymaps/default/rules.mk create mode 100644 keyboards/kudox_game/kudox_game.c create mode 100644 keyboards/kudox_game/kudox_game.h create mode 100644 keyboards/kudox_game/readme.md create mode 100644 keyboards/kudox_game/rev1/config.h create mode 100644 keyboards/kudox_game/rev1/rev1.c create mode 100644 keyboards/kudox_game/rev1/rev1.h create mode 100644 keyboards/kudox_game/rev1/rules.mk create mode 100644 keyboards/kudox_game/rules.mk diff --git a/keyboards/kudox_game/config.h b/keyboards/kudox_game/config.h new file mode 100644 index 00000000000..0b789c17681 --- /dev/null +++ b/keyboards/kudox_game/config.h @@ -0,0 +1,27 @@ +/* +Copyright 2019 Kumao Kobo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 USE_SERIAL + +/* Select hand configuration */ +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS diff --git a/keyboards/kudox_game/info.json b/keyboards/kudox_game/info.json new file mode 100644 index 00000000000..42932601a9a --- /dev/null +++ b/keyboards/kudox_game/info.json @@ -0,0 +1,39 @@ +{ + "keyboard_name": "Kudox Game Keyboard", + "url": "", + "maintainer": "Kumao Kobo", + "width": 7.5, + "height": 6.75, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1", "x":1.5, "y":0}, + {"label":"2", "x":2.5, "y":0}, + {"label":"3", "x":3.5, "y":0}, + {"label":"4", "x":4.5, "y":0}, + {"label":"5", "x":5.5, "y":0}, + {"label":"Q", "x":1.75, "y":1}, + {"label":"W", "x":2.75, "y":1}, + {"label":"E", "x":3.75, "y":1}, + {"label":"R", "x":4.75, "y":1}, + {"label":"T", "x":5.75, "y":1}, + {"label":"GUI", "x":0, "y":2}, + {"label":"Alt", "x":1, "y":2}, + {"label":"A", "x":2, "y":2}, + {"label":"S", "x":3, "y":2}, + {"label":"D", "x":4, "y":2}, + {"label":"F", "x":5.25, "y":2}, + {"label":"G", "x":6.25, "y":2}, + {"label":"Shift", "x":0, "y":3, "w":1.5}, + {"label":"Z", "x":1.5, "y":3}, + {"label":"X", "x":3.75, "y":3}, + {"label":"C", "x":4.75, "y":3}, + {"label":"V", "x":5.75, "y":3}, + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Layer", "x":5.5, "y":4.25, "h":1.5}, + {"x":6.5, "y":4.75, "h":2} + ] + } + } +} diff --git a/keyboards/kudox_game/keymaps/default/config.h b/keyboards/kudox_game/keymaps/default/config.h new file mode 100644 index 00000000000..5cbe7609a3f --- /dev/null +++ b/keyboards/kudox_game/keymaps/default/config.h @@ -0,0 +1,18 @@ +/* +Copyright 2019 Kumao Kobo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once diff --git a/keyboards/kudox_game/keymaps/default/keymap.c b/keyboards/kudox_game/keymaps/default/keymap.c new file mode 100644 index 00000000000..cf6b1dfc505 --- /dev/null +++ b/keyboards/kudox_game/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +#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 _QWERTY 0 +#define _SYMB 1 + +// Shortcut to make keymap more readable +#define SYM_L MO(_SYMB) +#define KC_ALEN LALT_T(KC_ENT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , + //└────────┼────────┼────────┼────────┼────────┼────────┤ + KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , + //┌────────┼────────┼────────┼────────┼────────┼────────┼────────┐ + KC_LGUI ,KC_ALEN ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ + KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V , + //├────────┼────────┘ └────────┴────────┼────────┼────────┐ + KC_LCTL ,SYM_L ,KC_SPC + //└────────┘ └────────┴────────┘ + ), + + [_SYMB] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______ ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 , + //└────────┼────────┼────────┼────────┼────────┼────────┤ + KC_GRV ,KC_UP ,KC_PIPE ,KC_LCBR ,KC_RCBR , + //┌────────┼────────┼────────┼────────┼────────┼────────┼────────┐ + _______ ,_______ ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_LBRC ,KC_RBRC , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ + _______ ,KC_BSPC ,KC_CIRC ,KC_LPRN ,KC_RPRN , + //├────────┼────────┘ └────────┴────────┼────────┼────────┐ + _______ ,_______ ,_______ + //└────────┘ └────────┴────────┘ + ) + +}; diff --git a/keyboards/kudox_game/keymaps/default/readme.md b/keyboards/kudox_game/keymaps/default/readme.md new file mode 100644 index 00000000000..0fbdb86a940 --- /dev/null +++ b/keyboards/kudox_game/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Kudox Game Keyboard diff --git a/keyboards/kudox_game/keymaps/default/rules.mk b/keyboards/kudox_game/keymaps/default/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/kudox_game/kudox_game.c b/keyboards/kudox_game/kudox_game.c new file mode 100644 index 00000000000..cf053afd060 --- /dev/null +++ b/keyboards/kudox_game/kudox_game.c @@ -0,0 +1,16 @@ +/* Copyright 2019 Kumao Kobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "kudox_game.h" diff --git a/keyboards/kudox_game/kudox_game.h b/keyboards/kudox_game/kudox_game.h new file mode 100644 index 00000000000..1da820fc270 --- /dev/null +++ b/keyboards/kudox_game/kudox_game.h @@ -0,0 +1,23 @@ +/* Copyright 2019 Kumao Kobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#ifdef KEYBOARD_kudox_game_rev1 + #include "rev1.h" +#endif + +#include "quantum.h" diff --git a/keyboards/kudox_game/readme.md b/keyboards/kudox_game/readme.md new file mode 100644 index 00000000000..5ad867790b0 --- /dev/null +++ b/keyboards/kudox_game/readme.md @@ -0,0 +1,26 @@ +# The Kudox Game keyboard + +

+Kudox logo +

+ +

+Kudox Game PCB rev1.0 +

+ +- Keyboard Maintainer: [Kumao Kobo](https://github.com/kumaokobo) +- Hardware Supported: Kudox Game PCB rev1.0 w/ Pro Micro + +Make example for this keyboard (after setting up your build environment): + +```sh +make kudox_game/rev1:default +``` + +Example of flashing this keyboard: + +```sh +make kudox_game/rev1:default:avrdude +``` + +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/kudox_game/rev1/config.h b/keyboards/kudox_game/rev1/config.h new file mode 100644 index 00000000000..e7f7ad1b626 --- /dev/null +++ b/keyboards/kudox_game/rev1/config.h @@ -0,0 +1,91 @@ +/* +Copyright 2019 Kumao Kobo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0x9696 +#define DEVICE_VER 0x0100 +#define MANUFACTURER Kumao Kobo +#define PRODUCT The Kudox Game Keyboard +#define DESCRIPTION Custom keyboard for game + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 7 + +// wiring of each half +#define MATRIX_ROW_PINS { D4, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 } +// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5} //uncomment this line and comment line above if you need to reverse left-to-right key order + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* 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 + +/* 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 D3 + +#undef RGBLED_NUM +#define RGBLED_NUM 7 // Number of LEDs +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +/* + * 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 MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 diff --git a/keyboards/kudox_game/rev1/rev1.c b/keyboards/kudox_game/rev1/rev1.c new file mode 100644 index 00000000000..8f1b8b2b681 --- /dev/null +++ b/keyboards/kudox_game/rev1/rev1.c @@ -0,0 +1,22 @@ +#include "kudox_game.h" + + +#ifdef SSD1306OLED +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); +} +#endif + +void matrix_init_kb(void) { + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; diff --git a/keyboards/kudox_game/rev1/rev1.h b/keyboards/kudox_game/rev1/rev1.h new file mode 100644 index 00000000000..e630a51658d --- /dev/null +++ b/keyboards/kudox_game/rev1/rev1.h @@ -0,0 +1,20 @@ +#pragma once + +#include "../kudox_game.h" + +#include "quantum.h" + +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, \ + k11, k12, k13, k14, k15, \ + k20, k21, k22, k23, k24, k25, k26, \ + k30, k31, k34, k35, k36, \ + k40, k45, k46 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, KC_NO }, \ + { KC_NO, k11, k12, k13, k14, k15, KC_NO }, \ + { k20, k21, k22, k23, k24, k25, k26 }, \ + { k30, k31, KC_NO, KC_NO, k34, k35, k36 }, \ + { k40, KC_NO, KC_NO, KC_NO, KC_NO, k45, k46 } \ +} diff --git a/keyboards/kudox_game/rev1/rules.mk b/keyboards/kudox_game/rev1/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/kudox_game/rules.mk b/keyboards/kudox_game/rules.mk new file mode 100644 index 00000000000..d564eddf902 --- /dev/null +++ b/keyboards/kudox_game/rules.mk @@ -0,0 +1,70 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +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 on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. + +DEFAULT_FOLDER = kudox_game/rev1 From 9587fac72a749e07bcdede40f8059df77a04a3e4 Mon Sep 17 00:00:00 2001 From: x1 Date: Wed, 7 Aug 2019 02:14:40 +0900 Subject: [PATCH 102/115] [Keyboard] Add kudox keyboard (#6459) * Add Kudox Keyboard profile. * Modified info.json and image link on readme. * Remove unnecessary codes. * Set BootLoader caterina. * Remove duplicated settings on rules.mk. * Clean up config.h. * Modified include header path. * Modified info.json to adjust 4th row keys y position. * Separate default keymap and my keymap. * Modified RGB_LED_* settings on kudox/rev1/config.h. --- keyboards/kudox/config.h | 27 +++++++ keyboards/kudox/info.json | 77 +++++++++++++++++++ keyboards/kudox/keymaps/default/config.h | 17 +++++ keyboards/kudox/keymaps/default/keymap.c | 49 ++++++++++++ keyboards/kudox/keymaps/default/readme.md | 1 + keyboards/kudox/keymaps/default/rules.mk | 0 keyboards/kudox/keymaps/x1/config.h | 17 +++++ keyboards/kudox/keymaps/x1/keymap.c | 73 ++++++++++++++++++ keyboards/kudox/keymaps/x1/readme.md | 1 + keyboards/kudox/keymaps/x1/rules.mk | 0 keyboards/kudox/kudox.c | 16 ++++ keyboards/kudox/kudox.h | 23 ++++++ keyboards/kudox/readme.md | 26 +++++++ keyboards/kudox/rev1/config.h | 91 +++++++++++++++++++++++ keyboards/kudox/rev1/rev1.c | 22 ++++++ keyboards/kudox/rev1/rev1.h | 24 ++++++ keyboards/kudox/rev1/rules.mk | 0 keyboards/kudox/rules.mk | 73 ++++++++++++++++++ 18 files changed, 537 insertions(+) create mode 100644 keyboards/kudox/config.h create mode 100644 keyboards/kudox/info.json create mode 100644 keyboards/kudox/keymaps/default/config.h create mode 100644 keyboards/kudox/keymaps/default/keymap.c create mode 100644 keyboards/kudox/keymaps/default/readme.md create mode 100644 keyboards/kudox/keymaps/default/rules.mk create mode 100644 keyboards/kudox/keymaps/x1/config.h create mode 100644 keyboards/kudox/keymaps/x1/keymap.c create mode 100644 keyboards/kudox/keymaps/x1/readme.md create mode 100644 keyboards/kudox/keymaps/x1/rules.mk create mode 100644 keyboards/kudox/kudox.c create mode 100644 keyboards/kudox/kudox.h create mode 100644 keyboards/kudox/readme.md create mode 100644 keyboards/kudox/rev1/config.h create mode 100644 keyboards/kudox/rev1/rev1.c create mode 100644 keyboards/kudox/rev1/rev1.h create mode 100644 keyboards/kudox/rev1/rules.mk create mode 100644 keyboards/kudox/rules.mk diff --git a/keyboards/kudox/config.h b/keyboards/kudox/config.h new file mode 100644 index 00000000000..36c8f68b90f --- /dev/null +++ b/keyboards/kudox/config.h @@ -0,0 +1,27 @@ +/* Copyright 2019 Kumao Kobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 USE_SERIAL + +/* Select hand configuration */ +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + diff --git a/keyboards/kudox/info.json b/keyboards/kudox/info.json new file mode 100644 index 00000000000..842fb655c6a --- /dev/null +++ b/keyboards/kudox/info.json @@ -0,0 +1,77 @@ +{ + "keyboard_name": "Kudox Keyboard", + "url": "", + "maintainer": "Kumao Kobo", + "width": 17, + "height": 6, + "layouts": { + "LAYOUT": { + "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":11, "y":0}, + {"label":"7", "x":12, "y":0}, + {"label":"8", "x":13, "y":0}, + {"label":"9", "x":14, "y":0}, + {"label":"0", "x":15, "y":0}, + {"label":"\u2190", "x":16, "y":0}, + {"label":"Tab", "x":0, "y":1, "w":1.25}, + {"label":"Q", "x":1.25, "y":1}, + {"label":"W", "x":2.25, "y":1}, + {"label":"E", "x":3.25, "y":1}, + {"label":"R", "x":4.25, "y":1}, + {"label":"T", "x":5.25, "y":1}, + {"label":"LANG2", "x":6.25, "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, "w":1.25}, + {"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":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":"Enter", "x":15.25, "y":2, "w":1.75}, + {"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":"LANG1", "x":9.75, "y":3}, + {"label":"N", "x":10.75, "y":3}, + {"label":"M", "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":"Alt", "x":0, "y":4, "w":1.25}, + {"label":"'", "x":1.25, "y":4}, + {"label":"-", "x":2.25, "y":4}, + {"label":"=", "x":3.25, "y":4}, + {"label":"layer", "x":4.25, "y":4.33, "w":1.25}, + {"label":"GUI", "x":5.5, "y":4.67}, + {"label":"Space", "x":6.5, "y":5}, + {"label":"Enter", "x":9.5, "y":5}, + {"label":"Del", "x":10.5, "y":4.67}, + {"label":"layer", "x":11.5, "y":4.33, "w":1.25}, + {"label":"\u2190", "x":12.75, "y":4}, + {"label":"\u2193", "x":13.75, "y":4}, + {"label":"\u2191", "x":14.75, "y":4}, + {"label":"\u2192", "x":15.75, "y":4, "w":1.25} + ] + } + } +} diff --git a/keyboards/kudox/keymaps/default/config.h b/keyboards/kudox/keymaps/default/config.h new file mode 100644 index 00000000000..f5bf85cca0a --- /dev/null +++ b/keyboards/kudox/keymaps/default/config.h @@ -0,0 +1,17 @@ +/* Copyright 2019 Kumao Kobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once diff --git a/keyboards/kudox/keymaps/default/keymap.c b/keyboards/kudox/keymaps/default/keymap.c new file mode 100644 index 00000000000..9078b65c1eb --- /dev/null +++ b/keyboards/kudox/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +#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 _QWERTY 0 +#define _SYMB 1 + +// Shortcut to make keymap more readable +#define SYM_L MO(_SYMB) + +#define KC_ALES LALT_T(KC_ESC) + +#define KC_RGENT MT(KC_RGUI, KC_ENT) + +#define KC_L1SYM LT(_SYMB, KC_LANG1) +#define KC_L2SYM LT(_SYMB, KC_LANG2) + +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_BSPC , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_L2SYM, KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_SLSH ,KC_BSLS , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┘ └────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LCTL ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_ENT , + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , KC_L1SYM,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_RSFT , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┴────────┼────────┼────────┼────────┤ + KC_ALES ,KC_QUOT ,KC_MINS ,KC_EQL ,KC_ENT ,KC_LGUI ,KC_SPC , KC_RGENT,KC_DEL ,SYM_L ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT + //└────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), +//KC_EQL + [_SYMB] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_GRV ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,_______ , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,KC_DQUO ,KC_QUOT ,KC_GRV ,KC_ASTR ,KC_PLUS ,KC_EQL , KC_LPRN ,KC_RPRN ,KC_PIPE ,KC_ASTR ,KC_TILD ,KC_CIRC ,KC_JYEN , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┘ └────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,KC_AT ,KC_COLN ,KC_GRV ,_______ ,KC_MINS , KC_LBRC ,KC_RBRC ,KC_DOT ,KC_SLSH ,KC_MINS ,_______ , + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_DOT ,KC_SLSH , _______ ,KC_LCBR ,KC_RCBR ,KC_DOT ,KC_SLSH ,_______ , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┴────────┼────────┼────────┼────────┤ + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,KC_LT ,KC_UNDS ,KC_CIRC ,KC_GT + //└────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ) +}; diff --git a/keyboards/kudox/keymaps/default/readme.md b/keyboards/kudox/keymaps/default/readme.md new file mode 100644 index 00000000000..98d8b2a054a --- /dev/null +++ b/keyboards/kudox/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Kudox Keyboard diff --git a/keyboards/kudox/keymaps/default/rules.mk b/keyboards/kudox/keymaps/default/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/kudox/keymaps/x1/config.h b/keyboards/kudox/keymaps/x1/config.h new file mode 100644 index 00000000000..f5bf85cca0a --- /dev/null +++ b/keyboards/kudox/keymaps/x1/config.h @@ -0,0 +1,17 @@ +/* Copyright 2019 Kumao Kobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once diff --git a/keyboards/kudox/keymaps/x1/keymap.c b/keyboards/kudox/keymaps/x1/keymap.c new file mode 100644 index 00000000000..42f507ddfbe --- /dev/null +++ b/keyboards/kudox/keymaps/x1/keymap.c @@ -0,0 +1,73 @@ +#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 _QWERTY 0 +#define _SYMB 1 +#define _NUMB 2 + +// Shortcut to make keymap more readable +#define SYM_L MO(_SYMB) +#define NUM_L MO(_NUMB) + +#define KC_ALES LALT_T(KC_ESC) + +#define KC_RGENT MT(KC_RGUI, KC_ENT) +#define KC_LGUI2 RALT_T(KC_LANG2) + +#define KC_L1SYM LT(_SYMB, KC_LANG1) +#define KC_L2SYM LT(_SYMB, KC_LANG2) + +#define KC_L1NUM LT(_NUMB, KC_LANG1) +#define KC_ENNUM LT(_NUMB, KC_ENT) + +#define KC_FSYM LT(_SYMB, KC_F) +#define KC_JNUM LT(_NUMB, KC_J) + +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_BSPC , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_L2SYM, KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_SLSH ,KC_BSLS , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┘ └────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LCTL ,KC_A ,KC_S ,KC_D ,KC_FSYM ,KC_G , KC_H ,KC_JNUM ,KC_K ,KC_L ,KC_SCLN ,KC_ENT , + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , KC_L1NUM,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_RSFT , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┴────────┼────────┼────────┼────────┤ + KC_ALES ,KC_QUOT ,KC_MINS ,KC_EQL ,KC_ENNUM,KC_LGUI ,KC_SPC , KC_RGENT,KC_DEL ,SYM_L ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT + //└────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), +//KC_EQL + [_SYMB] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_GRV ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,_______ , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,KC_DQUO ,KC_QUOT ,KC_GRV ,KC_ASTR ,KC_PLUS ,KC_EQL , KC_LPRN ,KC_RPRN ,KC_PIPE ,KC_ASTR ,KC_TILD ,KC_CIRC ,KC_JYEN , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┘ └────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,KC_AT ,KC_COLN ,KC_GRV ,_______ ,KC_MINS , KC_LBRC ,KC_RBRC ,KC_DOT ,KC_SLSH ,KC_MINS ,_______ , + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_DOT ,KC_SLSH , _______ ,KC_LCBR ,KC_RCBR ,KC_DOT ,KC_SLSH ,_______ , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┴────────┼────────┼────────┼────────┤ + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,KC_LT ,KC_UNDS ,KC_CIRC ,KC_GT + //└────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), + + [_NUMB] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_GRV ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,KC_7 ,KC_8 ,KC_9 ,KC_ASTR ,KC_PLUS ,KC_EQL , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┘ └────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,KC_4 ,KC_5 ,KC_6 ,KC_0 ,KC_MINS , XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ , + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______ ,KC_1 ,KC_2 ,KC_3 ,KC_DOT ,KC_SLSH , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ , + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┴────────┼────────┼────────┼────────┤ + _______ ,KC_JYEN ,KC_0 ,_______ ,_______ ,_______ ,_______ , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX + //└────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ) + +}; diff --git a/keyboards/kudox/keymaps/x1/readme.md b/keyboards/kudox/keymaps/x1/readme.md new file mode 100644 index 00000000000..1085735afc5 --- /dev/null +++ b/keyboards/kudox/keymaps/x1/readme.md @@ -0,0 +1 @@ +# [x1](https://github.com/x1-) 's keymap for Kudox Keyboard diff --git a/keyboards/kudox/keymaps/x1/rules.mk b/keyboards/kudox/keymaps/x1/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/kudox/kudox.c b/keyboards/kudox/kudox.c new file mode 100644 index 00000000000..d7643747ad7 --- /dev/null +++ b/keyboards/kudox/kudox.c @@ -0,0 +1,16 @@ +/* Copyright 2019 Kumao Kobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "kudox.h" diff --git a/keyboards/kudox/kudox.h b/keyboards/kudox/kudox.h new file mode 100644 index 00000000000..8ff75559d1f --- /dev/null +++ b/keyboards/kudox/kudox.h @@ -0,0 +1,23 @@ +/* Copyright 2019 Kumao Kobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#ifdef KEYBOARD_kudox_rev1 + #include "rev1.h" +#endif + +#include "quantum.h" diff --git a/keyboards/kudox/readme.md b/keyboards/kudox/readme.md new file mode 100644 index 00000000000..42e1ed93720 --- /dev/null +++ b/keyboards/kudox/readme.md @@ -0,0 +1,26 @@ +# The Kudox keyboard + +

+Kudox logo +

+ +

+Kudox PCB rev1.0 +

+ +- Keyboard Maintainer: [Kumao Kobo](https://github.com/kumaokobo) +- Hardware Supported: Kudox PCB rev1.0 w/ Pro Micro + +Make example for this keyboard (after setting up your build environment): + +```sh +make kudox/rev1:default +``` + +Example of flashing this keyboard: + +```sh +make kudox/rev1:default:avrdude +``` + +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/kudox/rev1/config.h b/keyboards/kudox/rev1/config.h new file mode 100644 index 00000000000..b57b6b7acbb --- /dev/null +++ b/keyboards/kudox/rev1/config.h @@ -0,0 +1,91 @@ +/* Copyright 2019 Kumao Kobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 0x9690 +#define DEVICE_VER 0x0100 +#define MANUFACTURER Kumao Kobo +#define PRODUCT The Kudox Keyboard +#define DESCRIPTION Split row staggered 5x7 custom keyboard + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +// wiring of each half +#define MATRIX_ROW_PINS { D4, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 } +// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5} //uncomment this line and comment line above if you need to reverse left-to-right key order + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* 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 + +/* 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 D3 + +#undef RGBLED_NUM +#define RGBLED_NUM 14 // Number of LEDs +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +/* + * 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 MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 diff --git a/keyboards/kudox/rev1/rev1.c b/keyboards/kudox/rev1/rev1.c new file mode 100644 index 00000000000..3b39ee764d4 --- /dev/null +++ b/keyboards/kudox/rev1/rev1.c @@ -0,0 +1,22 @@ +#include "kudox.h" + + +#ifdef SSD1306OLED +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); +} +#endif + +void matrix_init_kb(void) { + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; diff --git a/keyboards/kudox/rev1/rev1.h b/keyboards/kudox/rev1/rev1.h new file mode 100644 index 00000000000..7a97cce6993 --- /dev/null +++ b/keyboards/kudox/rev1/rev1.h @@ -0,0 +1,24 @@ +#pragma once + +#include "kudox.h" +#include "quantum.h" + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, R00, \ + L10, L11, L12, L13, L14, L15, L16, R16, R15, R14, R13, R12, R11, R10, \ + L20, L21, L22, L23, L24, L25, R25, R24, R23, R22, R21, R20, \ + L30, L31, L32, L33, L34, L35, R35, R34, R33, R32, R31, R30, \ + L40, L41, L42, L43, L44, L45, L46, R46, R45, R44, R43, R42, R41, R40 \ +) \ +{ \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R00, R01, R02, R03, R04, R05 }, \ + { R10, R11, R12, R13, R14, R15, R16 }, \ + { R20, R21, R22, R23, R24, R25 }, \ + { R30, R31, R32, R33, R34, R35 }, \ + { R40, R41, R42, R43, R44, R45, R46 } \ +} diff --git a/keyboards/kudox/rev1/rules.mk b/keyboards/kudox/rev1/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/kudox/rules.mk b/keyboards/kudox/rules.mk new file mode 100644 index 00000000000..ca954bec3bd --- /dev/null +++ b/keyboards/kudox/rules.mk @@ -0,0 +1,73 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = caterina + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +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 on B7 by default +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. + +SPLIT_KEYBOARD = yes + +DEFAULT_FOLDER = kudox/rev1 From f54e47c79df0ca3fc5b4a5c199ad29db8c5ce87b Mon Sep 17 00:00:00 2001 From: kakunpc <15257475+kakunpc@users.noreply.github.com> Date: Wed, 7 Aug 2019 02:17:00 +0900 Subject: [PATCH 103/115] [Keyboard] Fixed Suihankey info.json (#6466) * fix info.json * Update keyboards/suihankey/info.json --- keyboards/suihankey/info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/suihankey/info.json b/keyboards/suihankey/info.json index 2306d75beca..3756e3d5fec 100644 --- a/keyboards/suihankey/info.json +++ b/keyboards/suihankey/info.json @@ -2,11 +2,11 @@ "keyboard_name": "suihankey", "url": "https://kakunpc.booth.pm/", "maintainer": "kakunpc", - "width": 12, - "height": 4, + "width": 6.4, + "height": 4.85, "layouts": { "LAYOUT": { - "layout": [{"label":"3", "x":3.5, "y":0}, {"label":"2", "x":2.5, "y":0.125}, {"label":"4", "x":4.5, "y":0.125}, {"label":"5", "x":5.5, "y":0.25}, {"label":"1", "x":1.5, "y":0.375}, {"label":"8", "x":3.5, "y":1}, {"label":"7", "x":2.5, "y":1.125}, {"label":"9", "x":4.5, "y":1.125}, {"label":"10", "x":5.5, "y":1.25}, {"label":"6", "x":1.5, "y":1.375}, {"label":"13", "x":3.5, "y":2}, {"label":"12", "x":2.5, "y":2.125}, {"label":"14", "x":4.5, "y":2.125}, {"label":"15", "x":5.5, "y":2.25}, {"label":"11", "x":1.5, "y":2.375}, {"label":"16", "x":-1.75, "y":3.125}, {"label":"17", "x":-0.75, "y":3.125}, {"label":"18", "x":0.25, "y":3.125}] + "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}] } } } From 6b27ebefc643f81d4f46949270c258ff0f2c2049 Mon Sep 17 00:00:00 2001 From: Branden Byers Date: Tue, 6 Aug 2019 10:17:59 -0700 Subject: [PATCH 104/115] [Keyboard] Add cKeys' "The Dora" Board (#6469) * Initial 4x5 * More board * Update exboard * Update * Change name to thedora * Update keyboards/ckeys/thedora/keymaps/default/keymap.c Co-Authored-By: fauxpark * Update keyboards/ckeys/thedora/config.h Co-Authored-By: fauxpark * Remove the slash * Attempt at fixing moxygen line break issues * Update keyboards/ckeys/thedora/config.h Co-Authored-By: fauxpark * Add boilerplate * Update keyboards/ckeys/thedora/config.h Co-Authored-By: Drashna Jaelre --- keyboards/ckeys/readme.md | 5 +- keyboards/ckeys/thedora/config.h | 188 ++++++++++++++++++ keyboards/ckeys/thedora/info.json | 16 ++ .../ckeys/thedora/keymaps/default/config.h | 3 + .../ckeys/thedora/keymaps/default/keymap.c | 155 +++++++++++++++ .../ckeys/thedora/keymaps/default/readme.md | 1 + keyboards/ckeys/thedora/readme.md | 57 ++++++ keyboards/ckeys/thedora/rules.mk | 19 ++ keyboards/ckeys/thedora/thedora.c | 28 +++ keyboards/ckeys/thedora/thedora.h | 21 ++ 10 files changed, 491 insertions(+), 2 deletions(-) create mode 100755 keyboards/ckeys/thedora/config.h create mode 100644 keyboards/ckeys/thedora/info.json create mode 100755 keyboards/ckeys/thedora/keymaps/default/config.h create mode 100755 keyboards/ckeys/thedora/keymaps/default/keymap.c create mode 100755 keyboards/ckeys/thedora/keymaps/default/readme.md create mode 100755 keyboards/ckeys/thedora/readme.md create mode 100755 keyboards/ckeys/thedora/rules.mk create mode 100755 keyboards/ckeys/thedora/thedora.c create mode 100755 keyboards/ckeys/thedora/thedora.h diff --git a/keyboards/ckeys/readme.md b/keyboards/ckeys/readme.md index bdcf5b34d84..f04626cd337 100644 --- a/keyboards/ckeys/readme.md +++ b/keyboards/ckeys/readme.md @@ -1,10 +1,11 @@ # cKeys.org -[cKeys](https://ckeys.org/) is a mechanical keyboard-based nonprofit organization located in Seattle, Washington. +[cKeys](https://ckeys.org/) is an all volunteer run 501c3 nonprofit organization located in Seattle, Washington. -In addition, to hosting the [Seattle Mechanical Keyboard Meetups](https://ckeys.org/events/), they have [soldering workshops](https://ckeys.org/workshops/) featuring hardware hosted in this repository. +In addition to hosting the [Seattle Mechanical Keyboard Meetups](https://ckeys.org/events/), we teach [soldering workshops](https://ckeys.org/workshops/) featuring hardware hosted in this repository. * Supported Hardware * The Obelus - 4x4 Macropad * naKey - Through hole numpad * Handwire 101 - Handwired 4x4 (Proton C or Pro Micro) + * The Dora Board - 4x5 with rotary encoder and Proton C pinouts diff --git a/keyboards/ckeys/thedora/config.h b/keyboards/ckeys/thedora/config.h new file mode 100755 index 00000000000..f2b93ee70e4 --- /dev/null +++ b/keyboards/ckeys/thedora/config.h @@ -0,0 +1,188 @@ +/* Copyright 2019 Branden Byers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ckeys +#define PRODUCT thedora +#define DESCRIPTION A board for keyboard exploration. + +#define ENCODERS_PAD_A { B13 } +#define ENCODERS_PAD_B { B15 } +#define ENCODER_RESOLUTION 4 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 6 + +#define MATRIX_ROW_PINS { A2, A1, A0, B8 } +#define MATRIX_COL_PINS { B5, B4, B3, B2, B1, B0 } + +// #define UNUSED_PINS { B14 } + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +//#define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +//#define BACKLIGHT_LEVELS 3 + +/* 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 + +#define AUDIO_CLICKY + +#define DAC_SAMPLE_MAX 65535U + +/* + * 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 + +/* + * 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 + +// Audio Click + +// Music Mode Polyphony +// NOTE: Must change polyphony_rate to a number higher than 0 in voices.c +#define AUDIO_VOICES +#define PITCH_STANDARD_A 880.0f + +// Mouse keys +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 2 +#define MOUSEKEY_TIME_TO_MAX 5 +#define MOUSEKEY_WHEEL_DELAY 0 + +/* + * 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/ckeys/thedora/info.json b/keyboards/ckeys/thedora/info.json new file mode 100644 index 00000000000..06e1037f7d2 --- /dev/null +++ b/keyboards/ckeys/thedora/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "The Dora Board.", + "url": "https://ckeys.org/slides/exboard", + "maintainer": "brandenbyers", + "width": 4, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x5": { + "key_count": 20, + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x": 4, "y":0}, + {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, + {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, + {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}] + } + } +} diff --git a/keyboards/ckeys/thedora/keymaps/default/config.h b/keyboards/ckeys/thedora/keymaps/default/config.h new file mode 100755 index 00000000000..507a9ccdcae --- /dev/null +++ b/keyboards/ckeys/thedora/keymaps/default/config.h @@ -0,0 +1,3 @@ +#pragma once + +// Add overrides here diff --git a/keyboards/ckeys/thedora/keymaps/default/keymap.c b/keyboards/ckeys/thedora/keymaps/default/keymap.c new file mode 100755 index 00000000000..c407fbe2640 --- /dev/null +++ b/keyboards/ckeys/thedora/keymaps/default/keymap.c @@ -0,0 +1,155 @@ +#include QMK_KEYBOARD_H + +enum layers { + _BASE, // base layer + _MUSIC, // music mode + _MIDI, // midi mode + _MOUSE, // mouse keys + _ADMIN // admin duties +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ┌─────────┬─────────┬─────────┬─────────┬─────────┐ +// │ │ │ │ │ │ +// │ 7 │ 8 │ 9 │ / │ ADMIN │ +// ROTORY │ │ │ │ │ │ +// RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ +// VOL UP │ │ │ │ │ │ +// │ 4 │ 5 │ 6 │ * │ MOUSE │ +// ROTORY │ │ │ │ │ │ +// LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ +// VOL DOWN │ │ │ │ │ │ +// │ 1 │ 2 │ 3 │ - │ MIDI │ +// │ │ │ │ │ │ +// ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ +// │ TOGGLE │ │ │ │ │ │ +// │ MUSIC │ 0 │ . │ = │ + │ MUSIC │ +// │ │ │ │ │ │ │ +// └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ + + [_BASE] = LAYOUT( + KC_KP_7, KC_KP_8, KC_KP_9, KC_PSLS, MO(_ADMIN), MU_TOG, + KC_KP_4, KC_KP_5, KC_KP_6, KC_PAST, TG(_MOUSE), + KC_KP_1, KC_KP_2, KC_KP_3, KC_PMNS, TG(_MIDI), + KC_KP_0, KC_KP_DOT, KC_KP_EQUAL, KC_PPLS, MO(_MUSIC) + ), + +// MUSIC LAYER + // ┌─────────┬─────────┬─────────┬─────────┬─────────┐ + // │ │ │ │ │ │ + // │ │ │ │ │ │ + // ROTORY │ │ │ │ │ │ + // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ + // PAGE UP │ │ │ │ │ │ + // │ │ │ │ │ │ + // ROTORY │ │ │ │ │ │ + // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ + // PAGE DOWN│ │ │ │ │ │ + // │ │ │ │ MODE │ │ + // │ │ │ │ │ │ + //┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ + //│ │ │ │ │ │ │ + //│ │ RECORD │ STOP │ │ PLAY │ │ + //│ │ │ │ │ │ │ + //└─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ + + [_MUSIC] = LAYOUT( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, MU_MOD, + KC_LCTL, KC_LALT, _______, KC_LGUI, _______ + ), + +// MIDI LAYER +// ┌─────────┬─────────┬─────────┬─────────┬─────────┐ +// │ │ │ │ │ │ +// │ D♯ │ E │ F │ F♯ │ G │ +// ROTORY │ │ │ │ │ │ +// RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ +// PAGE UP │ │ │ │ │ │ +// │ A♯ │ B │ C │ C♯ │ D │ +// ROTORY │ │ │ │ │ │ +// LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ +// PAGE DOWN│ │ │ │ │ │ +// │ F │ F♯ │ G │ G♯ │ A │ +// │ │ │ │ │ │ +// ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ +// │ │ │ │ │ │ │ +// │ │ C │ C♯ │ D │ D♯ │ E │ +// │ │ │ │ │ │ │ +// └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ + + [_MIDI] = LAYOUT( + MI_Ds_3, MI_E_3, MI_F_3, MI_Fs_3, MI_G_3, _______, + MI_As_2, MI_B_2, MI_C_3, MI_Cs_3, MI_D_3, + MI_F_2, MI_Fs_2, MI_G_2, MI_Gs_2, TG(_MIDI), + MI_C_2, MI_Cs_2, MI_D_2, MI_Ds_2, MI_E_2 + ), + +// MOUSE LAYER +// ┌─────────┬─────────┬─────────┬─────────┬─────────┐ +// │ │ │ │ │ │ +// │ BTN 5 │ │ WHEEL │ │ │ +// ROTORY │ │ │ UP │ │ │ +// RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ +// PAGE DOWN│ │ │ │ │ │ +// │ │ LEFT │ MOUSE │ RIGHT │ │ +// ROTORY │ │ CLICK │ UP │ CLICK │ │ +// LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ +// PAGE UP │ │ │ │ │ │ +// │ BTN 4 │ MOUSE │ MOUSE │ MOUSE │ │ +// │ │ LEFT │ DOWN │ RIGHT │ │ +// ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ +// │ │ │ │ │ │ │ +// │ │ BTN 3 │ WHEEL │ WHEEL │ WHEEL │ │ +// │ │ │ LEFT │ DOWN │ RIGHT │ │ +// └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ + + [_MOUSE] = LAYOUT( + KC_MS_BTN5, _______, KC_MS_WH_UP, _______, _______, _______, + _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, TG(_MOUSE), + KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, + KC_MS_BTN3, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, _______ + ), + +// ADMIN LAYER +// ┌─────────┬─────────┬─────────┬─────────┬─────────┐ +// │ │ │ │ │ │ +// │ RESET │ │ │ │ │ +// ROTORY │ │ │ │ │ │ +// RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ +// PAGE UP │ │ │ │ │ │ +// │ 4 │ 5 │ 6 │ * │ │ +// ROTORY │ │ │ │ │ │ +// LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ +// PAGE DOWN│ │ │ │ │ │ +// │ 1 │ 2 │ 3 │ │ │ +// │ │ │ │ │ │ +// ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ +// │ │ │ │ │ │ │ +// │ │ 0 │ . │ = │ │ │ +// │ │ │ │ │ │ │ +// └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ + + [_ADMIN] = LAYOUT( + RESET, _______, _______, _______, TG(_ADMIN), _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } +} diff --git a/keyboards/ckeys/thedora/keymaps/default/readme.md b/keyboards/ckeys/thedora/keymaps/default/readme.md new file mode 100755 index 00000000000..4594bdfe317 --- /dev/null +++ b/keyboards/ckeys/thedora/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for the cKeys Handwire 101 4x4 keyboard. \ No newline at end of file diff --git a/keyboards/ckeys/thedora/readme.md b/keyboards/ckeys/thedora/readme.md new file mode 100755 index 00000000000..920162075ba --- /dev/null +++ b/keyboards/ckeys/thedora/readme.md @@ -0,0 +1,57 @@ +# theDora Board + +![Thedora Board](https://ckeys.org/images/exboard-3.jpg) + +A 4x5 keyboard with rotary encoder, QWIIC connector, and header pinouts for easy access to all pins on the Proton C. This keyboard was built for QMK exploration big and small. What will you discover next? + +Keyboard Maintainer: [brandenbyers](https://github.com/brandenbyers) +Hardware Supported: theDora +Hardware Availability: [cKeys.org](https://ckeys.org) + +Make example for this keyboard (after setting up your build environment): + +`make ckeys/thedora: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](Complete Newbs Guide). + +--- + +## Slides + +Slides can be found at: https://ckeys.org/slides/exboard/ + +## Case Design + +The acrylic laser cutter file is coming soon! + +## PCB Design + +All cKeys PCBs are open source. However, this one has not been posted yet because it needs to be cleaned up a bit! Coming soon! + +## Firmware + +If you want to reflash the pre-installed firmware, use the `.bin` file for Proton C. Flash with the QMK Toolbox or via the command line. + +Building for Proton C: `make ckeys/thedora:default` + +## Default Layout + +You can find the default layout in `thedora/keymaps/default/keymap.c` + +## Rotary Encoder + +This is the bit of code at the end of `keymap.c` that needs to changed if you want to change the behavior of the rotary encoder. + +``` +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); // What the rotary encoder repeatedly does when turned right. + } else { + tap_code(KC_PGUP); // What it does when turned to the left. + } + } +} +``` + +![The Dora Board](https://ckeys.org/images/exboard-1.jpg) diff --git a/keyboards/ckeys/thedora/rules.mk b/keyboards/ckeys/thedora/rules.mk new file mode 100755 index 00000000000..11adbdacd41 --- /dev/null +++ b/keyboards/ckeys/thedora/rules.mk @@ -0,0 +1,19 @@ +MCU = STM32F303 + +# Build Options +# comment out to disable the options. +# +BACKLIGHT_ENABLE = no +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) +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 = yes # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +AUDIO_ENABLE = yes +MIDI_ENABLE = yes # MIDI controls +RGBLIGHT_ENABLE = no +ENCODER_ENABLE = yes +# SERIAL_LINK_ENABLE = yes diff --git a/keyboards/ckeys/thedora/thedora.c b/keyboards/ckeys/thedora/thedora.c new file mode 100755 index 00000000000..438320ef1c6 --- /dev/null +++ b/keyboards/ckeys/thedora/thedora.c @@ -0,0 +1,28 @@ +#include "thedora.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + // Turn status LED on + //DDRD |= (1<<6); + //PORTD |= (1<<6); + + 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); +} diff --git a/keyboards/ckeys/thedora/thedora.h b/keyboards/ckeys/thedora/thedora.h new file mode 100755 index 00000000000..2c4443c3ad4 --- /dev/null +++ b/keyboards/ckeys/thedora/thedora.h @@ -0,0 +1,21 @@ +#pragma once + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, \ + k06, k07, k08, k09, k10, \ + k11, k12, k13, k14, k15, \ + k16, k17, k18, k19, k20 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, }, \ + { k06, k07, k08, k09, k10 }, \ + { k11, k12, k13, k14, k15 }, \ + { k16, k17, k18, k19, k20 } \ +} + From ae934c389e755ae780eb6e385f55b687581c5db4 Mon Sep 17 00:00:00 2001 From: Yoshitake Hamano Date: Wed, 7 Aug 2019 02:18:44 +0900 Subject: [PATCH 105/115] [Keymap] hhkb:halfqwerty_jp (#6475) --- .../hhkb/keymaps/halfqwerty_jp/README.md | 49 ++++++++++++ keyboards/hhkb/keymaps/halfqwerty_jp/keymap.c | 76 +++++++++++++++++++ keyboards/hhkb/keymaps/halfqwerty_jp/rules.mk | 1 + 3 files changed, 126 insertions(+) create mode 100644 keyboards/hhkb/keymaps/halfqwerty_jp/README.md create mode 100644 keyboards/hhkb/keymaps/halfqwerty_jp/keymap.c create mode 100644 keyboards/hhkb/keymaps/halfqwerty_jp/rules.mk diff --git a/keyboards/hhkb/keymaps/halfqwerty_jp/README.md b/keyboards/hhkb/keymaps/halfqwerty_jp/README.md new file mode 100644 index 00000000000..222ad898efa --- /dev/null +++ b/keyboards/hhkb/keymaps/halfqwerty_jp/README.md @@ -0,0 +1,49 @@ +# harfqwerty_jp + +half-QWERTY is a keyboard layout for one-handed typing on QWERTY keyboard. + +* When hold space bar, the keyboard enters mirror mode. +* To type a space, just tap the space bar. + +## BASE + + ,-----------------------------------------------------------. + |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| -| =|Yen|Bsp| + |-----------------------------------------------------------| + |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | + |------------------------------------------------------` Ent| + |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `| | + |-----------------------------------------------------------| + |Shft | Z| X| C| V| B| N| M| ,| .| /| \| Up|Sft| + |-----------------------------------------------------------| + | ||Ctl|Alt|Cmd| | Spc | | | | ||Lft|Dwn|Rgh| + `-----------------------------------------------------------' + +## HHKB mode (HHKB Fn) + + ,-----------------------------------------------------------. + |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + |-----------------------------------------------------------| + |Caps | | | | | | | |Psc|Slk|Pus|Up | | | + |------------------------------------------------------` | + | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig| | | + |-----------------------------------------------------------| + | | | | | | | +| -|End|PgD|Dow| | | | + |-----------------------------------------------------------| + | || | | | | | | | | || | | | + `-----------------------------------------------------------' + + +## Mirror mode + + ,-----------------------------------------------------------. + | | 0| 9| 8| 7| 6| 5| 4| 3| 2| 1| | | | | + |-----------------------------------------------------------| + | | P| O| I| U| Y| T| R| E| W| Q| | | | + |------------------------------------------------------` | + | | ;| L| K| J| H| G| F| D| S| A| | | | + |-----------------------------------------------------------| + | | .| ,| M| N| B| V| C| X| Z| | | | | + |-----------------------------------------------------------| + | || | | | | | | | | || | | | + `-----------------------------------------------------------' diff --git a/keyboards/hhkb/keymaps/halfqwerty_jp/keymap.c b/keyboards/hhkb/keymaps/halfqwerty_jp/keymap.c new file mode 100644 index 00000000000..0d4a24c60d5 --- /dev/null +++ b/keyboards/hhkb/keymaps/halfqwerty_jp/keymap.c @@ -0,0 +1,76 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * default HHKB Layout + */ +#include QMK_KEYBOARD_H + +enum +{ + BASE, + HHKB, + MIRROR, +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* BASE Level: Default Layer + ,-----------------------------------------------------------. + |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| -| =|Yen|Bsp| + |-----------------------------------------------------------| + |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | + |------------------------------------------------------` Ent| + |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `| | + |-----------------------------------------------------------| + |Shft | Z| X| C| V| B| N| M| ,| .| /| \| Up|Sft| + |-----------------------------------------------------------| + | ||Ctl|Alt|Cmd| | Spc | | | | ||Lft|Dwn|Rgh| + `-----------------------------------------------------------' + */ + [BASE] = LAYOUT_JP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_JYEN, 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_UP, KC_RSFT, + MO(HHKB), KC_ZKHK, KC_LGUI, KC_LALT, KC_MHEN, LT(MIRROR, KC_SPC), KC_HENK, KC_KANA, KC_RALT, MO(HHKB), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layer HHKB: HHKB mode (HHKB Fn) + ,-----------------------------------------------------------. + |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + |-----------------------------------------------------------| + |Caps | | | | | | | |Psc|Slk|Pus|Up | | | + |------------------------------------------------------` | + | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig| | | + |-----------------------------------------------------------| + | | | | | | | +| -|End|PgD|Dow| | | | + |-----------------------------------------------------------| + | || | | | | | | | | || | | | + `-----------------------------------------------------------' + */ + + [HHKB] = LAYOUT_JP( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + /* Mirror Level: when hold space bar + ,-----------------------------------------------------------. + | | 0| 9| 8| 7| 6| 5| 4| 3| 2| 1| | | | | + |-----------------------------------------------------------| + | | P| O| I| U| Y| T| R| E| W| Q| | | | + |------------------------------------------------------` | + | | ;| L| K| J| H| G| F| D| S| A| | | | + |-----------------------------------------------------------| + | | .| ,| M| N| B| V| C| X| Z| | | | | + |-----------------------------------------------------------| + | || | | | | | | | | || | | | + `-----------------------------------------------------------' + */ + [MIRROR] = LAYOUT_JP( + _______, KC_0, KC_9, KC_8, KC_7, KC_6, KC_5, KC_4, KC_3, KC_2, KC_1, _______, _______, _______, _______, + _______, KC_P, KC_O, KC_I, KC_U, KC_Y, KC_T, KC_R, KC_E, KC_W, KC_Q, _______, _______, + _______, KC_SCLN, KC_L, KC_K, KC_J, KC_H, KC_G, KC_F, KC_D, KC_S, KC_A, _______, _______, _______, + _______, KC_DOT, KC_COMM, KC_M, KC_N, KC_B, KC_V, KC_C, KC_X, KC_Z, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______, _______, _______)}; + diff --git a/keyboards/hhkb/keymaps/halfqwerty_jp/rules.mk b/keyboards/hhkb/keymaps/halfqwerty_jp/rules.mk new file mode 100644 index 00000000000..a7f700f019c --- /dev/null +++ b/keyboards/hhkb/keymaps/halfqwerty_jp/rules.mk @@ -0,0 +1 @@ +OPT_DEFS += -DHHKB_JP From 07bdc8f4b7268f69a789bfe7656e8384bfcfed57 Mon Sep 17 00:00:00 2001 From: Jeremy Bernhardt Date: Tue, 6 Aug 2019 11:20:48 -0600 Subject: [PATCH 106/115] [Keyboard] Added little fixes and bootmagic for gBoard keebs (#6477) * Added little fixes and bootmagic * Update keyboards/gergo/keymaps/oled/rules.mk Co-Authored-By: Drashna Jaelre * whacked out quantum_libs --- .../butterstick/keymaps/default/keymap.c | 15 +- keyboards/butterstick/sten.c | 61 ++++- keyboards/butterstick/sten.h | 12 +- keyboards/gergo/config.h | 3 + keyboards/gergo/keymaps/oled/config.h | 4 + keyboards/gergo/keymaps/oled/glcdfont.c | 232 ++++++++++++++++++ keyboards/gergo/keymaps/oled/keymap.c | 145 +++++++++++ keyboards/gergo/keymaps/oled/readme.md | 10 + keyboards/gergo/keymaps/oled/rules.mk | 38 +++ keyboards/gergo/rules.mk | 4 +- 10 files changed, 508 insertions(+), 16 deletions(-) create mode 100644 keyboards/gergo/keymaps/oled/config.h create mode 100644 keyboards/gergo/keymaps/oled/glcdfont.c create mode 100644 keyboards/gergo/keymaps/oled/keymap.c create mode 100644 keyboards/gergo/keymaps/oled/readme.md create mode 100644 keyboards/gergo/keymaps/oled/rules.mk diff --git a/keyboards/butterstick/keymaps/default/keymap.c b/keyboards/butterstick/keymaps/default/keymap.c index e4d1ea91f3e..749e9ba0713 100644 --- a/keyboards/butterstick/keymaps/default/keymap.c +++ b/keyboards/butterstick/keymaps/default/keymap.c @@ -45,21 +45,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { uint32_t processQwerty(bool lookup) { // SECRET AGENT CHORDS P( LSU | LK | RS | RD, SEND_STRING(VERSION); SEND_STRING(__DATE__)); - P( LR | ST2| RR | RB, SEND(KC_BSPC)); + P( LR | ST2| RR | RB, SEND(KC_BSPC)); P( LSD | RZ, SEND(KC_SPC)); // Dual chords P( LP | LH, CLICK_MOUSE(KC_MS_BTN2)); P( ST1 | RF, CLICK_MOUSE(KC_MS_BTN1)); - P( LSU | LFT, SEND(KC_ESC)); - P( LSD | LK, SEND(KC_LSFT)); - P( RZ | RS, SEND(KC_LSFT)); - P( ST2 | RR, SEND(KC_SPC)); + P( LSU | LFT, SEND(KC_ESC)); + P( LSD | LK, SEND(KC_LSFT)); + P( RZ | RS, SEND(KC_LSFT)); + P( ST2 | RR, SEND(KC_SPC)); P( RP | RL, SEND(KC_LGUI)); P( RT | RD, SEND(KC_LCTL)); P( RL | RT, SEND(KC_LALT)); - P( LSU | LSD | LFT | LK, SEND(KC_LCTL)); - P( RS | RT | RD | RZ, SEND(KC_ENT)); + P( LSU | LSD | LFT | LK, SEND(KC_LCTL)); + P( RS | RT | RD | RZ, SEND(KC_ENT)); // Function Layer P( FUNCT | RF, SEND(KC_F1)); @@ -179,6 +179,5 @@ uint32_t processQwerty(bool lookup) { return 0; } - // Don't fuck with this, thanks. size_t keymapsCount = sizeof(keymaps)/sizeof(keymaps[0]); diff --git a/keyboards/butterstick/sten.c b/keyboards/butterstick/sten.c index a239e388421..197abaf92f5 100644 --- a/keyboards/butterstick/sten.c +++ b/keyboards/butterstick/sten.c @@ -11,6 +11,18 @@ uint32_t pChord = 0; // Previous Chord int pChordIndex = 0; // Keys in previousachord uint32_t pChordState[32]; // Previous chord sate uint32_t stickyBits = 0; // Or'd with every incoming press +#ifndef NO_DEBUG +char debugMsg[32]; +#endif + +// StenoLayer +uint32_t releasedChord = 0; // Keys released from current chord +uint32_t tChord = 0; // Protects state of cChord + +#ifndef STENOLAYERS +uint32_t stenoLayers[] = { PWR }; +size_t stenoLayerCount = sizeof(stenoLayers)/sizeof(stenoLayers[0]); +#endif // Mode state enum MODE { STENO = 0, QWERTY, COMMAND }; @@ -39,7 +51,6 @@ bool inMouse = false; int8_t mousePress; // All processing done at chordUp goes through here -// Note, this is a gutted version of the Georgi sten.h bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]) { // Check for mousekeys, this is release #ifdef MOUSEKEY_ENABLE @@ -50,8 +61,21 @@ bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]) { } #endif + // Toggle Serial/QWERTY steno + if (cChord == (PWR | FN | ST1 | ST2)) { +#ifndef NO_DEBUG + uprintf("Fallback Toggle\n"); +#endif + QWERSTENO = !QWERSTENO; + + goto out; + } + // handle command mode - if (cChord == (LSU | LSD | RD | RZ)) { + if (cChord == (PWR | FN | RD | RZ)) { +#ifndef NO_DEBUG + uprintf("COMMAND Toggle\n"); +#endif if (cMode != COMMAND) { // Entering Command Mode CMDLEN = 0; pMode = cMode; @@ -70,7 +94,7 @@ bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]) { } // Handle Gaming Toggle, - if (cChord == (LSU | LSD | LFT | LK | RT | RS | RD | RZ) && keymapsCount > 1) { + if (cChord == (PWR | FN | ST4 | ST3) && keymapsCount > 1) { #ifndef NO_DEBUG uprintf("Switching to QMK\n"); #endif @@ -78,11 +102,38 @@ bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]) { goto out; } + // Lone FN press, toggle QWERTY +#ifndef ONLYQWERTY + if (cChord == FN) { + (cMode == STENO) ? (cMode = QWERTY) : (cMode = STENO); + goto out; + } +#endif + + // Check for Plover momentary + if (cMode == QWERTY && (cChord & FN)) { + cChord ^= FN; + goto steno; + } + // Do QWERTY and Momentary QWERTY - if (cMode == QWERTY || (cMode == COMMAND)) { + if (cMode == QWERTY || (cMode == COMMAND) || (cChord & (FN | PWR))) { processChord(false); goto out; - } + } + + // Fallback NKRO Steno + if (cMode == STENO && QWERSTENO) { + processChord(true); + goto out; + } + +steno: + // Hey that's a steno chord! + inChord = false; + chordIndex = 0; + cChord = 0; + return true; out: cChord = 0; diff --git a/keyboards/butterstick/sten.h b/keyboards/butterstick/sten.h index 5a9771d9a02..84635a554c1 100644 --- a/keyboards/butterstick/sten.h +++ b/keyboards/butterstick/sten.h @@ -13,11 +13,14 @@ extern size_t keymapsCount; // Total keymaps extern uint32_t cChord; // Current Chord +extern uint32_t stenoLayers[]; // Chords that simulate QMK layers +extern size_t stenoLayerCount; // Number of simulated layers +uint32_t refChord; // Reference chord for PC macro // Function defs void processChord(bool useFakeSteno); -uint32_t processQwerty(bool lookup); -uint32_t processFakeSteno(bool lookup); +uint32_t processQwerty(bool lookup); +uint32_t processFakeSteno(bool lookup); void saveState(uint32_t cChord); void restoreState(void); @@ -30,6 +33,11 @@ void CLICK_MOUSE(uint8_t); // Keymap helper #define P(chord, act) if (cChord == (chord)) { if (!lookup) {act;} return chord;} +#define PC(chord, act) if (cChord == (chord)) { if (!lookup) {act;} return chord;} \ + for(int i = 0; i < stenoLayerCount; i++) { \ + refChord = stenoLayers[i] | chord; \ + if (cChord == (refChord)) { if (!lookup) {act;} return refChord;}; \ +} // Shift to internal representation // i.e) S(teno)R(ight)F diff --git a/keyboards/gergo/config.h b/keyboards/gergo/config.h index e4c61ecb07c..f8738f09566 100644 --- a/keyboards/gergo/config.h +++ b/keyboards/gergo/config.h @@ -21,6 +21,9 @@ along with this program. If not, see . #pragma once #include "config_common.h" +#define BOOTMAGIC_LITE_ROW 13 +#define BOOTMAGIC_LITE_COLUMN 2 + /* Defaults */ #ifndef BALLSTEP #define BALLSTEP 20 diff --git a/keyboards/gergo/keymaps/oled/config.h b/keyboards/gergo/keymaps/oled/config.h new file mode 100644 index 00000000000..b1860806813 --- /dev/null +++ b/keyboards/gergo/keymaps/oled/config.h @@ -0,0 +1,4 @@ +#pragma once + +#define IGNORE_MOD_TAP_INTERRUPT +#define OLED_FONT_H "keyboards/gergo/keymaps/oled/glcdfont.c" diff --git a/keyboards/gergo/keymaps/oled/glcdfont.c b/keyboards/gergo/keymaps/oled/glcdfont.c new file mode 100644 index 00000000000..cf189e6e5a6 --- /dev/null +++ b/keyboards/gergo/keymaps/oled/glcdfont.c @@ -0,0 +1,232 @@ +// 'loveLain', 128x32px + +#include +#include + +static const unsigned char font[] PROGMEM = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, +0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, +0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, +0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, +0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, +0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, +0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, +0x00, 0x18, 0x24, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, +0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, +0x26, 0x29, 0x79, 0x29, 0x26, 0x00, +0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, +0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, +0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, +0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, +0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, +0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, +0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, +0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, +0x60, 0x60, 0x60, 0x60, 0x60, 0x00, +0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, +0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, +0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, +0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, +0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, +0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, +0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, +0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, +0x00, 0x07, 0x00, 0x07, 0x00, 0x00, +0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, +0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, +0x23, 0x13, 0x08, 0x64, 0x62, 0x00, +0x36, 0x49, 0x56, 0x20, 0x50, 0x00, +0x00, 0x08, 0x07, 0x03, 0x00, 0x00, +0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, +0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, +0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, +0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, +0x00, 0x80, 0x70, 0x30, 0x00, 0x00, +0x08, 0x08, 0x08, 0x08, 0x08, 0x00, +0x00, 0x00, 0x60, 0x60, 0x00, 0x00, +0x20, 0x10, 0x08, 0x04, 0x02, 0x00, +0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, +0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, +0x72, 0x49, 0x49, 0x49, 0x46, 0x00, +0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, +0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, +0x27, 0x45, 0x45, 0x45, 0x39, 0x00, +0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, +0x41, 0x21, 0x11, 0x09, 0x07, 0x00, +0x36, 0x49, 0x49, 0x49, 0x36, 0x00, +0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, +0x00, 0x00, 0x14, 0x00, 0x00, 0x00, +0x00, 0x40, 0x34, 0x00, 0x00, 0x00, +0x00, 0x08, 0x14, 0x22, 0x41, 0x00, +0x14, 0x14, 0x14, 0x14, 0x14, 0x00, +0x00, 0x41, 0x22, 0x14, 0x08, 0x00, +0x02, 0x01, 0x59, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, +0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, +0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, +0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, +0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, +0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, +0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, +0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, +0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, +0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, +0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, +0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, +0x26, 0x49, 0x49, 0x49, 0x32, 0x00, +0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, +0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, +0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, +0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, +0x63, 0x14, 0x08, 0x14, 0x63, 0x00, +0x03, 0x04, 0x78, 0x04, 0x03, 0x00, +0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, +0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, +0x02, 0x04, 0x08, 0x10, 0x20, 0x00, +0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, +0x04, 0x02, 0x01, 0x02, 0x04, 0x00, +0x40, 0x40, 0x40, 0x40, 0x40, 0x00, +0x00, 0x03, 0x07, 0x08, 0x00, 0x00, +0x20, 0x54, 0x54, 0x78, 0x40, 0x00, +0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, +0x38, 0x44, 0x44, 0x44, 0x28, 0x00, +0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, +0x38, 0x54, 0x54, 0x54, 0x18, 0x00, +0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, +0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, +0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, +0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, +0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, +0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, +0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, +0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, +0x38, 0x44, 0x44, 0x44, 0x38, 0x00, +0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, +0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, +0x48, 0x54, 0x54, 0x54, 0x24, 0x00, +0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, +0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, +0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, +0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, +0x44, 0x28, 0x10, 0x28, 0x44, 0x00, +0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, +0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, +0x00, 0x08, 0x36, 0x41, 0x00, 0x00, +0x00, 0x00, 0x77, 0x00, 0x00, 0x00, +0x00, 0x41, 0x36, 0x08, 0x00, 0x00, +0x02, 0x01, 0x02, 0x04, 0x02, 0x00, +0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, +0x00, 0x00, 0x00, 0x00, 0x40, 0x28, +0x00, 0x48, 0xC2, 0x24, 0x10, 0x12, +0x24, 0x10, 0x12, 0x29, 0x10, 0x22, +0x58, 0x44, 0x90, 0x20, 0x80, 0x00, +0x00, 0x04, 0x10, 0x88, 0x40, 0x20, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, +0x00, 0x20, 0x00, 0x10, 0x08, 0x08, +0x00, 0x08, 0x10, 0x00, 0x10, 0x20, +0x40, 0x40, 0x80, 0x00, 0x00, 0x00, +0x00, 0x14, 0x42, 0x01, 0x00, 0x01, +0x02, 0x04, 0x08, 0x10, 0x20, 0x00, +0x40, 0x40, 0x00, 0x40, 0x40, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x10, 0x08, 0x00, 0x00, 0x00, 0x40, +0x10, 0x80, 0x50, 0x22, 0xA4, 0x10, +0x52, 0x24, 0x10, 0x32, 0x08, 0x44, +0x64, 0x20, 0x90, 0x80, 0x40, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, +0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, +0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, +0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, +0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, +0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, +0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, +0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x82, 0x11, 0x48, 0x00, +0x37, 0xC0, 0x00, 0x00, 0x08, 0x10, +0x02, 0x48, 0x14, 0x00, 0x00, 0x00, +0x41, 0x42, 0xA2, 0x81, 0x42, 0x61, +0x04, 0x22, 0x00, 0x40, 0x82, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, +0x00, 0x49, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x02, 0x04, +0x08, 0x00, 0x08, 0x15, 0x20, 0x40, +0x00, 0x40, 0x00, 0x00, 0x00, 0x00, +0x00, 0x2C, 0x03, 0x60, 0x20, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x02, 0x00, +0x85, 0x20, 0x00, 0x42, 0x42, 0x42, +0x85, 0x44, 0xC2, 0x01, 0x00, 0x00, +0x48, 0x10, 0x04, 0x48, 0x10, 0x00, +0x00, 0x01, 0xA0, 0x5E, 0x00, 0xA2, +0x14, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, +0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, +0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, +0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, +0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, +0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, +0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, +0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x09, +0x12, 0x20, 0x89, 0x12, 0x42, 0x24, +0x04, 0x48, 0x0C, 0x90, 0x06, 0x21, +0x4A, 0x05, 0x84, 0x00, 0x02, 0x00, +0x00, 0x00, 0x08, 0x04, 0x00, 0x02, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xAD, +0x00, 0x2A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x20, 0x00, 0x20, +0x00, 0x40, 0x00, 0x00, 0x40, 0x00, +0x40, 0x00, 0x40, 0x40, 0x00, 0x40, +0x00, 0x40, 0x20, 0x00, 0x90, 0x48, +0x03, 0x10, 0x08, 0x03, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x02, 0x09, +0x10, 0x20, 0x08, 0x00, 0x00, 0x02, +0x00, 0x02, 0x48, 0x15, 0x02, 0xA4, +0x08, 0x44, 0x88, 0x24, 0x48, 0x04, +0xA2, 0x15, 0x00, 0x0A, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; +static const unsigned int fontLen = 512; diff --git a/keyboards/gergo/keymaps/oled/keymap.c b/keyboards/gergo/keymaps/oled/keymap.c new file mode 100644 index 00000000000..c348a2b96d5 --- /dev/null +++ b/keyboards/gergo/keymaps/oled/keymap.c @@ -0,0 +1,145 @@ +/* Good on you for modifying your layout! if you don't have + * time to read the QMK docs, a list of keycodes can be found at + * + * https://github.com/qmk/qmk_firmware/blob/master/docs/keycodes.md + * + * There's also a template for adding new layers at the bottom of this file! + */ + +#include QMK_KEYBOARD_H + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define NUMB 2 // numbers/motion + +// Blank template at the bottom +enum customKeycodes { + URL = 1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,-------------------------------------------. ,-------------------------------------------. + * | L1/ESC | Q | W | E | R | T | | Y | U | I | O | P | | \ | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * |Ctrl/BS | A | S | D | F | G | RMB | | | H | J | K | L | ; : | ' " | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | LMB | | | N | M | , < | . > | / ? | - _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .----------. .-------. .------. .-----. + * | Super/Del| |Ent/ALT| | Tab | |BKSP | + * '----------' '-------' `------. '-----' + * ,-------. ,-------. + * | MMB | | PgDn | + * ,------|-------| |-------|------. + * | SYMB | NUMB | | SYMB | NUMB | + * | Space| Escape| | Mod |Space | + * | | | | | | + * `--------------' `--------------' + */ +[BASE] = LAYOUT_gergo( + LT(NUMB, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE, + MT(MOD_LCTL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_BTN2, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BTN1, KC_BTN3, KC_PGDN, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + MT(MOD_LGUI, KC_DEL), MT(MOD_LALT, KC_ENT), LT(SYMB, KC_SPC), LT(NUMB, KC_ESC), LT(SYMB, KC_ENT), LT(NUMB, KC_SPC), KC_TAB, KC_BSPC + ), +/* Keymap 1: Symbols layer + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | ! | @ | { | } | | | | | | | | | \ | | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` | | | | + | - | / | * | % | ' " | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | = | , | . | / ? | - _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .------. .------. .------. .-----. + * | | | | | | | DEL | + * '------' '------' `------. '-----' + * ,-------. ,-------. + * | | | PgUp | + * ,------|-------| |-------|------. + * | | | | | | + * | ; | = | | = | ; | + * | | | | | | + * `--------------' `--------------' + */ +[SYMB] = LAYOUT_gergo( + KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, + KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_TRNS, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_PERC, KC_QUOT, + KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + KC_TRNS, KC_TRNS, KC_SCLN, KC_EQL, KC_EQL, KC_SCLN, KC_PGUP, KC_DEL + ), +/* Keymap 2: Pad/Function layer + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * | F1 | F2 | F3 | F4 | F5 | F6 | BTN1 | | | LEFT | DOWN | UP | RIGHT|VolDn | VolUp | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | F7 | F8 | F9 | F10 | F11 | F12 | BTN2 | | | MLFT | MDWN | MUP | MRGHT|Ply/Pa| Skip | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .------. .------. .------. .-----. + * | | | | | | | | + * '------' '------' `------. '-----' + * ,-------. ,-------. + * | | | PgUp | + * ,------|-------| |-------|------. + * | | | | | | + * | | | | | | + * | | | | | | + * `--------------' `--------------' + */ +[NUMB] = LAYOUT_gergo( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLD, KC_VOLU, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_MPLY, KC_MNXT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +/* Keymap template + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | | | | | | | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .------. .------. .------. .-----. + * | | | | | | | | + * '------' '------' `------. '-----' + * ,-------. ,-------. + * | | | | + * ,------|-------| |-------|------. + * | | | | | | + * | | | | | | + * | | | | | | + * `--------------' `--------------' +[SYMB] = LAYOUT_gergo( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + */ + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +void oled_task_user(void) { + static const char PROGMEM font_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; + oled_write_P(font_logo, false); + +} + //for (int i = 0; i < fontLen; i++) { + //oled_write_char(pgm_read_byte(lain+i), false); + //oled_write_char((char)i, false); + //} +#endif diff --git a/keyboards/gergo/keymaps/oled/readme.md b/keyboards/gergo/keymaps/oled/readme.md new file mode 100644 index 00000000000..471a20fbdff --- /dev/null +++ b/keyboards/gergo/keymaps/oled/readme.md @@ -0,0 +1,10 @@ +# [Gergo! By g Heavy Industries](http://gboards.ca) + +![Gergo image](https://4.bp.blogspot.com/-889nMXxgSM0/XCNxwnO5kUI/AAAAAAAA6mI/tZbWgZVCBW0dyZOCGJDkjN06DVax7j8XwCLcBGAs/s1600/48422820_967732713413298_485744639215665152_n.jpg) + +This is the default keymap for Gergo, it's based heavily off of the naps62 ErgoDox layout and is aimed at a programmer friendly keymap. + +## Settings +To edit various settings, enable the 1u trackball and whatnot please modify /keyboards/gergo/keymaps/default/rules.mk + +Ideally you should copy this directory and make your changes there. If you come up with a good layout submit a PR! diff --git a/keyboards/gergo/keymaps/oled/rules.mk b/keyboards/gergo/keymaps/oled/rules.mk new file mode 100644 index 00000000000..fae936effb3 --- /dev/null +++ b/keyboards/gergo/keymaps/oled/rules.mk @@ -0,0 +1,38 @@ +#---------------------------------------------------------------------------- +# make gergo:germ:dfu +# Make sure you have dfu-programmer installed! +#---------------------------------------------------------------------------- +# Firmware options +BALLER = no # Enable to ball out +BALLSTEP = 20 # Multiple in px to move, multiplied by layer number +SCROLLSTEP = 1 # Lines to scroll with ball +MOUSEKEY_ENABLE = yes # Mouse keys(+4700), needed for baller +OLED_DRIVER_ENABLE = yes +LOCAL_GLCDFONT = yes + +#Debug options +VERBOSE = yes +DEBUG_MATRIX_SCAN_RATE = no +DEBUG_BALLER = no +DEBUG_MATRIX = yes + +# A bunch of stuff that you shouldn't touch unless you +# know what you're doing. +# +# No touchy, capiche? +ifneq ($(strip $(BALLSTEP)),) + OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP)) +endif +ifneq ($(strip $(SCROLLSTEP)),) + OPT_DEFS += -DSCROLLSTEP=$(strip $(SCROLLSTEP)) +endif +ifeq ($(strip $(BALLER)), yes) + POINTING_DEVICE_ENABLE = yes + OPT_DEFS += -DBALLER +endif +ifeq ($(strip $(DEBUG_BALLER)), yes) + OPT_DEFS += -DDEBUG_BALLER +endif +ifeq ($(strip $(DEBUG_MATRIX)), yes) + OPT_DEFS += -DDEBUG_MATRIX +endif diff --git a/keyboards/gergo/rules.mk b/keyboards/gergo/rules.mk index a33bfcec8df..2b5d62988ea 100644 --- a/keyboards/gergo/rules.mk +++ b/keyboards/gergo/rules.mk @@ -4,7 +4,8 @@ # Do not edit this file! Make a copy of keymaps/default and modify that! #---------------------------------------------------------------------------- # Source includes -SRC += matrix.c i2c_master.c +SRC += matrix.c +QUANTUM_LIB_SRC += i2c_master.c # Hardware info MCU = atmega32u4 @@ -17,5 +18,6 @@ CUSTOM_MATRIX = yes EXTRAKEY_ENABLE = yes CONSOLE_ENABLE = yes COMMAND_ENABLE = yes +BOOTMAGIC_ENABLE = lite DEBOUNCE_TYPE = eager_pr From 98b237a21bf36aa073073ba74c51851a494214d3 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Tue, 6 Aug 2019 10:38:28 -0700 Subject: [PATCH 107/115] [Keyboard] New Keyboard: Booster (#6486) * initial commit * port over the kbfirmware json * add numpad_5x4 LAYOUT support * fix up layout macro to allow community layout support * add a sparse readme on how to contact Percent Studio * change .h to a .md file * fix firmware file too large error * Update keyboards/percent/booster/info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/percent/booster/info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/percent/booster/info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/percent/booster/info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/percent/booster/info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/percent/booster/keymaps/default/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/percent/booster/keymaps/default/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/percent/booster/keymaps/default/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/percent/booster/keymaps/default/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/percent/booster/keymaps/default/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/percent/booster/keymaps/default/keymap.c Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> --- keyboards/percent/booster/booster.c | 51 ++++++++++++++++++ keyboards/percent/booster/booster.h | 32 ++++++++++++ keyboards/percent/booster/config.h | 52 +++++++++++++++++++ keyboards/percent/booster/info.json | 31 +++++++++++ .../percent/booster/keymaps/default/keymap.c | 27 ++++++++++ .../percent/booster/keymaps/default/readme.md | 1 + keyboards/percent/booster/readme.md | 13 +++++ keyboards/percent/booster/rules.mk | 39 ++++++++++++++ keyboards/percent/readme.md | 6 +++ 9 files changed, 252 insertions(+) create mode 100644 keyboards/percent/booster/booster.c create mode 100644 keyboards/percent/booster/booster.h create mode 100644 keyboards/percent/booster/config.h create mode 100644 keyboards/percent/booster/info.json create mode 100644 keyboards/percent/booster/keymaps/default/keymap.c create mode 100644 keyboards/percent/booster/keymaps/default/readme.md create mode 100644 keyboards/percent/booster/readme.md create mode 100644 keyboards/percent/booster/rules.mk create mode 100644 keyboards/percent/readme.md diff --git a/keyboards/percent/booster/booster.c b/keyboards/percent/booster/booster.c new file mode 100644 index 00000000000..3a298f58fff --- /dev/null +++ b/keyboards/percent/booster/booster.c @@ -0,0 +1,51 @@ +/* Copyright 2019 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 "booster.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 + + 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); +} + +*/ diff --git a/keyboards/percent/booster/booster.h b/keyboards/percent/booster/booster.h new file mode 100644 index 00000000000..be2d2cb12bc --- /dev/null +++ b/keyboards/percent/booster/booster.h @@ -0,0 +1,32 @@ +/* Copyright 2019 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 LAYOUT_numpad_5x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, \ + K20, K21, K22, K23, \ + K30, K31, K32, \ + K40, K42, K33 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, KC_NO }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 }, \ + { K40, KC_NO, K42, KC_NO }, \ +} diff --git a/keyboards/percent/booster/config.h b/keyboards/percent/booster/config.h new file mode 100644 index 00000000000..23ac7ad0c81 --- /dev/null +++ b/keyboards/percent/booster/config.h @@ -0,0 +1,52 @@ +/* +Copyright 2019 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 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Percent Studio +#define PRODUCT Booster +#define DESCRIPTION Custom programmable numpad + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +#define MATRIX_ROW_PINS { D1, D6, D7, B4, B5 } +#define MATRIX_COL_PINS { C7, D4, D2, D0 } + +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_LEVELS 3 + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN E2 +#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 + #define RGBLIGHT_SLEEP + #define RGBLIGHT_ANIMATIONS +#endif + diff --git a/keyboards/percent/booster/info.json b/keyboards/percent/booster/info.json new file mode 100644 index 00000000000..c5d230deb48 --- /dev/null +++ b/keyboards/percent/booster/info.json @@ -0,0 +1,31 @@ +{ + "keyboard_name": "booster", + "url": "", + "maintainer": "qmk", + "width": 4, + "height": 5, + "layouts": { + "LAYOUT": { + "key_count": 17, + "layout": [ + {"label":"K00 (D1,C7)", "x":0, "y":0}, + {"label":"K01 (D1,D4)", "x":1, "y":0}, + {"label":"K02 (D1,D2)", "x":2, "y":0}, + {"label":"K03 (D1,D0)", "x":3, "y":0}, + {"label":"K10 (D6,C7)", "x":0, "y":1}, + {"label":"K11 (D6,D4)", "x":1, "y":1}, + {"label":"K12 (D6,D2)", "x":2, "y":1}, + {"label":"K20 (D7,C7)", "x":0, "y":2}, + {"label":"K21 (D7,D4)", "x":1, "y":2}, + {"label":"K22 (D7,D2)", "x":2, "y":2}, + {"label":"K23 (D7,D0)", "x":3, "y":1, "h":2}, + {"label":"K30 (B4,C7)", "x":0, "y":3}, + {"label":"K31 (B4,D4)", "x":1, "y":3}, + {"label":"K32 (B4,D2)", "x":2, "y":3}, + {"label":"K40 (B5,C7)", "x":0, "y":4, "w":2}, + {"label":"K42 (B5,D2)", "x":2, "y":4}, + {"label":"K33 (B4,D0)", "x":3, "y":3, "h":2} + ] + } + } +} diff --git a/keyboards/percent/booster/keymaps/default/keymap.c b/keyboards/percent/booster/keymaps/default/keymap.c new file mode 100644 index 00000000000..919774bcad9 --- /dev/null +++ b/keyboards/percent/booster/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2019 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_numpad_5x4( + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ), + +}; diff --git a/keyboards/percent/booster/keymaps/default/readme.md b/keyboards/percent/booster/keymaps/default/readme.md new file mode 100644 index 00000000000..0293153f029 --- /dev/null +++ b/keyboards/percent/booster/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Booster diff --git a/keyboards/percent/booster/readme.md b/keyboards/percent/booster/readme.md new file mode 100644 index 00000000000..78b4b5a35cf --- /dev/null +++ b/keyboards/percent/booster/readme.md @@ -0,0 +1,13 @@ +# Booster + +Booster is a number pad designed for Canoe. Shared exactly the same angle and approximate design language, + +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +Hardware Supported: Booster PCB +Hardware Availability: [Percent Studio Store](https://percent.studio/products/booster-for-canoe-65) + +Make example for this keyboard (after setting up your build environment): + + make percent/booster: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/percent/booster/rules.mk b/keyboards/percent/booster/rules.mk new file mode 100644 index 00000000000..30e66537f96 --- /dev/null +++ b/keyboards/percent/booster/rules.mk @@ -0,0 +1,39 @@ +MCU = atmega32u4 +F_CPU = 16000000 +ARCH = AVR8 +F_USB = $(F_CPU) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +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 = 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 +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 +EXTRAFLAGS += -flto + +LAYOUTS = numpad_5x4 \ No newline at end of file diff --git a/keyboards/percent/readme.md b/keyboards/percent/readme.md new file mode 100644 index 00000000000..8028edf03c7 --- /dev/null +++ b/keyboards/percent/readme.md @@ -0,0 +1,6 @@ +# Percent Studio + +[Website](https://percent.studio/) +[Facebook](https://www.facebook.com/PercentStudio.CN/) +[Instagram](https://www.instagram.com/percent.studio/) +[Taobao](https://shop140162967.world.taobao.com/?spm=a1z09.1.sellercard.15.15ec3606mPki7O) \ No newline at end of file From 59d3b37130fc08caf0ed2926332e8741d5fd8517 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Wed, 7 Aug 2019 04:20:53 +1000 Subject: [PATCH 109/115] Fix qmk_install.sh on Windows dropping to command prompt (#6488) --- util/win_shared_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/win_shared_install.sh b/util/win_shared_install.sh index c7517881eee..f8fc9308f45 100755 --- a/util/win_shared_install.sh +++ b/util/win_shared_install.sh @@ -34,7 +34,7 @@ function install_drivers { pushd "$download_dir" cp -f "$dir/drivers.txt" . echo - cmd.exe /c "qmk_driver_installer.exe $1 $2 drivers.txt" + cmd.exe //c "qmk_driver_installer.exe $1 $2 drivers.txt" popd > /dev/null } From 009d45d4d75310e0c4c4b5678e2e4f0200d0d606 Mon Sep 17 00:00:00 2001 From: Zach DeCook Date: Tue, 6 Aug 2019 14:26:28 -0400 Subject: [PATCH 110/115] MIDI: Fix basic noteon: send correct velocity (#6476) --- quantum/process_keycode/process_midi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/process_keycode/process_midi.c b/quantum/process_keycode/process_midi.c index a67f736285f..be6455ee944 100644 --- a/quantum/process_keycode/process_midi.c +++ b/quantum/process_keycode/process_midi.c @@ -24,7 +24,7 @@ void process_midi_basic_noteon(uint8_t note) { - midi_send_noteon(&midi_device, 0, note, 128); + midi_send_noteon(&midi_device, 0, note, 127); } void process_midi_basic_noteoff(uint8_t note) From 340c3abc28bec7df085ae087d4c0b74008d4cbcd Mon Sep 17 00:00:00 2001 From: Matthew Treadwell Date: Wed, 7 Aug 2019 05:56:03 -0700 Subject: [PATCH 111/115] Update gaming layout (#6504) --- keyboards/keebio/levinson/keymaps/treadwell/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/keebio/levinson/keymaps/treadwell/keymap.c b/keyboards/keebio/levinson/keymaps/treadwell/keymap.c index 2f0da0f525c..4d3d9a4f649 100644 --- a/keyboards/keebio/levinson/keymaps/treadwell/keymap.c +++ b/keyboards/keebio/levinson/keymaps/treadwell/keymap.c @@ -61,9 +61,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----| |----+----+----+----+----+----| ESC , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, //|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, X4 , + LSFT, Z , X , C , V , B , N , M ,COMM,DOT , UP ,ENT , //|----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X2 , SPC, SPC , X1 ,LEFT,DOWN, UP ,RGHT + LCTL, X3 ,LGUI,LALT,SPC , X2 , BSPC, X1 ,SLSH,LEFT,DOWN,RGHT //`----+----+----+----+----+----' `----+----+----+----+----+----' ), @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+------+----+----+----+----| |----+----+----+----+----+----| CAPS,SELECT,LEFT,DOWN,RGHT,DEL , PGDN, END,LBRC,RBRC,MINS,UNDS, //|----+------+----+----+----+----| |----+----+----+----+----+----| - LSFT, UNDO ,CUT ,COPY,PASTE, , LEFT,RGHT,LCBR,RCBR,PLUS,PEQL, + LSFT, UNDO ,CUT ,COPY,PASTE, , LEFT,RGHT,LCBR,RCBR,PLUS, EQL, //|----+------+----+----+----+----| |----+----+----+----+----+----| , , , , ,LALT, , , , , , //`----+------+----+----+----+----' `----+----+----+----+----+----' From 74d7d232e316b52c0d02eec3c8147166c5b272aa Mon Sep 17 00:00:00 2001 From: dsanchezseco Date: Wed, 7 Aug 2019 17:06:42 +0200 Subject: [PATCH 112/115] added missing comment of RGB control keys planck/rev6 (#6503) --- keyboards/planck/keymaps/default/keymap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 280249a9c28..588ee646e18 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -152,8 +152,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | + * v------------------------RGB CONTROL--------------------v + * ,----------------------------------------------------------------------------------- + * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------+------+------+------+------+------+------| From 3cb28bbe42a942275d3cbe530af6db4d72a37965 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Wed, 7 Aug 2019 12:00:46 -0700 Subject: [PATCH 113/115] Use the older `universal_newlines` name instead of `text` (#6506) --- bin/qmk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/qmk b/bin/qmk index c34365bed43..dfd31e20068 100755 --- a/bin/qmk +++ b/bin/qmk @@ -38,7 +38,7 @@ with open('requirements.txt', 'r') as fd: # Figure out our version command = ['git', 'describe', '--abbrev=6', '--dirty', '--always', '--tags'] -result = subprocess.run(command, text=True, capture_output=True) +result = subprocess.run(command, universal_newlines=True, capture_output=True) if result.returncode == 0: os.environ['QMK_VERSION'] = 'QMK ' + result.stdout.strip() From 8479dd65d404ff5e401ea80dfb16160d65247307 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 7 Aug 2019 19:00:45 -0700 Subject: [PATCH 114/115] [Keyboard] Southpole: add Configurator layout data (#6498) --- keyboards/southpole/info.json | 98 +++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 keyboards/southpole/info.json diff --git a/keyboards/southpole/info.json b/keyboards/southpole/info.json new file mode 100644 index 00000000000..4078824aeb7 --- /dev/null +++ b/keyboards/southpole/info.json @@ -0,0 +1,98 @@ +{ + "keyboard_name": "southpole", + "url": "", + "maintainer": "qmk", + "width": 20.5, + "height": 5, + "layouts": { + "LAYOUT": { + "key_count": 84, + "layout": [ + {"label":"Num Lock", "x":0, "y":0}, + {"label":"/", "x":1, "y":0}, + {"label":"*", "x":2, "y":0}, + {"label":"-", "x":3, "y":0}, + {"label":"Esc", "x":4.5, "y":0}, + {"label":"1", "x":5.5, "y":0}, + {"label":"2", "x":6.5, "y":0}, + {"label":"3", "x":7.5, "y":0}, + {"label":"4", "x":8.5, "y":0}, + {"label":"5", "x":9.5, "y":0}, + {"label":"6", "x":10.5, "y":0}, + {"label":"7", "x":11.5, "y":0}, + {"label":"8", "x":12.5, "y":0}, + {"label":"9", "x":13.5, "y":0}, + {"label":"0", "x":14.5, "y":0}, + {"label":"-", "x":15.5, "y":0}, + {"label":"=", "x":16.5, "y":0}, + {"label":"\\", "x":17.5, "y":0}, + {"label":"Delete", "x":18.5, "y":0}, + {"label":"Insert", "x":19.5, "y":0}, + {"label":"7", "x":0, "y":1}, + {"label":"8", "x":1, "y":1}, + {"label":"9", "x":2, "y":1}, + {"label":"+", "x":3, "y":1, "h":2}, + {"label":"Tab", "x":4.5, "y":1, "w":1.5}, + {"label":"Q", "x":6, "y":1}, + {"label":"W", "x":7, "y":1}, + {"label":"E", "x":8, "y":1}, + {"label":"R", "x":9, "y":1}, + {"label":"T", "x":10, "y":1}, + {"label":"Y", "x":11, "y":1}, + {"label":"U", "x":12, "y":1}, + {"label":"I", "x":13, "y":1}, + {"label":"O", "x":14, "y":1}, + {"label":"P", "x":15, "y":1}, + {"label":"[", "x":16, "y":1}, + {"label":"]", "x":17, "y":1}, + {"label":"Backspace", "x":18, "y":1, "w":1.5}, + {"label":"Vol +", "x":19.5, "y":1}, + {"label":"4", "x":0, "y":2}, + {"label":"5", "x":1, "y":2}, + {"label":"6", "x":2, "y":2}, + {"label":"Enter", "x":3, "y":3, "h":2}, + {"label":"Caps Lock", "x":4.5, "y":2, "w":1.75}, + {"label":"A", "x":6.25, "y":2}, + {"label":"S", "x":7.25, "y":2}, + {"label":"D", "x":8.25, "y":2}, + {"label":"F", "x":9.25, "y":2}, + {"label":"G", "x":10.25, "y":2}, + {"label":"H", "x":11.25, "y":2}, + {"label":"J", "x":12.25, "y":2}, + {"label":"K", "x":13.25, "y":2}, + {"label":"L", "x":14.25, "y":2}, + {"label":";", "x":15.25, "y":2}, + {"label":"'", "x":16.25, "y":2}, + {"label":"Enter", "x":17.25, "y":2, "w":2.25}, + {"label":"Vol -", "x":19.5, "y":2}, + {"label":"1", "x":0, "y":3}, + {"label":"2", "x":1, "y":3}, + {"label":"3", "x":2, "y":3}, + {"label":"Shift", "x":4.5, "y":3, "w":2.25}, + {"label":"Z", "x":6.75, "y":3}, + {"label":"X", "x":7.75, "y":3}, + {"label":"C", "x":8.75, "y":3}, + {"label":"V", "x":9.75, "y":3}, + {"label":"B", "x":10.75, "y":3}, + {"label":"N", "x":11.75, "y":3}, + {"label":"M", "x":12.75, "y":3}, + {"label":",", "x":13.75, "y":3}, + {"label":".", "x":14.75, "y":3}, + {"label":"/", "x":15.75, "y":3}, + {"label":"Shift", "x":16.75, "y":3, "w":1.75}, + {"label":"Up", "x":18.5, "y":3}, + {"label":"Mute", "x":19.5, "y":3}, + {"label":"0", "x":0, "y":4, "w":2}, + {"label":".", "x":2, "y":4}, + {"label":"Ctrl", "x":4.5, "y":4, "w":1.25}, + {"label":"GUI", "x":5.75, "y":4, "w":1.25}, + {"label":"Alt", "x":7, "y":4, "w":1.25}, + {"label":"Space", "x":8.25, "y":4, "w":7}, + {"label":"Fn", "x":15.25, "y":4, "w":1.5}, + {"label":"Left", "x":17.5, "y":4}, + {"label":"Down", "x":18.5, "y":4}, + {"label":"Right", "x":19.5, "y":4} + ] + } + } +} From 2c0c25d0140d75e0cd005b10aa5bc35837c363f5 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Wed, 7 Aug 2019 19:02:27 -0700 Subject: [PATCH 115/115] Move Alice to TGR Directory (#6502) * git mv alice into the tgr directory * update readme with new build instructions --- keyboards/alice/readme.md | 60 ------------------- keyboards/{ => tgr}/alice/alice.c | 0 keyboards/{ => tgr}/alice/alice.h | 0 keyboards/{ => tgr}/alice/config.h | 0 keyboards/{ => tgr}/alice/info.json | 0 .../{ => tgr}/alice/keymaps/default/keymap.c | 0 .../{ => tgr}/alice/keymaps/mrkeebs/keymap.c | 0 keyboards/tgr/alice/readme.md | 48 +++++++++++++++ keyboards/{ => tgr}/alice/rules.mk | 0 keyboards/{ => tgr}/alice/usbconfig.h | 0 10 files changed, 48 insertions(+), 60 deletions(-) delete mode 100644 keyboards/alice/readme.md rename keyboards/{ => tgr}/alice/alice.c (100%) rename keyboards/{ => tgr}/alice/alice.h (100%) rename keyboards/{ => tgr}/alice/config.h (100%) rename keyboards/{ => tgr}/alice/info.json (100%) rename keyboards/{ => tgr}/alice/keymaps/default/keymap.c (100%) rename keyboards/{ => tgr}/alice/keymaps/mrkeebs/keymap.c (100%) create mode 100644 keyboards/tgr/alice/readme.md rename keyboards/{ => tgr}/alice/rules.mk (100%) rename keyboards/{ => tgr}/alice/usbconfig.h (100%) diff --git a/keyboards/alice/readme.md b/keyboards/alice/readme.md deleted file mode 100644 index 8e901ae7e44..00000000000 --- a/keyboards/alice/readme.md +++ /dev/null @@ -1,60 +0,0 @@ -# TGR Alice - -![TGR Alice](https://i.imgur.com/cJohEqS.jpg) - -An ergonomic 60% keyboard. - -Keyboard Maintainer: [Felipe Coury](https://github.com/fcoury) -Hardware Supported: TGR Alice -Hardware Availability: Group buy finished - -Make example for this keyboard (after setting up your build environment): - - make alice:default - -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. - - -ps2avrGB keyboard firmware -========================== - -This keyboard uses the port of the QMK firmware for boards that are based on the -ps2avrGB firmware. - -Note that this is a complete replacement for the firmware, so you won't be -using Bootmapper Client to change any keyboard settings, since not all the -USB report options are supported. - -## Installing - -First, install the requirements. These commands are for OSX, but all you -need is the AVR toolchain and `bootloadHID` for flashing: - -``` -$ brew cask install crosspack-avr -$ brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb -$ pip install pyusb -``` - -Then, with the keyboard plugged in, simply run this command from the -`qmk_firmware` directory: - -``` -$ make alice -$ bootloadHID -r alice_default.hex -``` - -## Setting the board to bootloader mode - -Hold the ESC key (the one before the 1! key, in case you remaped it). - -## Troubleshooting - -From my experience, it's really hard to brick these boards. But these -tricks have been useful when it got stuck in a weird scenario. - -1. Try plugging the board in while holding the bootloader key. This will force - it to boot only the bootloader without loading the firmware. Once this is - done, just reflash the board with the original firmware. -2. Sometimes USB hubs can act weird, so try connecting the board directly - to your computer or plugging/unplugging the USB hub. diff --git a/keyboards/alice/alice.c b/keyboards/tgr/alice/alice.c similarity index 100% rename from keyboards/alice/alice.c rename to keyboards/tgr/alice/alice.c diff --git a/keyboards/alice/alice.h b/keyboards/tgr/alice/alice.h similarity index 100% rename from keyboards/alice/alice.h rename to keyboards/tgr/alice/alice.h diff --git a/keyboards/alice/config.h b/keyboards/tgr/alice/config.h similarity index 100% rename from keyboards/alice/config.h rename to keyboards/tgr/alice/config.h diff --git a/keyboards/alice/info.json b/keyboards/tgr/alice/info.json similarity index 100% rename from keyboards/alice/info.json rename to keyboards/tgr/alice/info.json diff --git a/keyboards/alice/keymaps/default/keymap.c b/keyboards/tgr/alice/keymaps/default/keymap.c similarity index 100% rename from keyboards/alice/keymaps/default/keymap.c rename to keyboards/tgr/alice/keymaps/default/keymap.c diff --git a/keyboards/alice/keymaps/mrkeebs/keymap.c b/keyboards/tgr/alice/keymaps/mrkeebs/keymap.c similarity index 100% rename from keyboards/alice/keymaps/mrkeebs/keymap.c rename to keyboards/tgr/alice/keymaps/mrkeebs/keymap.c diff --git a/keyboards/tgr/alice/readme.md b/keyboards/tgr/alice/readme.md new file mode 100644 index 00000000000..f5db63814b9 --- /dev/null +++ b/keyboards/tgr/alice/readme.md @@ -0,0 +1,48 @@ +# Alice + +![TGR Alice](https://i.imgur.com/cJohEqS.jpg) + +An ergonomic 60% keyboard. + +Keyboard Maintainer: [Felipe Coury](https://github.com/fcoury) +Hardware Supported: TGR Alice +Hardware Availability: Group buy finished + +Make example for this keyboard (after setting up your build environment): + + make tgr/alice:default + +Flashing + +ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods. + +**Reset Key:** Hold down the key located at `K00`, commonly programmed as `Esc` while plugging in the keyboard. + +Windows: +1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash). +2. Place your keyboard into reset. +3. Press the `Find Device` button and ensure that your keyboard is found. +4. Press the `Open .hex File` button and locate the `.hex` file you created. +5. Press the `Flash Device` button and wait for the process to complete. + +macOS: +1. Install homebrew by typing the following: + ``` + /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + ``` +2. Install `crosspack-avr`. + ``` + brew cask install crosspack-avr + ``` +3. Install the following packages: + ``` + brew install python3 + pip3 install pyusb + brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb + ``` + +4. Place your keyboard into reset. +5. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file. + + +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/alice/rules.mk b/keyboards/tgr/alice/rules.mk similarity index 100% rename from keyboards/alice/rules.mk rename to keyboards/tgr/alice/rules.mk diff --git a/keyboards/alice/usbconfig.h b/keyboards/tgr/alice/usbconfig.h similarity index 100% rename from keyboards/alice/usbconfig.h rename to keyboards/tgr/alice/usbconfig.h