From c20de90bf79116bc05c990d5f23a18300c1b612d Mon Sep 17 00:00:00 2001 From: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Sun, 16 May 2021 10:53:58 -0400 Subject: [PATCH 01/11] Fix suggested enum in keymaps --- keyboards/keebio/quefrency/keymaps/jonavin/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c b/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c index 67f291bd5394..b85292ac41d0 100644 --- a/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c @@ -26,7 +26,7 @@ enum custom_layers { _BASE, _FN1, _MO2, -); +}; enum custom_keycodes { From 131d2c0935b99d7641dc8cbc05e3998bdcdbada6 Mon Sep 17 00:00:00 2001 From: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Sun, 16 May 2021 13:40:57 -0400 Subject: [PATCH 02/11] Update keymap.c Change Left Fn to tap for spacebar --- keyboards/keebio/quefrency/keymaps/jonavin/keymap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c b/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c index b85292ac41d0..73d0c5af0e3e 100644 --- a/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c @@ -33,8 +33,8 @@ enum custom_keycodes { DOUBLEZERO = SAFE_RANGE, }; - - + + bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case DOUBLEZERO: @@ -47,8 +47,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -}; - +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_65( @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PSCR, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL, TT(_MO2), KC_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, MO(_FN1), KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [_FN1] = LAYOUT_65( 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_F13, KC_CALC, KC_NO, RGB_TOG, RGB_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, From 526fbf0faf5530fa0b62173273e7974dda4e6e79 Mon Sep 17 00:00:00 2001 From: Quentin Date: Mon, 17 May 2021 00:20:26 +0200 Subject: [PATCH 03/11] [Keyboard] Add scylla keyboard (#12720) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: bstiq --- keyboards/bastardkb/scylla/config.h | 39 +++++++ keyboards/bastardkb/scylla/info.json | 71 +++++++++++++ .../bastardkb/scylla/keymaps/default/keymap.c | 60 +++++++++++ .../scylla/keymaps/german_gaming/keymap.c | 90 ++++++++++++++++ .../scylla/keymaps/german_gaming/readme.md | 24 +++++ .../scylla/keymaps/german_gaming/rules.mk | 1 + .../bastardkb/scylla/keymaps/xyverz/config.h | 33 ++++++ .../bastardkb/scylla/keymaps/xyverz/keymap.c | 100 ++++++++++++++++++ keyboards/bastardkb/scylla/readme.md | 22 ++++ keyboards/bastardkb/scylla/rules.mk | 23 ++++ keyboards/bastardkb/scylla/scylla.c | 18 ++++ keyboards/bastardkb/scylla/scylla.h | 42 ++++++++ 12 files changed, 523 insertions(+) create mode 100644 keyboards/bastardkb/scylla/config.h create mode 100644 keyboards/bastardkb/scylla/info.json create mode 100644 keyboards/bastardkb/scylla/keymaps/default/keymap.c create mode 100644 keyboards/bastardkb/scylla/keymaps/german_gaming/keymap.c create mode 100644 keyboards/bastardkb/scylla/keymaps/german_gaming/readme.md create mode 100644 keyboards/bastardkb/scylla/keymaps/german_gaming/rules.mk create mode 100644 keyboards/bastardkb/scylla/keymaps/xyverz/config.h create mode 100644 keyboards/bastardkb/scylla/keymaps/xyverz/keymap.c create mode 100644 keyboards/bastardkb/scylla/readme.md create mode 100644 keyboards/bastardkb/scylla/rules.mk create mode 100644 keyboards/bastardkb/scylla/scylla.c create mode 100644 keyboards/bastardkb/scylla/scylla.h diff --git a/keyboards/bastardkb/scylla/config.h b/keyboards/bastardkb/scylla/config.h new file mode 100644 index 000000000000..b00e781df23a --- /dev/null +++ b/keyboards/bastardkb/scylla/config.h @@ -0,0 +1,39 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "config_common.h" +#define VENDOR_ID 0xA8F8 +#define PRODUCT_ID 0x1829 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Bastard Keyboards +#define PRODUCT Scylla + +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 +#define DIODE_DIRECTION ROW2COL +#define MATRIX_ROW_PINS { D7, B5, F7, F6, B6 } +#define MATRIX_COL_PINS { B4, E6, C6, B1, B3, B2 } + +#define RGB_DI_PIN D2 +#define RGBLED_NUM 58 +#define RGBLED_SPLIT { 29, 29 } +#define RGBLIGHT_LIMIT_VAL 120 +#define RGBLIGHT_ANIMATIONS +#define DEBOUNCE 5 +#define SOFT_SERIAL_PIN D0 +#define MASTER_RIGHT diff --git a/keyboards/bastardkb/scylla/info.json b/keyboards/bastardkb/scylla/info.json new file mode 100644 index 000000000000..a598b0399904 --- /dev/null +++ b/keyboards/bastardkb/scylla/info.json @@ -0,0 +1,71 @@ +{ + "keyboard_name": "The Bastard Keyboard", + "url": "https://bastardkb.com/", + "maintainer": "Quentin Lebastard", + "width": 17, + "height": 8, + "layouts": { + "LAYOUT_split_4x6_5": { + "layout": [ + {"label":"L00", "x":0, "y":0}, + {"label":"L01", "x":1, "y":0}, + {"label":"L02", "x":2, "y":0}, + {"label":"L03", "x":3, "y":0}, + {"label":"L04", "x":4, "y":0}, + {"label":"L05", "x":5, "y":0}, + {"label":"R00", "x":11, "y":0}, + {"label":"R01", "x":12, "y":0}, + {"label":"R02", "x":13, "y":0}, + {"label":"R03", "x":14, "y":0}, + {"label":"R04", "x":15, "y":0}, + {"label":"R05", "x":16, "y":0}, + {"label":"L10", "x":0, "y":1}, + {"label":"L11", "x":1, "y":1}, + {"label":"L12", "x":2, "y":1}, + {"label":"L13", "x":3, "y":1}, + {"label":"L14", "x":4, "y":1}, + {"label":"L15", "x":5, "y":1}, + {"label":"R10", "x":11, "y":1}, + {"label":"R11", "x":12, "y":1}, + {"label":"R12", "x":13, "y":1}, + {"label":"R13", "x":14, "y":1}, + {"label":"R14", "x":15, "y":1}, + {"label":"R15", "x":16, "y":1}, + {"label":"L20", "x":0, "y":2}, + {"label":"L21", "x":1, "y":2}, + {"label":"L22", "x":2, "y":2}, + {"label":"L23", "x":3, "y":2}, + {"label":"L24", "x":4, "y":2}, + {"label":"L25", "x":5, "y":2}, + {"label":"R20", "x":11, "y":2}, + {"label":"R21", "x":12, "y":2}, + {"label":"R22", "x":13, "y":2}, + {"label":"R23", "x":14, "y":2}, + {"label":"R24", "x":15, "y":2}, + {"label":"R25", "x":16, "y":2}, + {"label":"L30", "x":0, "y":3}, + {"label":"L31", "x":1, "y":3}, + {"label":"L32", "x":2, "y":3}, + {"label":"L33", "x":3, "y":3}, + {"label":"L34", "x":4, "y":3}, + {"label":"L35", "x":5, "y":3}, + {"label":"R30", "x":11, "y":3}, + {"label":"R31", "x":12, "y":3}, + {"label":"R32", "x":13, "y":3}, + {"label":"R33", "x":14, "y":3}, + {"label":"R34", "x":15, "y":3}, + {"label":"R35", "x":16, "y":3}, + {"label":"L43", "x":5, "y":4}, + {"label":"L44", "x":6, "y":4}, + {"label":"L45", "x":7, "y":4}, + {"label":"R40", "x":9, "y":4}, + {"label":"R41", "x":10, "y":4}, + {"label":"R40", "x":11, "y":4}, + {"label":"L52", "x":6, "y":5}, + {"label":"L53", "x":7, "y":5}, + {"label":"R52", "x":9, "y":5}, + {"label":"R53", "x":10, "y":5} + ] + } + } +} diff --git a/keyboards/bastardkb/scylla/keymaps/default/keymap.c b/keyboards/bastardkb/scylla/keymaps/default/keymap.c new file mode 100644 index 000000000000..49be09b689f2 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/default/keymap.c @@ -0,0 +1,60 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_split_4x6_5( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, +//-------------------------------------------------//-----------------------------------------------------------// + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, +//-------------------------------------------------//-----------------------------------------------------------// + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +//-------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, +//-------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_SPC, MO(1), MO(2), KC_ENT, KC_RGUI, + KC_HOME, KC_BSPC, KC_DEL, KC_RALT + ), + + [1] = LAYOUT_split_4x6_5( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, +//---------------------------------------------------------//-----------------------------------------------------------// + RESET, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, _______, KC_PLUS, +//---------------------------------------------------------//-----------------------------------------------------------// + _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, KC_MINS, KC_PIPE, +//---------------------------------------------------------//-----------------------------------------------------------// + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_EQL, KC_UNDS, +//---------------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, KC_RGUI, + KC_SPC, KC_BSPC, KC_RCTL, KC_ENT + ), + + [2] = LAYOUT_split_4x6_5( + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, +//---------------------------------------------------------//--------------------------------------------------------------// + _______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_LBRC, KC_RBRC, _______, KC_NLCK, KC_INS, KC_SLCK, KC_MUTE, +//---------------------------------------------------------//--------------------------------------------------------------// + _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_LPRN, KC_RPRN, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU, +//---------------------------------------------------------//--------------------------------------------------------------// + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, +//---------------------------------------------------------//--------------------------------------------------------------// + KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, RESET, + KC_SPC, KC_BSPC, KC_RCTL, KC_ENT + ), +}; diff --git a/keyboards/bastardkb/scylla/keymaps/german_gaming/keymap.c b/keyboards/bastardkb/scylla/keymaps/german_gaming/keymap.c new file mode 100644 index 000000000000..94dd182c6921 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/german_gaming/keymap.c @@ -0,0 +1,90 @@ +/* + * Copyright 2021 Joschua Gandert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include QMK_KEYBOARD_H +#include "keymap_german.h" + + +enum layer_names { + _BASE, + _GAME, /* WASD shifted right once */ + _LOWER, + _RAISE, + _ADJUST /* when both LOWER and RAISE pressed */ +}; + +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_4x6_5( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , DE_SS , + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , DE_Z , KC_U , KC_I , KC_O , KC_P , DE_UDIA, + KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , DE_ODIA, DE_ADIA, + KC_LCTL, DE_Y , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT, DE_MINS, DE_PLUS, + + RAISE, KC_SPC, KC_LCTL, KC_RALT, KC_BSPC, LOWER, + KC_ENT, KC_LALT, KC_LGUI, KC_RSFT + ), + + [_GAME] = LAYOUT_split_4x6_5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_T , KC_TAB , KC_Q , KC_W , KC_E , KC_R , _______, _______, KC_UP, _______, _______, _______, + KC_G , KC_LSFT, KC_A , KC_S , KC_D , KC_F , _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + KC_B , KC_LCTL, DE_Y , KC_X , KC_C , KC_V , _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + + [_LOWER] = LAYOUT_split_4x6_5( + KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_PSLS, KC_PAST, KC_PMNS, KC_DEL , + _______, DE_HASH, DE_CIRC, KC_PGUP, DE_LABK, _______, _______, KC_P7 , KC_P8 , KC_P9 , KC_PPLS, KC_BSPC , + _______, DE_ACUT, KC_HOME, KC_PGDN, KC_END , KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 , KC_PDOT, _______ , + _______, KC_PLUS, KC_PIPE, KC_UNDS, _______, _______, KC_P0 , KC_P1 , KC_P2 , KC_P3 , KC_PENT, KC_KP_EQUAL, + + _______, KC_RGHT, _______, _______, _______, _______, + KC_LEFT, _______, RESET , _______ + ), + + [_RAISE] = LAYOUT_split_4x6_5( + KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , + _______, _______, _______, KC_UP , _______, _______, KC_LALT, KC_INS , KC_NLCK , KC_CALC, KC_PSCREEN, KC_MUTE, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT , KC_MSEL, KC_MPRV , KC_MPLY , KC_MNXT, _______ , KC_VOLU, + _______, _______, _______, _______, _______, _______, DE_HASH, KC_MYCM , _______ , _______, KC_SLCK , KC_VOLD, + + _______, _______, _______, _______, KC_UP , _______, + _______, _______, _______, KC_DOWN + ), + + [_ADJUST] = LAYOUT_split_4x6_5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET , _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, DF(_GAME), _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, DF(_BASE), _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), +}; + + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/bastardkb/scylla/keymaps/german_gaming/readme.md b/keyboards/bastardkb/scylla/keymaps/german_gaming/readme.md new file mode 100644 index 000000000000..14de01ac4158 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/german_gaming/readme.md @@ -0,0 +1,24 @@ +![German Gaming Layout Image](https://i.imgur.com/0y938rGh.png) + +Despite being less accurate, the columns in the image are shifted up and down to avoid the [Hermann grid illusion](https://en.wikipedia.org/wiki/Grid_illusion). +​ + +# German Gaming Layout +​ +This layout was build with gaming in mind for a german user. As a result I added a "game" layer that shifts the keys of the left side (below the number row) one to the right, so that WASD is on the ESDF keys. The reason this layer was added is that using WASD is less comfortable with a contoured Dactyl-style keyboard, where each column is adjusted for the respective fingers. ESDF also has the upside of allowing one to stay in the home row. Note that the rightmost column of the default layer, so TGB, ends up in the leftmost position. + +Of course, one could just be forced to reconfigure every game, but that wouldn't be very user-friendly and likely reduce satisfaction with the layout. When in game mode, the right side of keys also features arrow keys on IJKL. + + +## Raise and Lower layer + +Additionally, via the RAISE layer, it's always possible to access the arrow keys, which are often used in game menues. On the exact same position one can access Home, End, Page Down and Page Up via the LOWER layer. The left side of the LOWER layer also contains the few characters that would usually have their own key in a traditional german keyboard. + +The right side features various media keys in the RAISE layer, and a numpad in the LOWER layer. + + +## Firmware + +The keyboard can be put into Reset mode (for flashing a keymap) by pressing **LOWER** + Super (also known as Windows key), or by pressing **LOWER** + **RAISE** + R. + +`MOUSEKEY_ENABLE` was set to `no` for this keymap, since it wasn't used and the size of the firmware ended up being too large. diff --git a/keyboards/bastardkb/scylla/keymaps/german_gaming/rules.mk b/keyboards/bastardkb/scylla/keymaps/german_gaming/rules.mk new file mode 100644 index 000000000000..0a5b666e8557 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/german_gaming/rules.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = no diff --git a/keyboards/bastardkb/scylla/keymaps/xyverz/config.h b/keyboards/bastardkb/scylla/keymaps/xyverz/config.h new file mode 100644 index 000000000000..d7baf9937613 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/xyverz/config.h @@ -0,0 +1,33 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* Select hand configuration */ +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 300 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 300 \ No newline at end of file diff --git a/keyboards/bastardkb/scylla/keymaps/xyverz/keymap.c b/keyboards/bastardkb/scylla/keymaps/xyverz/keymap.c new file mode 100644 index 000000000000..b8f70bdc9beb --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/xyverz/keymap.c @@ -0,0 +1,100 @@ +/* + * Copyright 2021 Ian Sterling + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 { _WINDOWS, _MAC, _LOWER, _RAISE, _ADJUST }; + +enum custom_keycodes { WINDOWS = SAFE_RANGE, MAC, ADJUST }; + +// Aliases to keep the keymap tidy +#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped. +#define RGB_SWR RGB_M_SW // Swirl Animation alias +#define RGB_SNK RGB_M_SN // Snake Animation alias +#define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook! +#define WINLOCK LGUI(KC_L) // Lock my PC! +#define DELGUI GUI_T(KC_DEL) +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) + + +#define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook! + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_WINDOWS] = LAYOUT_split_4x6_5( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + LOWER, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, RAISE, + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL + ), + +[_MAC] = LAYOUT_split_4x6_5( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + LOWER, KC_BSPC, DELGUI, KC_ENT, KC_SPC, RAISE, + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL + ), + +[_LOWER] = LAYOUT_split_4x6_5( + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + RESET, _______, _______, KC_UP, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_PGUP, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_DEL, _______, _______, _______, _______, + MACLOCK, _______, _______, WINLOCK + ), + +[_RAISE] = LAYOUT_split_4x6_5( + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + _______, _______, _______, KC_UP, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, RESET, + KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_PGUP, _______, KC_EQL, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_DEL, _______, _______, _______, _______, + MACLOCK, _______, _______, WINLOCK + ), + +[_ADJUST] = LAYOUT_split_4x6_5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, WINDOWS, MAC, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case WINDOWS: + set_single_persistent_default_layer(_WINDOWS); + return false; + case MAC: + set_single_persistent_default_layer(_MAC); + return false; + } + } + return true; +} diff --git a/keyboards/bastardkb/scylla/readme.md b/keyboards/bastardkb/scylla/readme.md new file mode 100644 index 000000000000..70df5cfbb9f1 --- /dev/null +++ b/keyboards/bastardkb/scylla/readme.md @@ -0,0 +1,22 @@ +# Scylla + +A modern, low-profile split ergonomic keyboard + +* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) +* Hardware Supported: elite-C V4 +* Hardware Availability: [Bastard Keyboards](https://bastardkb.com/) + +Make example for this keyboard (after setting up your build environment): + + make bastardkb/scylla:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +See the [keyboard build instructions](https://docs.bastardkb.com) + + +## Important information regarding the reset + +If you modify this firmware, make sure to always have a RESET key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up. + +Otherwise if you're stuck, open the case and reset manually by shorting Gnd and Rst, or pressing the RST button. diff --git a/keyboards/bastardkb/scylla/rules.mk b/keyboards/bastardkb/scylla/rules.mk new file mode 100644 index 000000000000..cc88208e33c1 --- /dev/null +++ b/keyboards/bastardkb/scylla/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes diff --git a/keyboards/bastardkb/scylla/scylla.c b/keyboards/bastardkb/scylla/scylla.c new file mode 100644 index 000000000000..f9e79170854d --- /dev/null +++ b/keyboards/bastardkb/scylla/scylla.c @@ -0,0 +1,18 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "scylla.h" diff --git a/keyboards/bastardkb/scylla/scylla.h b/keyboards/bastardkb/scylla/scylla.h new file mode 100644 index 000000000000..196982952f83 --- /dev/null +++ b/keyboards/bastardkb/scylla/scylla.h @@ -0,0 +1,42 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once +#include "quantum.h" + +// SWITCHED 91 and 95 - check on left ? +#define LAYOUT_split_4x6_5( \ + k00, k01, k02, k03, k04, k05, k55, k54, k53, k52, k51, k50, \ + k10, k11, k12, k13, k14, k15, k65, k64, k63, k62, k61, k60, \ + k20, k21, k22, k23, k24, k25, k75, k74, k73, k72, k71, k70, \ + k30, k31, k32, k33, k34, k35, k85, k84, k83, k82, k81, k80, \ + k43, k44, k41, k91, k94, k93, \ + k45, k42, k92, k95 \ +)\ +{\ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { KC_NO, k41, k42, k43, k44, k45 }, \ + { k50, k51, k52, k53, k54, k55 }, \ + { k60, k61, k62, k63, k64, k65 }, \ + { k70, k71, k72, k73, k74, k75 }, \ + { k80, k81, k82, k83, k84, k85 }, \ + { KC_NO, k91, k92, k93, k94, k95 }, \ +} From 29e35d83b7db08b5e705775064db07c410e1aaad Mon Sep 17 00:00:00 2001 From: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Sun, 16 May 2021 18:30:58 -0400 Subject: [PATCH 04/11] [Keymap] Add new quefrency keymap (#12913) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- .../keebio/quefrency/keymaps/jonavin/config.h | 30 +++++++ .../keebio/quefrency/keymaps/jonavin/keymap.c | 88 +++++++++++++++++++ .../keebio/quefrency/keymaps/jonavin/rules.mk | 3 + 3 files changed, 121 insertions(+) create mode 100644 keyboards/keebio/quefrency/keymaps/jonavin/config.h create mode 100644 keyboards/keebio/quefrency/keymaps/jonavin/keymap.c create mode 100644 keyboards/keebio/quefrency/keymaps/jonavin/rules.mk diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/config.h b/keyboards/keebio/quefrency/keymaps/jonavin/config.h new file mode 100644 index 000000000000..0622cdfad33d --- /dev/null +++ b/keyboards/keebio/quefrency/keymaps/jonavin/config.h @@ -0,0 +1,30 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2018 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +#define TAPPING_TOGGLE 2 +// TT set to two taps diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c b/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c new file mode 100644 index 000000000000..73d0c5af0e3e --- /dev/null +++ b/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c @@ -0,0 +1,88 @@ +/* Copyright 2021 Jonavin Eng + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum custom_layers { + _BASE, + _FN1, + _MO2, +}; + + +enum custom_keycodes { + DOUBLEZERO = SAFE_RANGE, +}; + + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case DOUBLEZERO: + if (record->event.pressed) { + // when keycode DOUBLEZERO is pressed + SEND_STRING("00"); + } else { + // when keycode DOUBLEZERO is released + } + break; + } + return true; +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_65( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_INS, + KC_PSCR, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL, + TT(_MO2), KC_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, LT(_FN1, KC_SPC), KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [_FN1] = LAYOUT_65( + 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_F13, KC_CALC, KC_NO, + RGB_TOG, RGB_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, + KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_HOME, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RCTL(KC_PGUP), KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_APP, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT)), + [_MO2] = LAYOUT_65( + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_PPLS, KC_PSLS, KC_NO, KC_NO, KC_TRNS, + KC_TAB, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_NO, KC_NO, KC_NO, KC_PEQL, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_TAB, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT, KC_HOME, + KC_TRNS, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NLCK, KC_P0, DOUBLEZERO, KC_PDOT, KC_PSLS, KC_TRNS, RCTL(KC_PGUP), KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT)), +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } +} diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/rules.mk b/keyboards/keebio/quefrency/keymaps/jonavin/rules.mk new file mode 100644 index 000000000000..4b1bcabda81a --- /dev/null +++ b/keyboards/keebio/quefrency/keymaps/jonavin/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +CONSOLE_ENABLE = yes +LTO_ENABLE = yes From 3e1fa8cd319bccfaa666c63f1741b2bbabf27b78 Mon Sep 17 00:00:00 2001 From: Callum Hart Date: Sun, 16 May 2021 23:33:46 +0100 Subject: [PATCH 05/11] [Keyboard] Giant macro pad (#12905) --- keyboards/cutie_club/giant_macro_pad/config.h | 48 ++ .../giant_macro_pad/giant_macro_pad.c | 17 + .../giant_macro_pad/giant_macro_pad.h | 72 +++ .../giant_macro_pad/keymaps/default/keymap.c | 453 ++++++++++++++++++ .../giant_macro_pad/keymaps/via/config.h | 19 + .../giant_macro_pad/keymaps/via/keymap.c | 43 ++ .../giant_macro_pad/keymaps/via/rules.mk | 1 + .../cutie_club/giant_macro_pad/readme.md | 13 + keyboards/cutie_club/giant_macro_pad/rules.mk | 19 + 9 files changed, 685 insertions(+) create mode 100755 keyboards/cutie_club/giant_macro_pad/config.h create mode 100755 keyboards/cutie_club/giant_macro_pad/giant_macro_pad.c create mode 100755 keyboards/cutie_club/giant_macro_pad/giant_macro_pad.h create mode 100755 keyboards/cutie_club/giant_macro_pad/keymaps/default/keymap.c create mode 100755 keyboards/cutie_club/giant_macro_pad/keymaps/via/config.h create mode 100755 keyboards/cutie_club/giant_macro_pad/keymaps/via/keymap.c create mode 100755 keyboards/cutie_club/giant_macro_pad/keymaps/via/rules.mk create mode 100755 keyboards/cutie_club/giant_macro_pad/readme.md create mode 100755 keyboards/cutie_club/giant_macro_pad/rules.mk diff --git a/keyboards/cutie_club/giant_macro_pad/config.h b/keyboards/cutie_club/giant_macro_pad/config.h new file mode 100755 index 000000000000..c6ef81309d50 --- /dev/null +++ b/keyboards/cutie_club/giant_macro_pad/config.h @@ -0,0 +1,48 @@ +/* Copyright 2021 Cutie Club + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFB9C +#define PRODUCT_ID 0x74B6 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Cutie Club +#define PRODUCT Cupar19 Giant Macro Pad + +/* key matrix size */ +#define MATRIX_ROWS 20 +#define MATRIX_COLS 20 + +/* + * Keyboard Matrix Assignments + */ +#define MATRIX_ROW_PINS { C10, C11, C12, D2, B3, B4, B5, B6, B7, B8, A3, B2, B1, B0, C5, C4, A7, A6, A5, A4 } +#define MATRIX_COL_PINS { C9, C8, C7, C6, B15, B14, B13, B12, A8, A15, B9, A2, A1, A0, C3, C2, C1, C0, F1, F0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cutie_club/giant_macro_pad/giant_macro_pad.c b/keyboards/cutie_club/giant_macro_pad/giant_macro_pad.c new file mode 100755 index 000000000000..934817aca28e --- /dev/null +++ b/keyboards/cutie_club/giant_macro_pad/giant_macro_pad.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Cutie Club + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "giant_macro_pad.h" diff --git a/keyboards/cutie_club/giant_macro_pad/giant_macro_pad.h b/keyboards/cutie_club/giant_macro_pad/giant_macro_pad.h new file mode 100755 index 000000000000..8e0b612f3ce6 --- /dev/null +++ b/keyboards/cutie_club/giant_macro_pad/giant_macro_pad.h @@ -0,0 +1,72 @@ +/* Copyright 2021 Cutie Club + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + k00_00, k00_01, k00_02, k00_03, k00_04, k00_05, k00_06, k00_07, k00_08, k00_09, k00_10, k00_11, k00_12, k00_13, k00_14, k00_15, k00_16, k00_17, k00_18, k00_19, \ + k01_00, k01_01, k01_02, k01_03, k01_04, k01_05, k01_06, k01_07, k01_08, k01_09, k01_10, k01_11, k01_12, k01_13, k01_14, k01_15, k01_16, k01_17, k01_18, k01_19, \ + k02_00, k02_01, k02_02, k02_03, k02_04, k02_05, k02_06, k02_07, k02_08, k02_09, k02_10, k02_11, k02_12, k02_13, k02_14, k02_15, k02_16, k02_17, k02_18, k02_19, \ + k03_00, k03_01, k03_02, k03_03, k03_04, k03_05, k03_06, k03_07, k03_08, k03_09, k03_10, k03_11, k03_12, k03_13, k03_14, k03_15, k03_16, k03_17, k03_18, k03_19, \ + k04_00, k04_01, k04_02, k04_03, k04_04, k04_05, k04_06, k04_07, k04_08, k04_09, k04_10, k04_11, k04_12, k04_13, k04_14, k04_15, k04_16, k04_17, k04_18, k04_19, \ + k05_00, k05_01, k05_02, k05_03, k05_04, k05_05, k05_06, k05_07, k05_08, k05_09, k05_10, k05_11, k05_12, k05_13, k05_14, k05_15, k05_16, k05_17, k05_18, k05_19, \ + k06_00, k06_01, k06_02, k06_03, k06_04, k06_05, k06_06, k06_07, k06_08, k06_09, k06_10, k06_11, k06_12, k06_13, k06_14, k06_15, k06_16, k06_17, k06_18, k06_19, \ + k07_00, k07_01, k07_02, k07_03, k07_04, k07_05, k07_06, k07_07, k07_08, k07_09, k07_10, k07_11, k07_12, k07_13, k07_14, k07_15, k07_16, k07_17, k07_18, k07_19, \ + k08_00, k08_01, k08_02, k08_03, k08_04, k08_05, k08_06, k08_07, k08_08, k08_09, k08_10, k08_11, k08_12, k08_13, k08_14, k08_15, k08_16, k08_17, k08_18, k08_19, \ + k09_00, k09_01, k09_02, k09_03, k09_04, k09_05, k09_06, k09_07, k09_08, k09_09, k09_10, k09_11, k09_12, k09_13, k09_14, k09_15, k09_16, k09_17, k09_18, k09_19, \ + k10_00, k10_01, k10_02, k10_03, k10_04, k10_05, k10_06, k10_07, k10_08, k10_09, k10_10, k10_11, k10_12, k10_13, k10_14, k10_15, k10_16, k10_17, k10_18, k10_19, \ + k11_00, k11_01, k11_02, k11_03, k11_04, k11_05, k11_06, k11_07, k11_08, k11_09, k11_10, k11_11, k11_12, k11_13, k11_14, k11_15, k11_16, k11_17, k11_18, k11_19, \ + k12_00, k12_01, k12_02, k12_03, k12_04, k12_05, k12_06, k12_07, k12_08, k12_09, k12_10, k12_11, k12_12, k12_13, k12_14, k12_15, k12_16, k12_17, k12_18, k12_19, \ + k13_00, k13_01, k13_02, k13_03, k13_04, k13_05, k13_06, k13_07, k13_08, k13_09, k13_10, k13_11, k13_12, k13_13, k13_14, k13_15, k13_16, k13_17, k13_18, k13_19, \ + k14_00, k14_01, k14_02, k14_03, k14_04, k14_05, k14_06, k14_07, k14_08, k14_09, k14_10, k14_11, k14_12, k14_13, k14_14, k14_15, k14_16, k14_17, k14_18, k14_19, \ + k15_00, k15_01, k15_02, k15_03, k15_04, k15_05, k15_06, k15_07, k15_08, k15_09, k15_10, k15_11, k15_12, k15_13, k15_14, k15_15, k15_16, k15_17, k15_18, k15_19, \ + k16_00, k16_01, k16_02, k16_03, k16_04, k16_05, k16_06, k16_07, k16_08, k16_09, k16_10, k16_11, k16_12, k16_13, k16_14, k16_15, k16_16, k16_17, k16_18, k16_19, \ + k17_00, k17_01, k17_02, k17_03, k17_04, k17_05, k17_06, k17_07, k17_08, k17_09, k17_10, k17_11, k17_12, k17_13, k17_14, k17_15, k17_16, k17_17, k17_18, k17_19, \ + k18_00, k18_01, k18_02, k18_03, k18_04, k18_05, k18_06, k18_07, k18_08, k18_09, k18_10, k18_11, k18_12, k18_13, k18_14, k18_15, k18_16, k18_17, k18_18, k18_19, \ + k19_00, k19_01, k19_02, k19_03, k19_04, k19_05, k19_06, k19_07, k19_08, k19_09, k19_10, k19_11, k19_12, k19_13, k19_14, k19_15, k19_16, k19_17, k19_18, k19_19 \ +) \ +{ \ + { k00_00, k00_01, k00_02, k00_03, k00_04, k00_05, k00_06, k00_07, k00_08, k00_09, k00_10, k00_11, k00_12, k00_13, k00_14, k00_15, k00_16, k00_17, k00_18, k00_19 }, \ + { k01_00, k01_01, k01_02, k01_03, k01_04, k01_05, k01_06, k01_07, k01_08, k01_09, k01_10, k01_11, k01_12, k01_13, k01_14, k01_15, k01_16, k01_17, k01_18, k01_19 }, \ + { k02_00, k02_01, k02_02, k02_03, k02_04, k02_05, k02_06, k02_07, k02_08, k02_09, k02_10, k02_11, k02_12, k02_13, k02_14, k02_15, k02_16, k02_17, k02_18, k02_19 }, \ + { k03_00, k03_01, k03_02, k03_03, k03_04, k03_05, k03_06, k03_07, k03_08, k03_09, k03_10, k03_11, k03_12, k03_13, k03_14, k03_15, k03_16, k03_17, k03_18, k03_19 }, \ + { k04_00, k04_01, k04_02, k04_03, k04_04, k04_05, k04_06, k04_07, k04_08, k04_09, k04_10, k04_11, k04_12, k04_13, k04_14, k04_15, k04_16, k04_17, k04_18, k04_19 }, \ + { k05_00, k05_01, k05_02, k05_03, k05_04, k05_05, k05_06, k05_07, k05_08, k05_09, k05_10, k05_11, k05_12, k05_13, k05_14, k05_15, k05_16, k05_17, k05_18, k05_19 }, \ + { k06_00, k06_01, k06_02, k06_03, k06_04, k06_05, k06_06, k06_07, k06_08, k06_09, k06_10, k06_11, k06_12, k06_13, k06_14, k06_15, k06_16, k06_17, k06_18, k06_19 }, \ + { k07_00, k07_01, k07_02, k07_03, k07_04, k07_05, k07_06, k07_07, k07_08, k07_09, k07_10, k07_11, k07_12, k07_13, k07_14, k07_15, k07_16, k07_17, k07_18, k07_19 }, \ + { k08_00, k08_01, k08_02, k08_03, k08_04, k08_05, k08_06, k08_07, k08_08, k08_09, k08_10, k08_11, k08_12, k08_13, k08_14, k08_15, k08_16, k08_17, k08_18, k08_19 }, \ + { k09_00, k09_01, k09_02, k09_03, k09_04, k09_05, k09_06, k09_07, k09_08, k09_09, k09_10, k09_11, k09_12, k09_13, k09_14, k09_15, k09_16, k09_17, k09_18, k09_19 }, \ + { k10_00, k10_01, k10_02, k10_03, k10_04, k10_05, k10_06, k10_07, k10_08, k10_09, k10_10, k10_11, k10_12, k10_13, k10_14, k10_15, k10_16, k10_17, k10_18, k10_19 }, \ + { k11_00, k11_01, k11_02, k11_03, k11_04, k11_05, k11_06, k11_07, k11_08, k11_09, k11_10, k11_11, k11_12, k11_13, k11_14, k11_15, k11_16, k11_17, k11_18, k11_19 }, \ + { k12_00, k12_01, k12_02, k12_03, k12_04, k12_05, k12_06, k12_07, k12_08, k12_09, k12_10, k12_11, k12_12, k12_13, k12_14, k12_15, k12_16, k12_17, k12_18, k12_19 }, \ + { k13_00, k13_01, k13_02, k13_03, k13_04, k13_05, k13_06, k13_07, k13_08, k13_09, k13_10, k13_11, k13_12, k13_13, k13_14, k13_15, k13_16, k13_17, k13_18, k13_19 }, \ + { k14_00, k14_01, k14_02, k14_03, k14_04, k14_05, k14_06, k14_07, k14_08, k14_09, k14_10, k14_11, k14_12, k14_13, k14_14, k14_15, k14_16, k14_17, k14_18, k14_19 }, \ + { k15_00, k15_01, k15_02, k15_03, k15_04, k15_05, k15_06, k15_07, k15_08, k15_09, k15_10, k15_11, k15_12, k15_13, k15_14, k15_15, k15_16, k15_17, k15_18, k15_19 }, \ + { k16_00, k16_01, k16_02, k16_03, k16_04, k16_05, k16_06, k16_07, k16_08, k16_09, k16_10, k16_11, k16_12, k16_13, k16_14, k16_15, k16_16, k16_17, k16_18, k16_19 }, \ + { k17_00, k17_01, k17_02, k17_03, k17_04, k17_05, k17_06, k17_07, k17_08, k17_09, k17_10, k17_11, k17_12, k17_13, k17_14, k17_15, k17_16, k17_17, k17_18, k17_19 }, \ + { k18_00, k18_01, k18_02, k18_03, k18_04, k18_05, k18_06, k18_07, k18_08, k18_09, k18_10, k18_11, k18_12, k18_13, k18_14, k18_15, k18_16, k18_17, k18_18, k18_19 }, \ + { k19_00, k19_01, k19_02, k19_03, k19_04, k19_05, k19_06, k19_07, k19_08, k19_09, k19_10, k19_11, k19_12, k19_13, k19_14, k19_15, k19_16, k19_17, k19_18, k19_19 } \ +} diff --git a/keyboards/cutie_club/giant_macro_pad/keymaps/default/keymap.c b/keyboards/cutie_club/giant_macro_pad/keymaps/default/keymap.c new file mode 100755 index 000000000000..2db71e990c13 --- /dev/null +++ b/keyboards/cutie_club/giant_macro_pad/keymaps/default/keymap.c @@ -0,0 +1,453 @@ +/* Copyright 2021 Cutie Club + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + NUM_0 = 0, + NUM_1, + NUM_2, + NUM_3, + NUM_4, + NUM_5, + NUM_6, + NUM_7, + NUM_8, + NUM_9, + NUM_10, + NUM_11, + NUM_12, + NUM_13, + NUM_14, + NUM_15, + NUM_16, + NUM_17, + NUM_18, + NUM_19, + NUM_20, + NUM_21, + NUM_22, + NUM_23, + NUM_24, + NUM_25, + NUM_26, + NUM_27, + NUM_28, + NUM_29, + NUM_30, + NUM_31, + NUM_32, + NUM_33, + NUM_34, + NUM_35, + NUM_36, + NUM_37, + NUM_38, + NUM_39, + NUM_40, + NUM_41, + NUM_42, + NUM_43, + NUM_44, + NUM_45, + NUM_46, + NUM_47, + NUM_48, + NUM_49, + NUM_50, + NUM_51, + NUM_52, + NUM_53, + NUM_54, + NUM_55, + NUM_56, + NUM_57, + NUM_58, + NUM_59, + NUM_60, + NUM_61, + NUM_62, + NUM_63, + NUM_64, + NUM_65, + NUM_66, + NUM_67, + NUM_68, + NUM_69, + NUM_70, + NUM_71, + NUM_72, + NUM_73, + NUM_74, + NUM_75, + NUM_76, + NUM_77, + NUM_78, + NUM_79, + NUM_80, + NUM_81, + NUM_82, + NUM_83, + NUM_84, + NUM_85, + NUM_86, + NUM_87, + NUM_88, + NUM_89, + NUM_90, + NUM_91, + NUM_92, + NUM_93, + NUM_94, + NUM_95, + NUM_96, + NUM_97, + NUM_98, + NUM_99, + NUM_100, + NUM_101, + NUM_102, + NUM_103, + NUM_104, + NUM_105, + NUM_106, + NUM_107, + NUM_108, + NUM_109, + NUM_110, + NUM_111, + NUM_112, + NUM_113, + NUM_114, + NUM_115, + NUM_116, + NUM_117, + NUM_118, + NUM_119, + NUM_120, + NUM_121, + NUM_122, + NUM_123, + NUM_124, + NUM_125, + NUM_126, + NUM_127, + NUM_128, + NUM_129, + NUM_130, + NUM_131, + NUM_132, + NUM_133, + NUM_134, + NUM_135, + NUM_136, + NUM_137, + NUM_138, + NUM_139, + NUM_140, + NUM_141, + NUM_142, + NUM_143, + NUM_144, + NUM_145, + NUM_146, + NUM_147, + NUM_148, + NUM_149, + NUM_150, + NUM_151, + NUM_152, + NUM_153, + NUM_154, + NUM_155, + NUM_156, + NUM_157, + NUM_158, + NUM_159, + NUM_160, + NUM_161, + NUM_162, + NUM_163, + NUM_164, + NUM_165, + NUM_166, + NUM_167, + NUM_168, + NUM_169, + NUM_170, + NUM_171, + NUM_172, + NUM_173, + NUM_174, + NUM_175, + NUM_176, + NUM_177, + NUM_178, + NUM_179, + NUM_180, + NUM_181, + NUM_182, + NUM_183, + NUM_184, + NUM_185, + NUM_186, + NUM_187, + NUM_188, + NUM_189, + NUM_190, + NUM_191, + NUM_192, + NUM_193, + NUM_194, + NUM_195, + NUM_196, + NUM_197, + NUM_198, + NUM_199, + NUM_200, + NUM_201, + NUM_202, + NUM_203, + NUM_204, + NUM_205, + NUM_206, + NUM_207, + NUM_208, + NUM_209, + NUM_210, + NUM_211, + NUM_212, + NUM_213, + NUM_214, + NUM_215, + NUM_216, + NUM_217, + NUM_218, + NUM_219, + NUM_220, + NUM_221, + NUM_222, + NUM_223, + NUM_224, + NUM_225, + NUM_226, + NUM_227, + NUM_228, + NUM_229, + NUM_230, + NUM_231, + NUM_232, + NUM_233, + NUM_234, + NUM_235, + NUM_236, + NUM_237, + NUM_238, + NUM_239, + NUM_240, + NUM_241, + NUM_242, + NUM_243, + NUM_244, + NUM_245, + NUM_246, + NUM_247, + NUM_248, + NUM_249, + NUM_250, + NUM_251, + NUM_252, + NUM_253, + NUM_254, + NUM_255, + NUM_256, + NUM_257, + NUM_258, + NUM_259, + NUM_260, + NUM_261, + NUM_262, + NUM_263, + NUM_264, + NUM_265, + NUM_266, + NUM_267, + NUM_268, + NUM_269, + NUM_270, + NUM_271, + NUM_272, + NUM_273, + NUM_274, + NUM_275, + NUM_276, + NUM_277, + NUM_278, + NUM_279, + NUM_280, + NUM_281, + NUM_282, + NUM_283, + NUM_284, + NUM_285, + NUM_286, + NUM_287, + NUM_288, + NUM_289, + NUM_290, + NUM_291, + NUM_292, + NUM_293, + NUM_294, + NUM_295, + NUM_296, + NUM_297, + NUM_298, + NUM_299, + NUM_300, + NUM_301, + NUM_302, + NUM_303, + NUM_304, + NUM_305, + NUM_306, + NUM_307, + NUM_308, + NUM_309, + NUM_310, + NUM_311, + NUM_312, + NUM_313, + NUM_314, + NUM_315, + NUM_316, + NUM_317, + NUM_318, + NUM_319, + NUM_320, + NUM_321, + NUM_322, + NUM_323, + NUM_324, + NUM_325, + NUM_326, + NUM_327, + NUM_328, + NUM_329, + NUM_330, + NUM_331, + NUM_332, + NUM_333, + NUM_334, + NUM_335, + NUM_336, + NUM_337, + NUM_338, + NUM_339, + NUM_340, + NUM_341, + NUM_342, + NUM_343, + NUM_344, + NUM_345, + NUM_346, + NUM_347, + NUM_348, + NUM_349, + NUM_350, + NUM_351, + NUM_352, + NUM_353, + NUM_354, + NUM_355, + NUM_356, + NUM_357, + NUM_358, + NUM_359, + NUM_360, + NUM_361, + NUM_362, + NUM_363, + NUM_364, + NUM_365, + NUM_366, + NUM_367, + NUM_368, + NUM_369, + NUM_370, + NUM_371, + NUM_372, + NUM_373, + NUM_374, + NUM_375, + NUM_376, + NUM_377, + NUM_378, + NUM_379, + NUM_380, + NUM_381, + NUM_382, + NUM_383, + NUM_384, + NUM_385, + NUM_386, + NUM_387, + NUM_388, + NUM_389, + NUM_390, + NUM_391, + NUM_392, + NUM_393, + NUM_394, + NUM_395, + NUM_396, + NUM_397, + NUM_398, + NUM_399, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + NUM_0, NUM_1, NUM_2, NUM_3, NUM_4, NUM_5, NUM_6, NUM_7, NUM_8, NUM_9, NUM_10, NUM_11, NUM_12, NUM_13, NUM_14, NUM_15, NUM_16, NUM_17, NUM_18, NUM_19, + NUM_20, NUM_21, NUM_22, NUM_23, NUM_24, NUM_25, NUM_26, NUM_27, NUM_28, NUM_29, NUM_30, NUM_31, NUM_32, NUM_33, NUM_34, NUM_35, NUM_36, NUM_37, NUM_38, NUM_39, + NUM_40, NUM_41, NUM_42, NUM_43, NUM_44, NUM_45, NUM_46, NUM_47, NUM_48, NUM_49, NUM_50, NUM_51, NUM_52, NUM_53, NUM_54, NUM_55, NUM_56, NUM_57, NUM_58, NUM_59, + NUM_60, NUM_61, NUM_62, NUM_63, NUM_64, NUM_65, NUM_66, NUM_67, NUM_68, NUM_69, NUM_70, NUM_71, NUM_72, NUM_73, NUM_74, NUM_75, NUM_76, NUM_77, NUM_78, NUM_79, + NUM_80, NUM_81, NUM_82, NUM_83, NUM_84, NUM_85, NUM_86, NUM_87, NUM_88, NUM_89, NUM_90, NUM_91, NUM_92, NUM_93, NUM_94, NUM_95, NUM_96, NUM_97, NUM_98, NUM_99, + NUM_100,NUM_101,NUM_102,NUM_103,NUM_104,NUM_105,NUM_106,NUM_107,NUM_108,NUM_109,NUM_110,NUM_111,NUM_112,NUM_113,NUM_114,NUM_115,NUM_116,NUM_117,NUM_118,NUM_119, + NUM_120,NUM_121,NUM_122,NUM_123,NUM_124,NUM_125,NUM_126,NUM_127,NUM_128,NUM_129,NUM_130,NUM_131,NUM_132,NUM_133,NUM_134,NUM_135,NUM_136,NUM_137,NUM_138,NUM_139, + NUM_140,NUM_141,NUM_142,NUM_143,NUM_144,NUM_145,NUM_146,NUM_147,NUM_148,NUM_149,NUM_150,NUM_151,NUM_152,NUM_153,NUM_154,NUM_155,NUM_156,NUM_157,NUM_158,NUM_159, + NUM_160,NUM_161,NUM_162,NUM_163,NUM_164,NUM_165,NUM_166,NUM_167,NUM_168,NUM_169,NUM_170,NUM_171,NUM_172,NUM_173,NUM_174,NUM_175,NUM_176,NUM_177,NUM_178,NUM_179, + NUM_180,NUM_181,NUM_182,NUM_183,NUM_184,NUM_185,NUM_186,NUM_187,NUM_188,NUM_189,NUM_190,NUM_191,NUM_192,NUM_193,NUM_194,NUM_195,NUM_196,NUM_197,NUM_198,NUM_199, + NUM_200,NUM_201,NUM_202,NUM_203,NUM_204,NUM_205,NUM_206,NUM_207,NUM_208,NUM_209,NUM_210,NUM_211,NUM_212,NUM_213,NUM_214,NUM_215,NUM_216,NUM_217,NUM_218,NUM_219, + NUM_220,NUM_221,NUM_222,NUM_223,NUM_224,NUM_225,NUM_226,NUM_227,NUM_228,NUM_229,NUM_230,NUM_231,NUM_232,NUM_233,NUM_234,NUM_235,NUM_236,NUM_237,NUM_238,NUM_239, + NUM_240,NUM_241,NUM_242,NUM_243,NUM_244,NUM_245,NUM_246,NUM_247,NUM_248,NUM_249,NUM_250,NUM_251,NUM_252,NUM_253,NUM_254,NUM_255,NUM_256,NUM_257,NUM_258,NUM_259, + NUM_260,NUM_261,NUM_262,NUM_263,NUM_264,NUM_265,NUM_266,NUM_267,NUM_268,NUM_269,NUM_270,NUM_271,NUM_272,NUM_273,NUM_274,NUM_275,NUM_276,NUM_277,NUM_278,NUM_279, + NUM_280,NUM_281,NUM_282,NUM_283,NUM_284,NUM_285,NUM_286,NUM_287,NUM_288,NUM_289,NUM_290,NUM_291,NUM_292,NUM_293,NUM_294,NUM_295,NUM_296,NUM_297,NUM_298,NUM_299, + NUM_300,NUM_301,NUM_302,NUM_303,NUM_304,NUM_305,NUM_306,NUM_307,NUM_308,NUM_309,NUM_310,NUM_311,NUM_312,NUM_313,NUM_314,NUM_315,NUM_316,NUM_317,NUM_318,NUM_319, + NUM_320,NUM_321,NUM_322,NUM_323,NUM_324,NUM_325,NUM_326,NUM_327,NUM_328,NUM_329,NUM_330,NUM_331,NUM_332,NUM_333,NUM_334,NUM_335,NUM_336,NUM_337,NUM_338,NUM_339, + NUM_340,NUM_341,NUM_342,NUM_343,NUM_344,NUM_345,NUM_346,NUM_347,NUM_348,NUM_349,NUM_350,NUM_351,NUM_352,NUM_353,NUM_354,NUM_355,NUM_356,NUM_357,NUM_358,NUM_359, + NUM_360,NUM_361,NUM_362,NUM_363,NUM_364,NUM_365,NUM_366,NUM_367,NUM_368,NUM_369,NUM_370,NUM_371,NUM_372,NUM_373,NUM_374,NUM_375,NUM_376,NUM_377,NUM_378,NUM_379, + NUM_380,NUM_381,NUM_382,NUM_383,NUM_384,NUM_385,NUM_386,NUM_387,NUM_388,NUM_389,NUM_390,NUM_391,NUM_392,NUM_393,NUM_394,NUM_395,NUM_396,NUM_397,NUM_398,NUM_399 + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + char numString[5]; + itoa(keycode, numString, 10); + SEND_STRING(numString); + return false; +}; diff --git a/keyboards/cutie_club/giant_macro_pad/keymaps/via/config.h b/keyboards/cutie_club/giant_macro_pad/keymaps/via/config.h new file mode 100755 index 000000000000..d7f8524d0095 --- /dev/null +++ b/keyboards/cutie_club/giant_macro_pad/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Cutie Club + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 1 diff --git a/keyboards/cutie_club/giant_macro_pad/keymaps/via/keymap.c b/keyboards/cutie_club/giant_macro_pad/keymaps/via/keymap.c new file mode 100755 index 000000000000..64b3f2b53032 --- /dev/null +++ b/keyboards/cutie_club/giant_macro_pad/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 Cutie Club + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9 + ) +}; diff --git a/keyboards/cutie_club/giant_macro_pad/keymaps/via/rules.mk b/keyboards/cutie_club/giant_macro_pad/keymaps/via/rules.mk new file mode 100755 index 000000000000..74edb2bf0d41 --- /dev/null +++ b/keyboards/cutie_club/giant_macro_pad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE=yes diff --git a/keyboards/cutie_club/giant_macro_pad/readme.md b/keyboards/cutie_club/giant_macro_pad/readme.md new file mode 100755 index 000000000000..313f1e1a8634 --- /dev/null +++ b/keyboards/cutie_club/giant_macro_pad/readme.md @@ -0,0 +1,13 @@ +# Cupar19 Giant Macro Pad + +![Cupar19 Giant Macro Pad](https://user-images.githubusercontent.com/15253132/118325863-0135e680-b4fc-11eb-99f2-754b155b0acd.png) + +* Keyboard Maintainer: [Cutie Club](https://github.com/cutie-club/) +* Hardware Supported: STM32F072 based giant 20x20 macro pad +* Hardware Availability: N/A (one-off) + +Make example for this keyboard (after setting up your build environment): + + make cutie_club/giant_macro_pad: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/cutie_club/giant_macro_pad/rules.mk b/keyboards/cutie_club/giant_macro_pad/rules.mk new file mode 100755 index 000000000000..4430f2419cfa --- /dev/null +++ b/keyboards/cutie_club/giant_macro_pad/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = STM32F072 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 6d1f0598684f250256f68f85e673109675e8be86 Mon Sep 17 00:00:00 2001 From: wxyangf Date: Sun, 16 May 2021 18:34:18 -0400 Subject: [PATCH 06/11] [Keyboard] Added bradpad support (#12912) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- keyboards/tempo_turtle/bradpad/bradpad.c | 15 ++ keyboards/tempo_turtle/bradpad/bradpad.h | 32 ++++ keyboards/tempo_turtle/bradpad/config.h | 19 +++ keyboards/tempo_turtle/bradpad/info.json | 28 ++++ .../bradpad/keymaps/4brad/config.h | 20 +++ .../bradpad/keymaps/4brad/keymap.c | 148 ++++++++++++++++++ .../bradpad/keymaps/4brad/rules.mk | 1 + .../bradpad/keymaps/default/keymap.c | 24 +++ .../bradpad/keymaps/midi_demo/config.h | 20 +++ .../bradpad/keymaps/midi_demo/keymap.c | 42 +++++ .../bradpad/keymaps/midi_demo/rules.mk | 1 + .../tempo_turtle/bradpad/keymaps/via/keymap.c | 50 ++++++ .../tempo_turtle/bradpad/keymaps/via/rules.mk | 1 + keyboards/tempo_turtle/bradpad/readme.md | 32 ++++ keyboards/tempo_turtle/bradpad/rules.mk | 23 +++ 15 files changed, 456 insertions(+) create mode 100644 keyboards/tempo_turtle/bradpad/bradpad.c create mode 100644 keyboards/tempo_turtle/bradpad/bradpad.h create mode 100644 keyboards/tempo_turtle/bradpad/config.h create mode 100644 keyboards/tempo_turtle/bradpad/info.json create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/4brad/config.h create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/4brad/keymap.c create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/4brad/rules.mk create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/default/keymap.c create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/midi_demo/config.h create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/midi_demo/keymap.c create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/midi_demo/rules.mk create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/via/keymap.c create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/via/rules.mk create mode 100644 keyboards/tempo_turtle/bradpad/readme.md create mode 100644 keyboards/tempo_turtle/bradpad/rules.mk diff --git a/keyboards/tempo_turtle/bradpad/bradpad.c b/keyboards/tempo_turtle/bradpad/bradpad.c new file mode 100644 index 000000000000..073f37a4cf9e --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/bradpad.c @@ -0,0 +1,15 @@ +/* +Copyright 2021 v3ritas +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "bradpad.h" diff --git a/keyboards/tempo_turtle/bradpad/bradpad.h b/keyboards/tempo_turtle/bradpad/bradpad.h new file mode 100644 index 000000000000..69955a5da61d --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/bradpad.h @@ -0,0 +1,32 @@ +/* +Copyright 2021 v3ritas +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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" + +// clang-format off +#define LAYOUT( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, k23, \ + k30, k31, k32, k33, \ + k41, k42\ +) { \ + { k00, k01, k02, k03, }, \ + { k10, k11, k12, k13, }, \ + { k20, k21, k22, k23, }, \ + { k30, k31, k32, k33, }, \ + { KC_NO, k41, k42, KC_NO } \ +} +// clang-format on diff --git a/keyboards/tempo_turtle/bradpad/config.h b/keyboards/tempo_turtle/bradpad/config.h new file mode 100644 index 000000000000..c6a405b05fca --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/config.h @@ -0,0 +1,19 @@ +/* +Copyright 2021 v3ritas +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 descriptor setup and keyboard setup (rows and cols) are located in info.json*/ diff --git a/keyboards/tempo_turtle/bradpad/info.json b/keyboards/tempo_turtle/bradpad/info.json new file mode 100644 index 000000000000..37125e64e42a --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/info.json @@ -0,0 +1,28 @@ +{ + "keyboard_name": "bradpad", + "url": "https://tempoturtle.com", + "maintainer": "wxyangf", + "width": 4, + "height": 5, + "diode_direction": "ROW2COL", + "matrix_pins":{ + "rows":["B7", "D5", "C7", "D2", "D3"], + "cols":["D7", "E6", "B4", "F1"] + }, + "usb":{ + "vid":"0x7474", + "pid":"0x6270", + "device_ver":"0x0001" + }, + "layouts": { + "LAYOUT": { + "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, "w":2},{"x": 2, "y":4,"w":2} + ] + } + } +} diff --git a/keyboards/tempo_turtle/bradpad/keymaps/4brad/config.h b/keyboards/tempo_turtle/bradpad/keymaps/4brad/config.h new file mode 100644 index 000000000000..4b885f24a161 --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/keymaps/4brad/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2021 v3ritas +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once +#undef TAPPING_TERM +#define TAPPING_TERM 190 + +#define MUSIC_MASK (keycode != KC_NO) +#define MIDI_ADVANCED diff --git a/keyboards/tempo_turtle/bradpad/keymaps/4brad/keymap.c b/keyboards/tempo_turtle/bradpad/keymaps/4brad/keymap.c new file mode 100644 index 000000000000..4c5e988ed5b0 --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/keymaps/4brad/keymap.c @@ -0,0 +1,148 @@ +/* +Copyright 2021 v3ritas +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +extern MidiDevice midi_device; + +enum layers { + _NATURAL, + _SHARP, + _FLAT, +}; + +/* +MIDI CC codes for generic ON/OFF swiches +80,81,82,83 +values off = 0-63 +*/ + +#define OFF 0 + +/*values on = 64-127*/ + +#define ON 127 + +/*implementation inspo taken from here: https://github.com/luantty2/pheromone_keyboard/blob/master/keyboards/pheromone/keymaps/default/keymap.c */ + +enum custom_keycodes { MIDI_CC80 = SAFE_RANGE, MIDI_CC81, MIDI_CC82, MIDI_CC83 }; + +static bool toggled_MIDI_CC80 = 0, toggled_MIDI_CC81 = 0, toggled_MIDI_CC82 = 0, toggled_MIDI_CC83 = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MIDI_CC80: + if (!IS_LAYER_ON(_NATURAL)) { + toggled_MIDI_CC80 = false; + if (record->event.pressed) { + midi_send_cc(&midi_device, midi_config.channel, 80, ON); + } else { + midi_send_cc(&midi_device, midi_config.channel, 80, OFF); + } + return true; + } else { + if (record->event.pressed) { + if (!toggled_MIDI_CC80) { + midi_send_cc(&midi_device, midi_config.channel, 80, ON); + } else { + midi_send_cc(&midi_device, midi_config.channel, 80, OFF); + } + toggled_MIDI_CC80 = !toggled_MIDI_CC80; + } + return false; + } + case MIDI_CC81: + if (!IS_LAYER_ON(_NATURAL)) { + toggled_MIDI_CC81 = false; + if (record->event.pressed) { + midi_send_cc(&midi_device, midi_config.channel, 81, ON); + } else { + midi_send_cc(&midi_device, midi_config.channel, 81, OFF); + } + return true; + } else { + if (record->event.pressed) { + if (!toggled_MIDI_CC81) { + midi_send_cc(&midi_device, midi_config.channel, 81, ON); + } else { + midi_send_cc(&midi_device, midi_config.channel, 81, OFF); + } + toggled_MIDI_CC81 = !toggled_MIDI_CC81; + } + return false; + } + case MIDI_CC82: + if (!IS_LAYER_ON(_NATURAL)) { + toggled_MIDI_CC82 = false; + if (record->event.pressed) { + midi_send_cc(&midi_device, midi_config.channel, 82, ON); + } else { + midi_send_cc(&midi_device, midi_config.channel, 82, OFF); + } + return true; + } else { + if (record->event.pressed) { + if (!toggled_MIDI_CC82) { + midi_send_cc(&midi_device, midi_config.channel, 82, ON); + } else { + midi_send_cc(&midi_device, midi_config.channel, 82, OFF); + } + toggled_MIDI_CC82 = !toggled_MIDI_CC82; + } + return false; + } + case MIDI_CC83: + if (!IS_LAYER_ON(_NATURAL)) { + toggled_MIDI_CC83 = false; + if (record->event.pressed) { + midi_send_cc(&midi_device, midi_config.channel, 83, ON); + } else { + midi_send_cc(&midi_device, midi_config.channel, 83, OFF); + } + return true; + } else { + if (record->event.pressed) { + if (!toggled_MIDI_CC83) { + midi_send_cc(&midi_device, midi_config.channel, 83, ON); + } else { + midi_send_cc(&midi_device, midi_config.channel, 83, OFF); + } + toggled_MIDI_CC83 = !toggled_MIDI_CC83; + } + return false; + } + } + return true; +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_NATURAL] = LAYOUT( + MI_C, MI_BENDD, MI_BENDU, MI_G, + MI_D, MIDI_CC80, MIDI_CC81, MI_A, + MI_E, MIDI_CC82, MIDI_CC83, MI_B, + MI_F, MI_OCTD, MI_OCTU, MI_C, + MO(_SHARP), MO(_FLAT)), + [_SHARP] = LAYOUT( + MI_Cs, KC_TRNS, KC_TRNS, MI_Gs, + MI_Ds, KC_TRNS, KC_TRNS, MI_As, + MI_F , KC_TRNS, KC_TRNS, MI_C , + MI_Fs, MI_TRNSD, MI_TRNSU, MI_Cs, + KC_TRNS, KC_TRNS), + [_FLAT] = LAYOUT( + MI_B , KC_TRNS, KC_TRNS, MI_Gb, + MI_Db, KC_TRNS, KC_TRNS, MI_Ab, + MI_Eb, KC_TRNS, KC_TRNS, MI_Bb, + MI_E , MI_TRNSD, MI_TRNSU, MI_B, + KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/tempo_turtle/bradpad/keymaps/4brad/rules.mk b/keyboards/tempo_turtle/bradpad/keymaps/4brad/rules.mk new file mode 100644 index 000000000000..b7152364aee3 --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/keymaps/4brad/rules.mk @@ -0,0 +1 @@ +MIDI_ENABLE = yes #enable MIDI \ No newline at end of file diff --git a/keyboards/tempo_turtle/bradpad/keymaps/default/keymap.c b/keyboards/tempo_turtle/bradpad/keymaps/default/keymap.c new file mode 100644 index 000000000000..331466438ab8 --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +/* +Copyright 2021 v3ritas +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, + KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, + KC_NUMLOCK, KC_KP_0, KC_KP_DOT, KC_KP_ASTERISK, + KC_KP_ENTER, KC_EQUAL) +}; diff --git a/keyboards/tempo_turtle/bradpad/keymaps/midi_demo/config.h b/keyboards/tempo_turtle/bradpad/keymaps/midi_demo/config.h new file mode 100644 index 000000000000..4b885f24a161 --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/keymaps/midi_demo/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2021 v3ritas +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once +#undef TAPPING_TERM +#define TAPPING_TERM 190 + +#define MUSIC_MASK (keycode != KC_NO) +#define MIDI_ADVANCED diff --git a/keyboards/tempo_turtle/bradpad/keymaps/midi_demo/keymap.c b/keyboards/tempo_turtle/bradpad/keymaps/midi_demo/keymap.c new file mode 100644 index 000000000000..714e64ba8048 --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/keymaps/midi_demo/keymap.c @@ -0,0 +1,42 @@ +/* +Copyright 2021 v3ritas +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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 { + _NATURAL, + _SHARP, + _FLAT +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_NATURAL] = LAYOUT( + MI_C, MI_BENDD, MI_BENDU, MI_G, + MI_D, MI_VELD, MI_VELU, MI_A, + MI_E, MI_TRNSD, MI_TRNSU, MI_B, + MI_F, MI_OCTD, MI_OCTU, MI_C, + MO(_SHARP), MO(_FLAT)), + [_SHARP] = LAYOUT( + MI_Cs, KC_TRNS, KC_TRNS, MI_Gs, + MI_Ds, KC_TRNS, KC_TRNS, MI_As, + MI_F , KC_TRNS, KC_TRNS, MI_C , + MI_Fs, KC_TRNS, KC_TRNS, MI_Cs, + KC_TRNS, KC_TRNS), + [_FLAT] = LAYOUT( + MI_B , KC_TRNS, KC_TRNS, MI_Gb, + MI_Db, KC_TRNS, KC_TRNS, MI_Ab, + MI_Eb, KC_TRNS, KC_TRNS, MI_Bb, + MI_E , KC_TRNS, KC_TRNS, MI_B, + KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/tempo_turtle/bradpad/keymaps/midi_demo/rules.mk b/keyboards/tempo_turtle/bradpad/keymaps/midi_demo/rules.mk new file mode 100644 index 000000000000..b7152364aee3 --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/keymaps/midi_demo/rules.mk @@ -0,0 +1 @@ +MIDI_ENABLE = yes #enable MIDI \ No newline at end of file diff --git a/keyboards/tempo_turtle/bradpad/keymaps/via/keymap.c b/keyboards/tempo_turtle/bradpad/keymaps/via/keymap.c new file mode 100644 index 000000000000..0ef205288a33 --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/keymaps/via/keymap.c @@ -0,0 +1,50 @@ +/* +Copyright 2021 v3ritas +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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 { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, \ + KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, \ + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, \ + KC_NUMLOCK, KC_KP_0, KC_KP_DOT, KC_KP_ASTERISK, \ + KC_KP_ENTER, KC_EQUAL), + [_LAYER1] = 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), + [_LAYER2] = 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), + [_LAYER3] = 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) +}; +// clang-format on diff --git a/keyboards/tempo_turtle/bradpad/keymaps/via/rules.mk b/keyboards/tempo_turtle/bradpad/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/tempo_turtle/bradpad/readme.md b/keyboards/tempo_turtle/bradpad/readme.md new file mode 100644 index 000000000000..d42373e7b57e --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/readme.md @@ -0,0 +1,32 @@ +# bradpad + +![bradpad](https://imgur.com/1WONr4Ph.jpg) + +The QMK firmware for the bradpad a music production inspired macropad. + +* Keyboard Maintainer: [wxyangf](https://github.com/wxyangf) +* Hardware Supported: bradpad pcbs +* Hardware Availability: [1UP Keyboards](https://1upkeyboards.com/) + +[Album of Prototype of Production Version(v1.5.x)](https://imgur.com/a/kH5ttny) + +[Album of Elite-C Version (v1)](https://imgur.com/a/xjocnNo) + +How to reset production version into bootloader mode: + +[Video Tutorial](https://youtu.be/Bk429i4Y0E4) + + 1. Locate the reset button on the underside of the pcb. + 2. Press the reset button for a few seconds using a paperclip, fingertip(if bare pcb), other similar object. + 3. Release the reset button. + 4. Your bradpad should now be in bootloader mode. + +How to reset Elite-C version into bootloader mode: + 1. Located Elite-C + 2. Reset Elite-C + +Make example for this keyboard (after setting up your build environment): + + make tempo_turtle/bradpad: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. diff --git a/keyboards/tempo_turtle/bradpad/rules.mk b/keyboards/tempo_turtle/bradpad/rules.mk new file mode 100644 index 000000000000..c0685cf30498 --- /dev/null +++ b/keyboards/tempo_turtle/bradpad/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes From 1d3f775051fd118fc9c5d95a4f278761117c2c97 Mon Sep 17 00:00:00 2001 From: Brandon Lee <36001126+bleeCS@users.noreply.github.com> Date: Sun, 16 May 2021 18:43:33 -0400 Subject: [PATCH 07/11] [Keyboard] Update Rosa vendorId to something unique for VIA (#12918) --- keyboards/illusion/rosa/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/illusion/rosa/config.h b/keyboards/illusion/rosa/config.h index 0fcf4931c3f2..6bd4884138ca 100644 --- a/keyboards/illusion/rosa/config.h +++ b/keyboards/illusion/rosa/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0x696B // ik -> illusion keyboards +#define VENDOR_ID 0x694B // iK -> illusion keyboards #define PRODUCT_ID 0x6952 // iR -> illusion Rosa #define DEVICE_VER 0x0001 #define MANUFACTURER illusion keyboards From f7c6d68b3443e242cd658e2913d16db8b2318e03 Mon Sep 17 00:00:00 2001 From: kb-elmo Date: Mon, 17 May 2021 10:55:37 +0200 Subject: [PATCH 08/11] [Keyboard] Friedrich (#12569) * added Friedrich * Update readme.md * Update readme.md * Update keyboards/friedrich/keymaps/via/rules.mk * change USB name casing --- keyboards/friedrich/config.h | 45 ++++++++++++++ keyboards/friedrich/friedrich.c | 17 ++++++ keyboards/friedrich/friedrich.h | 43 +++++++++++++ keyboards/friedrich/info.json | 64 ++++++++++++++++++++ keyboards/friedrich/keymaps/default/keymap.c | 33 ++++++++++ keyboards/friedrich/keymaps/via/keymap.c | 47 ++++++++++++++ keyboards/friedrich/keymaps/via/rules.mk | 1 + keyboards/friedrich/readme.md | 21 +++++++ keyboards/friedrich/rules.mk | 22 +++++++ 9 files changed, 293 insertions(+) create mode 100644 keyboards/friedrich/config.h create mode 100644 keyboards/friedrich/friedrich.c create mode 100644 keyboards/friedrich/friedrich.h create mode 100644 keyboards/friedrich/info.json create mode 100644 keyboards/friedrich/keymaps/default/keymap.c create mode 100644 keyboards/friedrich/keymaps/via/keymap.c create mode 100644 keyboards/friedrich/keymaps/via/rules.mk create mode 100644 keyboards/friedrich/readme.md create mode 100644 keyboards/friedrich/rules.mk diff --git a/keyboards/friedrich/config.h b/keyboards/friedrich/config.h new file mode 100644 index 000000000000..1e4e36f2e400 --- /dev/null +++ b/keyboards/friedrich/config.h @@ -0,0 +1,45 @@ +/* +Copyright 2021 kb-elmo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License 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 0x6481 +#define PRODUCT_ID 0xB4A2 +#define DEVICE_VER 0x0001 +#define MANUFACTURER kb-elmo +#define PRODUCT Friedrich + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { F4, F1, F0, F5, D5 } +#define MATRIX_COL_PINS { F6, F7, E6, B2, B3, D4, D6, D7, B4, C6, B5, B6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* CAPS LED */ +#define LED_CAPS_LOCK_PIN B1 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/friedrich/friedrich.c b/keyboards/friedrich/friedrich.c new file mode 100644 index 000000000000..5c6995202d96 --- /dev/null +++ b/keyboards/friedrich/friedrich.c @@ -0,0 +1,17 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "friedrich.h" diff --git a/keyboards/friedrich/friedrich.h b/keyboards/friedrich/friedrich.h new file mode 100644 index 000000000000..d4f043b771f7 --- /dev/null +++ b/keyboards/friedrich/friedrich.h @@ -0,0 +1,43 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +/* This is 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( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k210, k011, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k211, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k311, \ + k400, k401, k405, k409, k410 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, ____, k311 }, \ + { k400, k401, ____, ____, ____, k405, ____, ____, ____, k409, k410, ____ } \ +} diff --git a/keyboards/friedrich/info.json b/keyboards/friedrich/info.json new file mode 100644 index 000000000000..94b9f1a20519 --- /dev/null +++ b/keyboards/friedrich/info.json @@ -0,0 +1,64 @@ +{ + "keyboard_name": "Friedrich", + "url": "https://github.com/MarvFPV/Friedrich", + "maintainer": "kb-elmo", + "width": 13, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":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":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, "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, "w":2.25}, + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3, "w":1.75}, + {"x":1.125, "y":4}, + {"x":2.125, "y":4, "w":1.25}, + {"x":3.375, "y":4, "w":6.25}, + {"x":9.625, "y":4, "w":1.25}, + {"x":10.875, "y":4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/friedrich/keymaps/default/keymap.c b/keyboards/friedrich/keymaps/default/keymap.c new file mode 100644 index 000000000000..31474f4d0666 --- /dev/null +++ b/keyboards/friedrich/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, + KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) + ), + [1] = LAYOUT( + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, KC_SLSH, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/friedrich/keymaps/via/keymap.c b/keyboards/friedrich/keymaps/via/keymap.c new file mode 100644 index 000000000000..cbbe87b16848 --- /dev/null +++ b/keyboards/friedrich/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 kb-elmo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, + KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) + ), + [1] = LAYOUT( + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, KC_SLSH, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/friedrich/keymaps/via/rules.mk b/keyboards/friedrich/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/friedrich/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/friedrich/readme.md b/keyboards/friedrich/readme.md new file mode 100644 index 000000000000..dbe890bd9478 --- /dev/null +++ b/keyboards/friedrich/readme.md @@ -0,0 +1,21 @@ +# Friedrich + +![friedrich](https://i.imgur.com/LH15u37l.jpg) + +A small printer friendly 3D printed 50% keyboard. + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Friedrich PCB by kb-elmo +* Hardware Availability: [Open source project](https://github.com/MarvFPV/Friedrich) + +Make example for this keyboard (after setting up your build environment): + + make friedrich:default + +Flashing example for this keyboard: + + make friedrich:default:flash + +**Bootloader:** Press the physical reset button on the top side of the PCB or hold down ESC while plugging in the board. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/friedrich/rules.mk b/keyboards/friedrich/rules.mk new file mode 100644 index 000000000000..a90eef1fc65a --- /dev/null +++ b/keyboards/friedrich/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output From 3bee24a8275eba13ada7e22b94cc96649c05e96f Mon Sep 17 00:00:00 2001 From: Caleb Lightfoot <61706196+Tsquash@users.noreply.github.com> Date: Mon, 17 May 2021 10:52:01 -0500 Subject: [PATCH 09/11] Add Yeehaw Keyboard (#12705) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add files for Yeehaw keyboard. * Modified config.h and default keymap. * Update keyboards/yeehaw/rules.mk Co-authored-by: ridingqwerty * Update keyboards/yeehaw/readme.md Co-authored-by: ridingqwerty * Update keyboards/yeehaw/readme.md Co-authored-by: ridingqwerty * Update keyboards/yeehaw/keymaps/via/keymap.c Co-authored-by: ridingqwerty * Update keyboards/yeehaw/keymaps/via/keymap.c Co-authored-by: ridingqwerty * Update keyboards/yeehaw/keymaps/via/keymap.c Co-authored-by: ridingqwerty * Apply suggestions from georges review Co-authored-by: ridingqwerty * Remove Unnecessary Defines Co-authored-by: Drashna Jaelre * Changed keymap licenses 📃 Co-authored-by: Tsqaushv2 <61706196+Tsqaushv2@users.noreply.github.com> Co-authored-by: ridingqwerty Co-authored-by: Drashna Jaelre --- keyboards/yeehaw/config.h | 50 +++++++++++++ keyboards/yeehaw/info.json | 12 +++ keyboards/yeehaw/keymaps/default/keymap.c | 71 ++++++++++++++++++ keyboards/yeehaw/keymaps/via/keymap.c | 90 +++++++++++++++++++++++ keyboards/yeehaw/keymaps/via/rules.mk | 1 + keyboards/yeehaw/readme.md | 22 ++++++ keyboards/yeehaw/rules.mk | 20 +++++ keyboards/yeehaw/yeehaw.c | 16 ++++ keyboards/yeehaw/yeehaw.h | 25 +++++++ 9 files changed, 307 insertions(+) create mode 100644 keyboards/yeehaw/config.h create mode 100644 keyboards/yeehaw/info.json create mode 100644 keyboards/yeehaw/keymaps/default/keymap.c create mode 100644 keyboards/yeehaw/keymaps/via/keymap.c create mode 100644 keyboards/yeehaw/keymaps/via/rules.mk create mode 100644 keyboards/yeehaw/readme.md create mode 100644 keyboards/yeehaw/rules.mk create mode 100644 keyboards/yeehaw/yeehaw.c create mode 100644 keyboards/yeehaw/yeehaw.h diff --git a/keyboards/yeehaw/config.h b/keyboards/yeehaw/config.h new file mode 100644 index 000000000000..c13c70eae924 --- /dev/null +++ b/keyboards/yeehaw/config.h @@ -0,0 +1,50 @@ +/* Copyright 2021 Caleb Lightfoot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 0x5351 +#define PRODUCT_ID 0x5458 +#define DEVICE_VER 0x0100 +#define MANUFACTURER squashkb +#define PRODUCT Yeehaw + + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 14 + +/* Keyboard Matrix Assignments */ +#define DIRECT_PINS { \ +{ D2, D4, C6, E6, F5, B1, D3, D7, B4, F6, B3, B5, F7, F4 } \ +} + +#define ENCODERS_PAD_A { D1 } +#define ENCODERS_PAD_B { D0 } + +#define RGB_DI_PIN B2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 7 + #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 diff --git a/keyboards/yeehaw/info.json b/keyboards/yeehaw/info.json new file mode 100644 index 000000000000..d121b07b98b2 --- /dev/null +++ b/keyboards/yeehaw/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Yeehaw", + "url": "https://squashkb.com/product/yeehaw", + "maintainer": "Tsquash", + "width": 5, + "height": 5.5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"VOLU", "x":1, "y":0}, {"label":"VOLD", "x":1, "y":1}, {"label":"M1", "x":2, "y":1.5}, {"label":"UP", "x":3, "y":1.5}, {"label":"MNXT", "x":1, "y":2}, {"label":"M2", "x":4, "y":2}, {"label":"LEFT", "x":2, "y":2.5}, {"label":"DOWN", "x":3, "y":2.5}, {"label":"MO(1)", "x":0, "y":2.75}, {"label":"MPRV", "x":1, "y":3}, {"label":"RIGHT", "x":4, "y":3}, {"label":"MPLY", "x":2, "y":3.5}, {"label":"CTL S", "x":3, "y":3.5}, {"label":"RGB TOG", "x":2.5, "y":4.5}] + } + } +} \ No newline at end of file diff --git a/keyboards/yeehaw/keymaps/default/keymap.c b/keyboards/yeehaw/keymaps/default/keymap.c new file mode 100644 index 000000000000..abcbc838a918 --- /dev/null +++ b/keyboards/yeehaw/keymaps/default/keymap.c @@ -0,0 +1,71 @@ + /* Copyright 2021 Caleb Lightfoot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + YEEHAW = SAFE_RANGE, + SQUASHKB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_VOLU, + KC_VOLD, + KC_MPRV, YEEHAW, KC_UP, SQUASHKB, + MO(1), KC_MNXT, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_MPLY, LCTL(KC_S), + RGB_TOG + ), + + [1] = LAYOUT( + RGB_HUI, + RGB_HUD, + RGB_SAI, RGB_VAI, RGB_VAD, RGB_SPI, +KC_TRNS, RGB_SAD, RGB_M_P, RGB_MOD, RGB_SPD, + KC_TRNS, KC_TRNS, + RESET + ), + +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case YEEHAW: + if (record->event.pressed) { + SEND_STRING("yeehaw!"); + } + break; + + case SQUASHKB: + if (record->event.pressed) { + SEND_STRING("http://squashkb.com"); + } + break; + } + return true; +}; diff --git a/keyboards/yeehaw/keymaps/via/keymap.c b/keyboards/yeehaw/keymaps/via/keymap.c new file mode 100644 index 000000000000..43fc3aee573e --- /dev/null +++ b/keyboards/yeehaw/keymaps/via/keymap.c @@ -0,0 +1,90 @@ + /* Copyright 2021 Caleb Lightfoot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + + +enum custom_keycodes { + YEEHAW = SAFE_RANGE, + SQUASHKB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_VOLU, + KC_VOLD, + KC_MPRV, YEEHAW, KC_UP, SQUASHKB, + MO(1), KC_MNXT, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_MPLY, LCTL(KC_S), + RGB_TOG + ), + + [1] = LAYOUT( + RGB_HUI, + RGB_HUD, + RGB_SAI, RGB_VAI, RGB_VAD, RGB_SPI, +KC_TRNS, RGB_SAD, RGB_M_P, RGB_MOD, RGB_SPD, + KC_TRNS, KC_TRNS, + RESET + ), + + [2] = LAYOUT( + ____, + ____, + ____, ____, ____, ____, +____, ____, ____, ____, ____, + ____, ____, + ____ + ), + + [3] = LAYOUT( + ____, + ____, + ____, ____, ____, ____, +____, ____, ____, ____, ____, + ____, ____, + ____ + ), + +}; + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case YEEHAW: + if (record->event.pressed) { + SEND_STRING("yeehaw!"); + } + break; + + case SQUASHKB: + if (record->event.pressed) { + SEND_STRING("http://squashkb.com"); + } + break; + } + return true; +}; diff --git a/keyboards/yeehaw/keymaps/via/rules.mk b/keyboards/yeehaw/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/yeehaw/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/yeehaw/readme.md b/keyboards/yeehaw/readme.md new file mode 100644 index 000000000000..1435254d03a9 --- /dev/null +++ b/keyboards/yeehaw/readme.md @@ -0,0 +1,22 @@ +# Yee-Haw Macro Pad + +![Yeehaw](https://imgur.com/a/P6eSrcy) + +A 14 key macro pad in the shape of Texas. + +* Keyboard Maintainer: [Caleb Lightfoot](https://github.com/Tsquash) +* Hardware Supported: Yee-Haw PCB v1.0 +* Hardware Availability: [squashkb](https://www.squashkb.com) + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb yeehaw -km default + +To reset the keyboard, press the physical reset button located on the back of the PCB. + +Install example for this keyboard: + + qmk flash -kb yeehaw -km default + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/yeehaw/rules.mk b/keyboards/yeehaw/rules.mk new file mode 100644 index 000000000000..3fc8514b5ac1 --- /dev/null +++ b/keyboards/yeehaw/rules.mk @@ -0,0 +1,20 @@ +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +ENCODER_ENABLE = yes diff --git a/keyboards/yeehaw/yeehaw.c b/keyboards/yeehaw/yeehaw.c new file mode 100644 index 000000000000..3c8a29cadef8 --- /dev/null +++ b/keyboards/yeehaw/yeehaw.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Caleb Lightfoot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "yeehaw.h" diff --git a/keyboards/yeehaw/yeehaw.h b/keyboards/yeehaw/yeehaw.h new file mode 100644 index 000000000000..0d63efab9722 --- /dev/null +++ b/keyboards/yeehaw/yeehaw.h @@ -0,0 +1,25 @@ +/* Copyright 2021 Caleb Lightfoot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013 \ +) { \ +{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013 } \ + } + From 22e9a0bd01b5e788b4595e590b4a8a7cc59082e4 Mon Sep 17 00:00:00 2001 From: rainkeebs <44819800+rainkeebs@users.noreply.github.com> Date: Mon, 17 May 2021 15:53:45 -0700 Subject: [PATCH 10/11] Added Yasui keyboard (#12726) * initial * fix * Update config.h * Update config.h * Update rules.mk * Delete info.json * fuix * PR work * replace keymap with layout Co-authored-by: rainsff <44819800+rainsff@users.noreply.github.com> --- keyboards/yasui/config.h | 56 ++++++++++++++++++++++++ keyboards/yasui/info.json | 12 +++++ keyboards/yasui/keymaps/default/keymap.c | 43 ++++++++++++++++++ keyboards/yasui/keymaps/via/keymap.c | 43 ++++++++++++++++++ keyboards/yasui/keymaps/via/rules.mk | 1 + keyboards/yasui/readme.md | 22 ++++++++++ keyboards/yasui/rules.mk | 20 +++++++++ keyboards/yasui/yasui.c | 16 +++++++ keyboards/yasui/yasui.h | 30 +++++++++++++ 9 files changed, 243 insertions(+) create mode 100644 keyboards/yasui/config.h create mode 100644 keyboards/yasui/info.json create mode 100644 keyboards/yasui/keymaps/default/keymap.c create mode 100644 keyboards/yasui/keymaps/via/keymap.c create mode 100644 keyboards/yasui/keymaps/via/rules.mk create mode 100644 keyboards/yasui/readme.md create mode 100644 keyboards/yasui/rules.mk create mode 100644 keyboards/yasui/yasui.c create mode 100644 keyboards/yasui/yasui.h diff --git a/keyboards/yasui/config.h b/keyboards/yasui/config.h new file mode 100644 index 000000000000..7d41a9e7f994 --- /dev/null +++ b/keyboards/yasui/config.h @@ -0,0 +1,56 @@ +/* Copyright 2021 Regan Palmer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 0x726B // rk - "rainkeebs" +#define PRODUCT_ID 0x7973 // ys - "yasui" +#define DEVICE_VER 0x0001 +#define MANUFACTURER rainkeebs +#define PRODUCT yasui + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 10 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D4, C6, B5, E6 } +#define MATRIX_COL_PINS { D7, B4, B6, B2, B3, B1, F7, F6, F5, F4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING 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 D1 + +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 10 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/yasui/info.json b/keyboards/yasui/info.json new file mode 100644 index 000000000000..496c190b4620 --- /dev/null +++ b/keyboards/yasui/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Yasui", + "url": "https://www.rainkeebs.mx/product/yasui-keyboard-kit", + "maintainer": "rainkeebs", + "width": 10, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}] + } + } +} diff --git a/keyboards/yasui/keymaps/default/keymap.c b/keyboards/yasui/keymaps/default/keymap.c new file mode 100644 index 000000000000..3f90b06c41d3 --- /dev/null +++ b/keyboards/yasui/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 Regan Palmer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_BSPC, + KC_LCTL, KC_LALT, MO(1), KC_LSFT, KC_MPLY, KC_SPC, KC_SPC, MO(2), KC_RALT, KC_RCTL), + + LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_ESC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MINS, KC_EQL, KC_QUOT, KC_SCLN, KC_TRNS, + KC_TAB, KC_DEL, KC_PSCR, KC_LBRC, KC_RBRC, KC_BSLS, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yasui/keymaps/via/keymap.c b/keyboards/yasui/keymaps/via/keymap.c new file mode 100644 index 000000000000..3f90b06c41d3 --- /dev/null +++ b/keyboards/yasui/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2021 Regan Palmer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_BSPC, + KC_LCTL, KC_LALT, MO(1), KC_LSFT, KC_MPLY, KC_SPC, KC_SPC, MO(2), KC_RALT, KC_RCTL), + + LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_ESC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MINS, KC_EQL, KC_QUOT, KC_SCLN, KC_TRNS, + KC_TAB, KC_DEL, KC_PSCR, KC_LBRC, KC_RBRC, KC_BSLS, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yasui/keymaps/via/rules.mk b/keyboards/yasui/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/yasui/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yasui/readme.md b/keyboards/yasui/readme.md new file mode 100644 index 000000000000..dfc20bbe6b30 --- /dev/null +++ b/keyboards/yasui/readme.md @@ -0,0 +1,22 @@ +# Yasui + +![Yasui](https://i.imgur.com/TRFOEkw.png) + +A 10u ortho kit. + +* Keyboard Maintainer: Rain +* Hardware Supported: Yasui PCB v2 +* Hardware Availability: [rainkeebs](https://www.rainkeebs.mx/product/yasui-keyboard-kit) + + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb yasui -kb default + +To reset the keyboard, hold the top left key while plugging in, or hit the reset button near the USB port + +Install example for this keyboard: + + qmk flash -kb yasui -km default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/yasui/rules.mk b/keyboards/yasui/rules.mk new file mode 100644 index 000000000000..b8adede3eb4c --- /dev/null +++ b/keyboards/yasui/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader +BOOTLOADER = caterina + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes + diff --git a/keyboards/yasui/yasui.c b/keyboards/yasui/yasui.c new file mode 100644 index 000000000000..a87f7482a0f9 --- /dev/null +++ b/keyboards/yasui/yasui.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Regan Palmer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "yasui.h" diff --git a/keyboards/yasui/yasui.h b/keyboards/yasui/yasui.h new file mode 100644 index 000000000000..387b9a5ac8b9 --- /dev/null +++ b/keyboards/yasui/yasui.h @@ -0,0 +1,30 @@ +/* Copyright 2021 Regan Palmer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309 } \ +} From 4dd5f45b6ca96de3b50e6cb48e29010ab8b94cbf Mon Sep 17 00:00:00 2001 From: Oliver Ocean Date: Mon, 17 May 2021 18:51:45 -0500 Subject: [PATCH 11/11] [Keymap] Crkbd/keymaps/oo (#12882) --- keyboards/crkbd/keymaps/oo/config.h | 28 +++++ keyboards/crkbd/keymaps/oo/keymap.c | 165 +++++++++++++++++++++++++++ keyboards/crkbd/keymaps/oo/readme.md | 19 +++ keyboards/crkbd/keymaps/oo/rules.mk | 1 + 4 files changed, 213 insertions(+) create mode 100644 keyboards/crkbd/keymaps/oo/config.h create mode 100644 keyboards/crkbd/keymaps/oo/keymap.c create mode 100644 keyboards/crkbd/keymaps/oo/readme.md create mode 100644 keyboards/crkbd/keymaps/oo/rules.mk diff --git a/keyboards/crkbd/keymaps/oo/config.h b/keyboards/crkbd/keymaps/oo/config.h new file mode 100644 index 000000000000..8dc71430a109 --- /dev/null +++ b/keyboards/crkbd/keymaps/oo/config.h @@ -0,0 +1,28 @@ +/* +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 SPLIT_USB_DETECT + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/oo/keymap.c b/keyboards/crkbd/keymaps/oo/keymap.c new file mode 100644 index 000000000000..b0b6f538a5cc --- /dev/null +++ b/keyboards/crkbd/keymaps/oo/keymap.c @@ -0,0 +1,165 @@ +/* + Copyright 2019 @foostan + Copyright 2020 Drashna Jaelre <@drashna> + Copyright 2021 Oliver Ocean <@oliverocean> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LALT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RALT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, MO(1), KC_ENT, MO(2), KC_SPC, KC_RGUI + // |--------+--------+--------| |--------+--------+--------| + ), + + [1] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_BSLS, KC_UNDS, KC_TAB, KC_PEQL, KC_TILD, KC_GRV, KC_PEQL, KC_TAB, KC_UNDS, KC_BSLS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + 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_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS + // |--------+--------+--------| |--------+--------+--------| + ), + + [2] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_PIPE, KC_LT, KC_LPRN, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, KC_RPRN, KC_GT, KC_PIPE, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PMNS, KC_PPLS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_CAPS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_CAPS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS + // |--------+--------+--------| |--------+--------+--------| + ) + +}; + + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_master) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +#define L_BASE 0 +#define L_LOWER 2 +#define L_RAISE 4 +#define L_ADJUST 8 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("Layer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_ln_P(PSTR("Default"), false); + break; + case L_LOWER: + oled_write_ln_P(PSTR("Lower"), false); + break; + case L_RAISE: + oled_write_ln_P(PSTR("Raise"), false); + break; + case L_ADJUST: + case L_ADJUST|L_LOWER: + case L_ADJUST|L_RAISE: + case L_ADJUST|L_LOWER|L_RAISE: + oled_write_ln_P(PSTR("Adjust"), false); + break; + } +} + + +char keylog_str[24] = {}; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); +} + +void oled_render_keylog(void) { + oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_master) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} +#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/keymaps/oo/readme.md b/keyboards/crkbd/keymaps/oo/readme.md new file mode 100644 index 000000000000..e7ef68659959 --- /dev/null +++ b/keyboards/crkbd/keymaps/oo/readme.md @@ -0,0 +1,19 @@ +# Build instructions + +```zsh +# if this is a fresh install of QMK, don't forget to run setup +# or you might be missing necessary tools and libraries! +# https://docs.qmk.fm/#/newbs_getting_started +$ qmk setup + +# using json via the configurator can be easier than starting from scratch +# but you will need to go back and make the formatting readable for future edits +$ qmk json2c -o keymap.c keymap.json + +# compile; use appropriate tool for your microcontroller +$ qmk compile -kb crkbd/rev1/common -km oo + +# flash; each side has to be done separately +$ qmk flash -kb crkbd/rev1/common -km oo + +``` diff --git a/keyboards/crkbd/keymaps/oo/rules.mk b/keyboards/crkbd/keymaps/oo/rules.mk new file mode 100644 index 000000000000..c582662134c4 --- /dev/null +++ b/keyboards/crkbd/keymaps/oo/rules.mk @@ -0,0 +1 @@ +OLED_DRIVER_ENABLE = yes