From e8f730595c37a508ad86cc46fa39c7fae4d36800 Mon Sep 17 00:00:00 2001 From: Fredric Silberberg Date: Tue, 30 Oct 2018 01:09:22 -0700 Subject: [PATCH 01/38] Dactyl_manuform map and updates to my ergodox layout for moving to a different location. --- .../5x6/keymaps/333fred/config.h | 9 + .../5x6/keymaps/333fred/keymap.c | 80 ++++ .../5x6/keymaps/333fred/rules.mk | 7 + layouts/community/ergodox/333fred/keymap.c | 350 ++++++++---------- .../community/ergodox/333fred/visualizer.c | 14 +- users/333fred/333fred.h | 11 +- 6 files changed, 269 insertions(+), 202 deletions(-) create mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h new file mode 100644 index 0000000000..10b9693267 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h @@ -0,0 +1,9 @@ +#pragma once + +#include "333fred_config.h" + +#define USE_SERIAL +#define EE_HANDS + +#undef TAPPING_TERM +#define TAPPING_TERM 200 diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c new file mode 100644 index 0000000000..c37009f24d --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c @@ -0,0 +1,80 @@ +#include QMK_KEYBOARD_H +#include "333fred.h" + +enum custom_macros { + DLEFT, + DRIGHT, + PSCREEN_APP +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BASE] = LAYOUT_5x6( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT), + KC_F4, KC_F5, TG(CODEFLOW), KC_EQL, + KC_LALT, KC_BSPC, KC_SPC, OSL(VIM), + KC_TAB, TD(TD_SYM_VIM), KC_ENT, KC_RGUI, + KC_LCTL, KC_DEL, KC_UP, KC_DOWN + ), + + [CODEFLOW] = LAYOUT_5x6( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F7, KC_F8, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + + [SYMB] = LAYOUT_5x6( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_7, KC_8, KC_9, _______, KC_F12, + _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, _______, KC_4, KC_5, KC_6, _______, _______, + _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, KC_1, KC_2, KC_3, _______, _______, + KC_F7, KC_F8, KC_0, KC_ENT, + _______, _______, KC_MPLY, KC_MNXT, + _______, _______, KC_MPRV, _______, + _______, _______, KC_VOLU, KC_VOLD + ), + + [VIM] = LAYOUT_5x6( + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, + _______, M(DLEFT), M(DRIGHT), KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch(id) { + case DLEFT: + if (record->event.pressed) { // Windows move desktop left + return MACRO(D(LCTL), D(LGUI), T(LEFT), U(LGUI), U(LCTL), END); + } + break; + case DRIGHT: + if (record->event.pressed) { // Windows move desktop right + return MACRO(D(LCTL), D(LGUI), T(RIGHT), U(LGUI), U(LCTL), END); + } + break; + case PSCREEN_APP: if (record->event.pressed) { + return MACRO(D(LALT), T(PSCR), U(LALT), END); + } + break; + } + return MACRO_NONE; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + tap_dance_process_record(keycode); + return true; +} diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk new file mode 100644 index 0000000000..79ef33e7c3 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk @@ -0,0 +1,7 @@ + +NKRO_ENABLE = yes +KEY_LOCK_ENABLE = yes +TAP_DANCE_ENABLE = yes +CONSOLE_ENABLE = no +PERMISSIVE_HOLD = yes +EXTRAFLAGS += -flto diff --git a/layouts/community/ergodox/333fred/keymap.c b/layouts/community/ergodox/333fred/keymap.c index d7728a5bd4..b203f42c62 100644 --- a/layouts/community/ergodox/333fred/keymap.c +++ b/layouts/community/ergodox/333fred/keymap.c @@ -11,28 +11,19 @@ enum custom_keycodes { }; enum custom_macros { - VERSION, - EEPROM, - // Windows macros DLEFT, DRIGHT, PSCREEN_APP, LSFT_TAB, - // VS Macros - REFACTOR, - TEST, - DEBUG_TEST, - FORMAT, - BUILD, - GO_TO_IMPL, - FIND_ALL_REF, - REMOVE_SORT_USINGS, - // KeePass macros KEEPASS_OPEN, KEEPASS_TYPE, + + // Terminal Copy/Paste + TERM_CP, + TERM_PT }; // NOTE: Cells marked with ACCESS must remain transparent, they're the keys that actually get to that layer @@ -41,131 +32,111 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | = | | L1 | 6 | 7 | 8 | 9 | 0 | - | + * | ` | 1 | 2 | 3 | 4 | 5 | F5 | | F6 | 6 | 7 | 8 | 9 | 0 | - | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | L1 | | L2 | Y | U | I | O | P | \ | + * | TAB | Q | W | E | R | T | GAME | |GAMEA | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------| L2 | |MO(3) |------+------+------+------+------+--------| + * |--------+------+------+------+------+------| SYMB | |MEDIA |------+------+------+------+------+--------| * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | Up | Right| RGUI | + * |LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | = | Right| RGUI | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | Copy | Paste| | Copy | Paste | * ,------|------|------| |------+--------+------. - * | | | PgUp | | PgDn | | | + * | | | PgUp | | Up | | | * | Bcksp|OSL(2)|------| |------| Ent |Space | - * | | VIM | Del | | RCtrl| | | + * | | VIM | Del | | Down | | | * `--------------------' `----------------------' */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[BASE] = LAYOUT_ergodox( // layer 0 : default +[BASE] = LAYOUT_ergodox_pretty( // layer 0 : default // left hand - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(CODE), - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, - OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(SYMB), - OSM(MOD_LCTL), KC_F4, KC_F5, KC_LGUI,KC_LALT, - LCTL(KC_C), LCTL(KC_V), - KC_PGUP, - KC_BSPC,TD(TD_SYM_VIM), KC_DEL, - // right hand - TG(CODE), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - MO(MDIA), KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT), - KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, KC_RGUI, - LCTL(KC_C), LCTL(KC_V), - KC_PGDN, - KC_RCTL, KC_ENT, KC_SPC + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(GAME), TG(GAME_ARROW), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(SYMB), MO(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT), + OSM(MOD_LCTL), KC_F4, KC_F5, KC_LGUI, KC_LALT, KC_LEFT, KC_DOWN, KC_EQL, KC_RIGHT, KC_RGUI, + LCTL(KC_C), LCTL(KC_V), LCTL(KC_C), LCTL(KC_V), + KC_PGUP, KC_UP, + KC_BSPC, TD(TD_SYM_VIM), KC_DEL, KC_DOWN, KC_ENT, KC_SPC ), -/* Keymap 1: Code Layer + +/* Keymap 2: Codeflow Layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | |ACCESS| | | | | | | + * | | | | | | | | | | | | | | | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | F10 | | F11 | | | | | | | + * | | | | | | | | | | | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | |------| |------| | | | | | | - * |--------+------+------+------+------+------| L2 | | |------+------+------+------+------+--------| + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | | | | | | | | | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | F12 |GoToIm| FAR | | | + * | | | | | | | F7 | F8 | | | | * `----------------------------------' `----------------------------------' * ,-------------. ,---------------. - * |Format|Build | | Copy | Paste | + * | |ACCESS| | | | * ,------|------|------| |------+--------+------. - * | | |Refact| | Up | | | - * | |ACCESS|------| |------| | | - * | | | | | Down | | | + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | * `--------------------' `----------------------' */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[CODE] = LAYOUT_ergodox( // layer 1 : code +[CODEFLOW] = LAYOUT_ergodox( // layer 1 : code // left hand KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F10, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(SYMB), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - M(FORMAT),M(BUILD), - M(REFACTOR), - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right han - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_F12, M(GO_TO_IMPL),M(FIND_ALL_REF),KC_TRNS, KC_TRNS, - LCTL(KC_C), LCTL(KC_V), - KC_UP, - KC_DOWN, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F7, KC_F8, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS ), -/* Keymap 2: Symbol Layer +/* Keymap 3: Symbol Layer * * ,---------------------------------------------------. ,--------------------------------------------------. - * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | | ! | @ | ( | ) | | |ACCESS| |ACCESS| Up | 7 | 8 | 9 | * | F12 | + * | | ! | @ | ( | ) | | | | | | Up | 7 | 8 | 9 | * | F12 | * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | # | $ | { | } | ` |------| |------| Down | 4 | 5 | 6 | + | | * |---------+------+------+------+------+------|ACCESS| | |------+------+------+------+------+--------| * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | EPRM | | | | | | 0 | 0 | . | = | | + * | | | | | | | 0 | 0 | . | = | | * `-----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * | | Caps | | | | + * | | | | | | * ,------|------|------| |------+------+------. * | | |APScr | | | | | * | |ACCESS|------| |------| | | - * | | | PScr | |ACCESS| | | + * | | | PScr | | | | | * `--------------------' `--------------------' */ -// SYMBOLS -[SYMB] = LAYOUT_ergodox( +[SYMB] = LAYOUT_ergodox_pretty( // left hand - VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,KC_EXLM,KC_AT, KC_LPRN,KC_RPRN,KC_PIPE,KC_TRNS, - KC_TRNS,KC_HASH,KC_DLR, KC_LCBR,KC_RCBR,KC_GRV, - KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, - EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_CAPS, - M(PSCREEN_APP), - KC_TRNS,KC_TRNS,KC_PSCR, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, - KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, - KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, KC_TRNS, KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_TRNS, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + M(PSCREEN_APP), KC_TRNS, + KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS ), /* Keymap 3: Media and mouse keys * @@ -188,32 +159,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | Back | | | * `--------------------' `--------------------' */ -// MEDIA AND MOUSE -[MDIA] = LAYOUT_ergodox( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, - BL_INC, BL_DEC, - BL_TOGG, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_VOLU, KC_TRNS, - KC_VOLD, - KC_MPRV, KC_MPLY, KC_MNXT +[MDIA] = LAYOUT_ergodox_pretty( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + BL_INC, BL_DEC, KC_VOLU, KC_TRNS, + BL_TOGG, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT ), /* Keymap 4: Movement * * ,--------------------------------------------------. ,--------------------------------------------------. * | | | | | | | | | | | | | | | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | |KOpen |KType |LSHFT | | | | | | Copy | | | | Paste| | + * | |KOpen |KType |TERMCP|TERMPT| | | | | Copy | | | | Paste| | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | |DLeft |DRight|LCTRL | LGUI | |------| |------| Left | Down | Up | Right| | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -230,26 +191,84 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------' `--------------------' */ // MEDIA AND MOUSE -[VIM] = LAYOUT_ergodox( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(KEEPASS_OPEN),M(KEEPASS_TYPE),KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(DLEFT), M(DRIGHT), KC_LCTL, KC_LGUI, KC_TRNS, - KC_TRNS, M(LSFT_TAB), KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, LCTL(KC_C),KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_V),KC_TRNS, - KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_HOME, KC_END, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS - -) +[VIM] = LAYOUT_ergodox_pretty( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(KEEPASS_OPEN), M(KEEPASS_TYPE), TERM_CP, TERM_PT, KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_C), KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_V), KC_TRNS, + KC_TRNS, M(DLEFT), M(DRIGHT), KC_LCTL, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, M(LSFT_TAB), KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_END, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 1: Game Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | |ACCESS| | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | CTRL | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | SHIFT | Z | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |ENTER | | | LOCK | BSPC | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | F5 | F6 | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | ALT | SPC |------| |------| | | + * | | | SYMB | | | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[GAME] = LAYOUT_ergodox_pretty( // layer 1 : code + // left hand + KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_Z, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_ENT, KC_TRNS, KC_TRNS, KC_LOCK, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F5, KC_F6, LCTL(KC_C), LCTL(KC_V), + KC_TRNS, KC_UP, + KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, KC_TRNS, KC_TRNS + ), +/* Keymap 1: Game Arrow Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | Up | | | | | |ACCESS| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | CTRL | Left | Down |Right | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | SHIFT | Z | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |ENTER | | | LOCK | BSPC | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | F5 | F6 | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | ALT | SPC |------| |------| | | + * | | | SYMB | | | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[GAME_ARROW] = LAYOUT_ergodox_pretty( // layer 1 : code + // left hand + KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_Z, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_ENT, KC_TRNS, KC_TRNS, KC_LOCK, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F5, KC_F6, LCTL(KC_C), LCTL(KC_V), + KC_TRNS, KC_UP, + KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, KC_TRNS, KC_TRNS + ) }; const uint16_t PROGMEM fn_actions[] = { @@ -260,16 +279,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function switch(id) { - case VERSION: - if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - break; - case EEPROM: - if (record->event.pressed) { // For resetting EEPROM - eeconfig_init(); - } - break; case DLEFT: if (record->event.pressed) { // Windows move desktop left return MACRO(D(LCTL), D(LGUI), T(LEFT), U(LGUI), U(LCTL), END); @@ -289,46 +298,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { return MACRO(D(LSFT), T(TAB), U(LSFT), END); } - case REFACTOR: - if (record->event.pressed) { // VS Refactor CTRL+R, R - return MACRO(D(LCTL), T(R), U(LCTL), T(R), END); - } - break; - case TEST: - if (record->event.pressed) { // VS Run Tests CTRL+R, T - return MACRO(D(LCTL), T(R), U(LCTL), T(T), END); - } - break; - case DEBUG_TEST: - if (record->event.pressed) { // VS Debug Tests CTRL+R, CTRL+T - return MACRO(D(LCTL), T(R), T(T), U(LCTL), END); - } - break; - case FORMAT: - if (record->event.pressed) { // VS Format Document, CTRL+K, CTRL+D - return MACRO(D(LCTL), T(K), T(D), U(LCTL), END); - } - break; - case BUILD: - if (record->event.pressed) { // VS Build. Sends CTRL+SHFT+B - return MACRO(D(LCTL), D(LSFT), T(B), U(LSFT), U(LCTL), END); - } - break; - case GO_TO_IMPL: - if (record->event.pressed) { // VS Go To Implementation. Sends CTRL+F12 - return MACRO(D(LCTL), T(F12), U(LCTL), END); - } - break; - case FIND_ALL_REF: - if (record->event.pressed) { // VS Find All References. Sends CTRL+K, R - return MACRO(D(LCTL), T(K), U(LCTL), T(R), END); - } - break; - case REMOVE_SORT_USINGS: - if (record->event.pressed) { - return MACRO(D(LCTL), T(R), T(G), U(LCTL), END); - } - break; case KEEPASS_OPEN: if (record->event.pressed) { // Keepass open application return MACRO(D(LCTL), D(LALT), T(K), U(LALT), U(LCTL), END); @@ -339,27 +308,22 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO(D(LCTL), D(LALT), T(A), U(LALT), U(LCTL), END); } break; + case TERM_CP: + if (record->event.pressed) { // Terminal Copy + return MACRO(D(LCTL), T(INSERT), U(LCTL), END); + } + break; + case TERM_PT: + if (record->event.pressed) { // Terminal Paste + return MACRO(D(LSFT), T(INSERT), U(LSFT), END); + } + break; } return MACRO_NONE; }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { tap_dance_process_record(keycode); - switch (keycode) { - // dynamically generate these. - case EPRM: - if (record->event.pressed) { - eeconfig_init(); - } - return false; - break; - case VRSN: - if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - return false; - break; - } return true; } diff --git a/layouts/community/ergodox/333fred/visualizer.c b/layouts/community/ergodox/333fred/visualizer.c index 2a30562ae7..d13b3cd794 100644 --- a/layouts/community/ergodox/333fred/visualizer.c +++ b/layouts/community/ergodox/333fred/visualizer.c @@ -14,16 +14,22 @@ static void get_visualizer_layer_and_color(visualizer_state_t* state) { if (state->status.leds & (1u << USB_LED_CAPS_LOCK)) { saturation = 255; } - if (state->status.layer & 0x10) { + if (state->status.layer & 0x80) { + state->target_lcd_color = LCD_COLOR(0, 255, 60); + state->layer_text = "Game Arrow"; + } else if (state->status.layer & 0x40) { + state->target_lcd_color = LCD_COLOR(0, 255, 60); + state->layer_text = "Game"; + } else if (state->status.layer & 0x20) { state->target_lcd_color = LCD_COLOR(140, 100, 60); state->layer_text = "Movement"; - } else if (state->status.layer & 0x8) { + } else if (state->status.layer & 0x10) { state->target_lcd_color = LCD_COLOR(0, saturation, 0xFF); state->layer_text = "Media"; - } else if (state->status.layer & 0x4) { + } else if (state->status.layer & 0x8) { state->target_lcd_color = LCD_COLOR(168, saturation, 0xFF); state->layer_text = "Symbol"; - } else if (state->status.layer & 0x2) { + } else if (state->status.layer & 0x2 || state->status.layer & 0x4) { state->target_lcd_color = LCD_COLOR(216, 90, 0xFF); state->layer_text = "Code"; } else { diff --git a/users/333fred/333fred.h b/users/333fred/333fred.h index 3b6f21133b..443930a6b1 100644 --- a/users/333fred/333fred.h +++ b/users/333fred/333fred.h @@ -4,11 +4,12 @@ #define BASE 0 #define CODE 1 // code layer -#define SYMB 2 -#define MDIA 3 // media keys -#define VIM 4 -#define GAME 5 -#define GAME_ARROW 6 +#define CODEFLOW 2 +#define SYMB 3 +#define MDIA 4 // media keys +#define VIM 5 +#define GAME 6 +#define GAME_ARROW 7 // Tap dance config shared between my keyboards enum tap_dance_declarations { From 9e6ee4777995a1ac3dfd7aa4454b0a4ed825d663 Mon Sep 17 00:00:00 2001 From: Fredric Silberberg Date: Thu, 13 Dec 2018 18:05:50 -0800 Subject: [PATCH 02/38] Added noeeprom versions of set hue, sat, val, and step --- docs/feature_rgblight.md | 18 +++++++++ quantum/rgblight.c | 80 ++++++++++++++++++++++++++++++++-------- quantum/rgblight.h | 8 ++++ 3 files changed, 90 insertions(+), 16 deletions(-) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 4610467b02..52d5c5fe8a 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -161,6 +161,24 @@ If you need to change your RGB lighting in code, for example in a macro to chang |`rgblight_sethsv(h, s, v)` |Set all LEDs to the given HSV value where `h` is between 0 and 360 and `s`/`v` are between 0 and 255 | |`rgblight_sethsv_noeeprom(h, s, v)`|Set all LEDs to the given HSV value where `h` is between 0 and 360 and `s`/`v` are between 0 and 255 (not written to EEPROM) | |`rgblight_sethsv_at(h, s, v, led)` |Set a single LED to the given HSV value, where `h` is between 0 and 360, `s`/`v` are between 0 and 255, and `led` is between 0 and `RGBLED_NUM` (not written to EEPROM)| +|`rgblight_toggle()` |Toggle all LEDs between on and off | +|`rgblight_toggle_noeeprom()` |Toggle all LEDs between on and off (not written to EEPROM) | +|`rgblight_step()` |Change the mode to the next RGB animation in the list of enabled RGB animations | +|`rgblight_step_noeeprom()` |Change the mode to the next RGB animation in the list of enabled RGB animations (not written to EEPROM) | +|`rgblight_step_reverse()` |Change the mode to the previous RGB animation in the list of enabled RGB animations | +|`rgblight_step_reverse_noeeprom()` |Change the mode to the previous RGB animation in the list of enabled RGB animations (not written to EEPROM) | +|`rgblight_increase_hue()` |Increase the hue for all LEDs. This wraps around at maximum hue | +|`rgblight_increase_hue_noeeprom()` |Increase the hue for all LEDs. This wraps around at maximum hue (not written to EEPROM) | +|`rgblight_decrease_hue()` |Decrease the hue for all LEDs. This wraps around at minimum hue | +|`rgblight_decrease_hue_noeeprom()` |Decrease the hue for all LEDs. This wraps around at minimum hue (not written to EEPROM) | +|`rgblight_increase_sat()` |Increase the saturation for all LEDs. This wraps around at maximum saturation | +|`rgblight_increase_sat_noeeprom()` |Increase the saturation for all LEDs. This wraps around at maximum saturation (not written to EEPROM) | +|`rgblight_decrease_sat()` |Decrease the saturation for all LEDs. This wraps around at minimum saturation | +|`rgblight_decrease_sat_noeeprom()` |Decrease the saturation for all LEDs. This wraps around at minimum saturation (not written to EEPROM) | +|`rgblight_increase_val()` |Increase the value for all LEDs. This wraps around at maximum value | +|`rgblight_increase_val_noeeprom()` |Increase the value for all LEDs. This wraps around at maximum value (not written to EEPROM) | +|`rgblight_decrease_val()` |Decrease the value for all LEDs. This wraps around at minimum value | +|`rgblight_decrease_val_noeeprom()` |Decrease the value for all LEDs. This wraps around at minimum value (not written to EEPROM) | Additionally, [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h) defines several predefined shortcuts for various colors. Feel free to add to this list! diff --git a/quantum/rgblight.c b/quantum/rgblight.c index a2d6fe7a07..ae5dca1884 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -205,21 +205,33 @@ void rgblight_decrease(void) { } rgblight_mode(mode); } -void rgblight_step(void) { +void rgblight_step_helper(bool write_to_eeprom) { uint8_t mode = 0; mode = rgblight_config.mode + 1; if (mode > RGBLIGHT_MODES) { mode = 1; } - rgblight_mode(mode); + rgblight_mode_eeprom_helper(mode, write_to_eeprom); } -void rgblight_step_reverse(void) { +void rgblight_step_noeeprom(void) { + rgblight_step_helper(false); +} +void rgblight_step(void) { + rgblight_step_helper(true); +} +void rgblight_step_reverse_helper(bool write_to_eeprom) { uint8_t mode = 0; mode = rgblight_config.mode - 1; if (mode < 1) { mode = RGBLIGHT_MODES; } - rgblight_mode(mode); + rgblight_mode_eeprom_helper(mode, write_to_eeprom); +} +void rgblight_step_reverse_noeeprom(void) { + rgblight_step_reverse_helper(false); +} +void rgblight_step_reverse(void) { + rgblight_step_reverse_helper(true); } uint32_t rgblight_get_mode(void) { @@ -337,55 +349,91 @@ static uint8_t decrement( uint8_t value, uint8_t step, uint8_t min, uint8_t max return MIN( MAX( new_value, min ), max ); } -void rgblight_increase_hue(void) { +void rgblight_increase_hue_helper(bool write_to_eeprom) { uint16_t hue; hue = (rgblight_config.hue+RGBLIGHT_HUE_STEP) % 360; - rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val); + rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom); } -void rgblight_decrease_hue(void) { +void rgblight_increase_hue_noeeprom(void) { + rgblight_increase_hue_helper(false); +} +void rgblight_increase_hue(void) { + rgblight_increase_hue_helper(true); +} +void rgblight_decrease_hue_helper(bool write_to_eeprom) { uint16_t hue; if (rgblight_config.hue-RGBLIGHT_HUE_STEP < 0) { hue = (rgblight_config.hue + 360 - RGBLIGHT_HUE_STEP) % 360; } else { hue = (rgblight_config.hue - RGBLIGHT_HUE_STEP) % 360; } - rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val); + rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom); } -void rgblight_increase_sat(void) { +void rgblight_decrease_hue_noeeprom(void) { + rgblight_decrease_hue_helper(false); +} +void rgblight_decrease_hue(void) { + rgblight_decrease_hue_helper(true); +} +void rgblight_increase_sat_helper(bool write_to_eeprom) { uint8_t sat; if (rgblight_config.sat + RGBLIGHT_SAT_STEP > 255) { sat = 255; } else { sat = rgblight_config.sat + RGBLIGHT_SAT_STEP; } - rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val); + rgblight_sethsv_eeprom_helper(rgblight_config.hue, sat, rgblight_config.val, write_to_eeprom); } -void rgblight_decrease_sat(void) { +void rgblight_increase_sat_noeeprom(void) { + rgblight_increase_sat_helper(false); +} +void rgblight_increase_sat(void) { + rgblight_increase_sat_helper(true); +} +void rgblight_decrease_sat_helper(bool write_to_eeprom) { uint8_t sat; if (rgblight_config.sat - RGBLIGHT_SAT_STEP < 0) { sat = 0; } else { sat = rgblight_config.sat - RGBLIGHT_SAT_STEP; } - rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val); + rgblight_sethsv_eeprom_helper(rgblight_config.hue, sat, rgblight_config.val, write_to_eeprom); } -void rgblight_increase_val(void) { +void rgblight_decrease_sat_noeeprom(void) { + rgblight_decrease_sat_helper(false); +} +void rgblight_decrease_sat(void) { + rgblight_decrease_sat_helper(true); +} +void rgblight_increase_val_helper(bool write_to_eeprom) { uint8_t val; if (rgblight_config.val + RGBLIGHT_VAL_STEP > RGBLIGHT_LIMIT_VAL) { val = RGBLIGHT_LIMIT_VAL; } else { val = rgblight_config.val + RGBLIGHT_VAL_STEP; } - rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val); + rgblight_sethsv_eeprom_helper(rgblight_config.hue, rgblight_config.sat, val, write_to_eeprom); } -void rgblight_decrease_val(void) { +void rgblight_increase_val_noeeprom(void) { + rgblight_increase_val_helper(false); +} +void rgblight_increase_val(void) { + rgblight_increase_val_helper(true); +} +void rgblight_decrease_val_helper(bool write_to_eeprom) { uint8_t val; if (rgblight_config.val - RGBLIGHT_VAL_STEP < 0) { val = 0; } else { val = rgblight_config.val - RGBLIGHT_VAL_STEP; } - rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val); + rgblight_sethsv_eeprom_helper(rgblight_config.hue, rgblight_config.sat, val, write_to_eeprom); +} +void rgblight_decrease_val_noeeprom(void) { + rgblight_decrease_val_helper(false); +} +void rgblight_decrease_val(void) { + rgblight_decrease_val_helper(true); } void rgblight_increase_speed(void) { rgblight_config.speed = increment( rgblight_config.speed, 1, 0, 3 ); diff --git a/quantum/rgblight.h b/quantum/rgblight.h index 33b279f08c..99ede43c5b 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -203,6 +203,14 @@ void rgblight_mode_noeeprom(uint8_t mode); void rgblight_toggle_noeeprom(void); void rgblight_enable_noeeprom(void); void rgblight_disable_noeeprom(void); +void rgblight_step_noeeprom(void); +void rgblight_step_reverse_noeeprom(void); +void rgblight_increase_hue_noeeprom(void); +void rgblight_decrease_hue_noeeprom(void); +void rgblight_increase_sat_noeeprom(void); +void rgblight_decrease_sat_noeeprom(void); +void rgblight_increase_val_noeeprom(void); +void rgblight_decrease_val_noeeprom(void); void rgblight_sethsv_eeprom_helper(uint16_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom); void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom); From 89b80b79d50b2193830a961b0ab3ea398ae1d6f1 Mon Sep 17 00:00:00 2001 From: Fredric Silberberg Date: Thu, 13 Dec 2018 11:06:41 -0800 Subject: [PATCH 03/38] Add big switch layout --- keyboards/bigswitch/keymaps/333fred/config.h | 20 +++ keyboards/bigswitch/keymaps/333fred/keymap.c | 123 +++++++++++++++++++ keyboards/bigswitch/keymaps/333fred/rules.mk | 5 + 3 files changed, 148 insertions(+) create mode 100644 keyboards/bigswitch/keymaps/333fred/config.h create mode 100644 keyboards/bigswitch/keymaps/333fred/keymap.c create mode 100644 keyboards/bigswitch/keymaps/333fred/rules.mk diff --git a/keyboards/bigswitch/keymaps/333fred/config.h b/keyboards/bigswitch/keymaps/333fred/config.h new file mode 100644 index 0000000000..76f13f08b5 --- /dev/null +++ b/keyboards/bigswitch/keymaps/333fred/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2018 Fredric Silberberg (333fred) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +// Long tapping term on the big switch, because it takes so long to press +#define TAPPING_TERM 500 diff --git a/keyboards/bigswitch/keymaps/333fred/keymap.c b/keyboards/bigswitch/keymaps/333fred/keymap.c new file mode 100644 index 0000000000..791fb435f4 --- /dev/null +++ b/keyboards/bigswitch/keymaps/333fred/keymap.c @@ -0,0 +1,123 @@ +#include QMK_KEYBOARD_H + +typedef enum { + SINGLE_TAP, SINGLE_HOLD, DOUBLE, TRIPLE, QUAD +} tap_dance_state_enum; + +enum { + TD_KEY = 0 +}; + +static tap_dance_state_enum tap_dance_state; +static bool tap_dance_active = false; +static uint16_t timer; + +void dance_cycle(bool override_timer) { + if (tap_dance_active) + { + if (timer_elapsed(timer) > 100 || override_timer) + { + switch (tap_dance_state) + { + case SINGLE_HOLD: + { + rgblight_increase_hue_noeeprom(); + break; + } + + case DOUBLE: + { + rgblight_step_noeeprom(); + break; + } + + case TRIPLE: + { + rgblight_toggle_noeeprom(); + break; + } + + default: + // Not needed + break; + } + + timer = timer_read(); + } + } +} + +void dance_finished(qk_tap_dance_state_t *state, void* user_data) { + // Determine the current state + switch (state->count) + { + case 1: + { + if (state->interrupted || state->pressed == 0) tap_dance_state = SINGLE_TAP; + else tap_dance_state = SINGLE_HOLD; + break; + } + case 2: + { + tap_dance_state = DOUBLE; + break; + } + case 3: + { + tap_dance_state = TRIPLE; + break; + } + default: + { + tap_dance_state = QUAD; + break; + } + } + + switch (tap_dance_state) + { + case SINGLE_TAP: + { + // VS Build: CTRL+SHIFT+B + SEND_STRING(SS_DOWN(X_LCTRL) SS_DOWN(X_LALT) "b" SS_UP(X_LALT) SS_UP(X_LCTRL)); + tap_dance_active = false; + break; + } + + case SINGLE_HOLD: + case DOUBLE: + case TRIPLE: + { + // These are handled by the matrix_scan, which will register the appropriate rgb + // functions every scan + tap_dance_active = true; + timer = timer_read(); + dance_cycle(true); + break; + } + + case QUAD: + { + // Reprogram + reset_keyboard(); + break; + } + } +} + +void dance_reset(qk_tap_dance_state_t *state, void* user_data) +{ + tap_dance_active = false; +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_KEY] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_finished, dance_reset) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(TD(TD_KEY)) +}; + +void matrix_scan_user(void) { + dance_cycle(false); +} diff --git a/keyboards/bigswitch/keymaps/333fred/rules.mk b/keyboards/bigswitch/keymaps/333fred/rules.mk new file mode 100644 index 0000000000..20aaadacbc --- /dev/null +++ b/keyboards/bigswitch/keymaps/333fred/rules.mk @@ -0,0 +1,5 @@ +# I'm not using things from my userpace in this one +USER_NAME = disable + +RGBLIGHT_ENABLE = yes +TAP_DANCE_ENABLE = yes From 388de9bc076a135ff5f7ff35cc95594898d2e8c3 Mon Sep 17 00:00:00 2001 From: noroadsleft Date: Thu, 13 Dec 2018 22:35:27 -0800 Subject: [PATCH 04/38] Keyboardio Model 01: Configurator support --- keyboards/model01/info.json | 85 ++++++++++++++++++++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/keyboards/model01/info.json b/keyboards/model01/info.json index daf51492db..60c914d5c0 100644 --- a/keyboards/model01/info.json +++ b/keyboards/model01/info.json @@ -1,4 +1,87 @@ { "keyboard_name": "model01", - "url": "https://keyboard.io" + "keyboard_folder": "model01", + "url": "https://keyboard.io", + "maintainer": "qmk", + "width": 18.5, + "height": 7.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"PROG", "x":0, "y":0.4, "h":1.3}, + {"label":"1", "x":1, "y":0.2, "h":1.5}, + {"label":"2", "x":2, "y":0.1, "h":1.1}, + {"label":"3", "x":3, "y":0}, + {"label":"4", "x":4, "y":0.1}, + {"label":"5", "x":5, "y":0.3}, + + {"label":"6", "x":12.5, "y":0.3}, + {"label":"7", "x":13.5, "y":0.1}, + {"label":"8", "x":14.5, "y":0}, + {"label":"9", "x":15.5, "y":0.1, "h":1.1}, + {"label":"0", "x":16.5, "y":0.2, "h":1.5}, + {"label":"NUM", "x":17.5, "y":0.4, "h":1.3}, + + {"label":"GRAVE", "x":0, "y":1.7}, + {"label":"Q", "x":1, "y":1.7}, + {"label":"W", "x":2, "y":1.2}, + {"label":"E", "x":3, "y":1}, + {"label":"R", "x":4, "y":1.1}, + {"label":"T", "x":5, "y":1.3}, + {"label":"LED", "x":6, "y":0.6, "h":1.5}, + + {"label":"ANY", "x":11.5, "y":0.6, "h":1.5}, + {"label":"Y", "x":12.5, "y":1.3}, + {"label":"U", "x":13.5, "y":1.1}, + {"label":"I", "x":14.5, "y":1}, + {"label":"O", "x":15.5, "y":1.2}, + {"label":"P", "x":16.5, "y":1.7}, + {"label":"EQUAL", "x":17.5, "y":1.7}, + + {"label":"PAGEUP", "x":0, "y":2.7}, + {"label":"A", "x":1, "y":2.7}, + {"label":"S", "x":2, "y":2.2}, + {"label":"D", "x":3, "y":2}, + {"label":"F", "x":4, "y":2.1}, + {"label":"G", "x":5, "y":2.3}, + {"label":"TAB", "x":6, "y":2.1, "h":1.3}, + + {"label":"ENTER", "x":11.5, "y":2.1, "h":1.3}, + {"label":"H", "x":12.5, "y":2.3}, + {"label":"J", "x":13.5, "y":2.1}, + {"label":"K", "x":14.5, "y":2}, + {"label":"L", "x":15.5, "y":2.2}, + {"label":"SEMICOLON", "x":16.5, "y":2.7}, + {"label":"QUOTE", "x":17.5, "y":2.7}, + + {"label":"PAGEDOWN", "x":0, "y":3.7, "h":1.2}, + {"label":"Z", "x":1, "y":3.7}, + {"label":"X", "x":2, "y":3.2, "h":1.15}, + {"label":"C", "x":3, "y":3}, + {"label":"V", "x":4, "y":3.1}, + {"label":"B", "x":5, "y":3.3}, + {"label":"ESC", "x":6, "y":3.4, "h":1.1}, + + {"label":"BUTTERFLY", "x":11.5, "y":3.4, "h":1.1}, + {"label":"N", "x":12.5, "y":3.3}, + {"label":"M", "x":13.5, "y":3.1}, + {"label":"COMMA", "x":14.5, "y":3}, + {"label":"DOT", "x":15.5, "y":3.2, "h":1.15}, + {"label":"SLASH", "x":16.5, "y":3.7}, + {"label":"MINS", "x":17.5, "y":3.7, "h":1.2}, + + {"label":"LCTL", "x":4.75, "y":4.3}, + {"label":"RCTL", "x":12.75, "y":4.3}, + {"label":"BACKSPACE", "x":5.75, "y":4.5}, + {"label":"SPACE", "x":11.75, "y":4.5}, + {"label":"LGUI", "x":6.75, "y":4.7}, + {"label":"RALT", "x":10.75, "y":4.7}, + {"label":"LSHIFT", "x":7.75, "y":5.1}, + {"label":"RSHIFT", "x":9.75, "y":5.1}, + + {"label":"FN", "x":6.25, "y":6.1, "h":1.4}, + {"label":"FN", "x":11.25, "y":6.1, "h":1.4} + ] + } + } } From 119b02c54055ba16ed2198b08d7e05443626a830 Mon Sep 17 00:00:00 2001 From: noroadsleft Date: Thu, 13 Dec 2018 23:33:29 -0800 Subject: [PATCH 05/38] AT101 Blackheart: Configurator support --- keyboards/at101_blackheart/info.json | 121 +++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 keyboards/at101_blackheart/info.json diff --git a/keyboards/at101_blackheart/info.json b/keyboards/at101_blackheart/info.json new file mode 100644 index 0000000000..4bef46712d --- /dev/null +++ b/keyboards/at101_blackheart/info.json @@ -0,0 +1,121 @@ +{ + "keyboard_name": "AT101 Blackheart PCB", + "keyboard_folder": "at101_blackheart", + "url": "https://deskthority.net/group-buys-f50/programmable-vintage-board-pcbs-omnikey-at101-and-z-150-t19325.html", + "maintainer": "qmk, blindassassin111", + "width": 22.5, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + {"label":"Grave", "x":0, "y":1.5}, + {"label":"1", "x":1, "y":1.5}, + {"label":"2", "x":2, "y":1.5}, + {"label":"3", "x":3, "y":1.5}, + {"label":"4", "x":4, "y":1.5}, + {"label":"5", "x":5, "y":1.5}, + {"label":"6", "x":6, "y":1.5}, + {"label":"7", "x":7, "y":1.5}, + {"label":"8", "x":8, "y":1.5}, + {"label":"9", "x":9, "y":1.5}, + {"label":"0", "x":10, "y":1.5}, + {"label":"-", "x":11, "y":1.5}, + {"label":"=", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"Page Up", "x":17.25, "y":1.5}, + {"label":"Num Lock", "x":18.5, "y":1.5}, + {"label":"Keypad /", "x":19.5, "y":1.5}, + {"label":"Keypad *", "x":20.5, "y":1.5}, + {"label":"Keypad -", "x":21.5, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"LBracket", "x":11.5, "y":2.5}, + {"label":"RBracket]", "x":12.5, "y":2.5}, + {"label":"Backslash", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"Page Down", "x":17.25, "y":2.5}, + {"label":"Keypad 7", "x":18.5, "y":2.5}, + {"label":"Keypad 8", "x":19.5, "y":2.5}, + {"label":"Keypad 9", "x":20.5, "y":2.5}, + {"label":"Keypad +", "x":21.5, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":"Semicolon", "x":10.75, "y":3.5}, + {"label":"Quote", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Keypad 4", "x":18.5, "y":3.5}, + {"label":"Keypad 5", "x":19.5, "y":3.5}, + {"label":"Keypad 6", "x":20.5, "y":3.5}, + {"label":"Keypad =", "x":21.5, "y":3.5}, + {"label":"LShift", "x":0, "y":4.5, "w":1.25}, + {"label":"ISO Backslash", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":"Comma", "x":9.25, "y":4.5}, + {"label":"Period", "x":10.25, "y":4.5}, + {"label":"Slash", "x":11.25, "y":4.5}, + {"label":"RShift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"Fn", "x":14, "y":4.5}, + {"label":"Up", "x":16.25, "y":4.5}, + {"label":"Keypad 1", "x":18.5, "y":4.5}, + {"label":"Keypad 2", "x":19.5, "y":4.5}, + {"label":"Keypad 3", "x":20.5, "y":4.5}, + {"label":"Keypad Enter", "x":21.5, "y":4.5, "h":2}, + {"label":"LCtrl", "x":0, "y":5.5, "w":1.25}, + {"label":"LGUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"LAlt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"RAlt", "x":10, "y":5.5, "w":1.25}, + {"label":"RGUI", "x":11.25, "y":5.5, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, + {"label":"RCtrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"Left", "x":15.25, "y":5.5}, + {"label":"Down", "x":16.25, "y":5.5}, + {"label":"Right", "x":17.25, "y":5.5}, + {"label":"Keypad 0", "x":18.5, "y":5.5, "w":2}, + {"label":"Keypad .", "x":20.5, "y":5.5} + ] + } + } +} From 48933811c541d9666c645f12bf83421e179cfd4c Mon Sep 17 00:00:00 2001 From: noroadsleft Date: Thu, 13 Dec 2018 23:36:58 -0800 Subject: [PATCH 06/38] AT101 Blackheart: readme update - added image - updated Docs links --- keyboards/at101_blackheart/readme.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/keyboards/at101_blackheart/readme.md b/keyboards/at101_blackheart/readme.md index 7b356bc753..d435d6955a 100644 --- a/keyboards/at101_blackheart/readme.md +++ b/keyboards/at101_blackheart/readme.md @@ -1,5 +1,6 @@ -AT101 Blackheart PCB -=== +# AT101 Blackheart PCB + +![AT101 Blackheart PCB](https://deskthority.net/resources/image/48571) A replacement PCB for AT101 keyboards. @@ -11,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make at101_blackheart:default -See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From e83c62a0023c80554506fd75672bbb287139b833 Mon Sep 17 00:00:00 2001 From: noroadsleft Date: Fri, 14 Dec 2018 00:03:40 -0800 Subject: [PATCH 07/38] Baguette: Configurator update The layout was right, but offset on both axes. --- keyboards/baguette/info.json | 163 ++++++++++++++++++++++++++++++++--- 1 file changed, 150 insertions(+), 13 deletions(-) diff --git a/keyboards/baguette/info.json b/keyboards/baguette/info.json index 777899a600..f3c9b308fb 100644 --- a/keyboards/baguette/info.json +++ b/keyboards/baguette/info.json @@ -1,16 +1,153 @@ { - "keyboard_name": "Baguette", - "url": "", - "maintainer": "qmk", - "bootloader": "atmel-dfu", - "width": 19.75, - "height": 6.5, - "layouts": { - "LAYOUT_ansi": { - "layout": [{"label":"~", "x":3.25, "y":1.5}, {"label":"!", "x":4.25, "y":1.5}, {"label":"@", "x":5.25, "y":1.5}, {"label":"#", "x":6.25, "y":1.5}, {"label":"$", "x":7.25, "y":1.5}, {"label":"%", "x":8.25, "y":1.5}, {"label":"^", "x":9.25, "y":1.5}, {"label":"&", "x":10.25, "y":1.5}, {"label":"*", "x":11.25, "y":1.5}, {"label":"(", "x":12.25, "y":1.5}, {"label":")", "x":13.25, "y":1.5}, {"label":"_", "x":14.25, "y":1.5}, {"label":"+", "x":15.25, "y":1.5}, {"label":"|", "x":16.25, "y":1.5}, {"label":"Del", "x":17.25, "y":1.5}, {"label":"Insert", "x":18.75, "y":1.5}, {"label":"Tab", "x":3.25, "y":2.5, "w":1.5}, {"label":"Q", "x":4.75, "y":2.5}, {"label":"W", "x":5.75, "y":2.5}, {"label":"E", "x":6.75, "y":2.5}, {"label":"R", "x":7.75, "y":2.5}, {"label":"T", "x":8.75, "y":2.5}, {"label":"Y", "x":9.75, "y":2.5}, {"label":"U", "x":10.75, "y":2.5}, {"label":"I", "x":11.75, "y":2.5}, {"label":"O", "x":12.75, "y":2.5}, {"label":"P", "x":13.75, "y":2.5}, {"label":"{", "x":14.75, "y":2.5}, {"label":"}", "x":15.75, "y":2.5}, {"label":"|", "x":16.75, "y":2.5, "w":1.5}, {"label":"Delete", "x":18.75, "y":2.5}, {"label":"Control", "x":3.25, "y":3.5, "w":1.75}, {"label":"A", "x":5, "y":3.5}, {"label":"S", "x":6, "y":3.5}, {"label":"D", "x":7, "y":3.5}, {"label":"F", "x":8, "y":3.5}, {"label":"G", "x":9, "y":3.5}, {"label":"H", "x":10, "y":3.5}, {"label":"J", "x":11, "y":3.5}, {"label":"K", "x":12, "y":3.5}, {"label":"L", "x":13, "y":3.5}, {"label":":", "x":14, "y":3.5}, {"label":"\"", "x":15, "y":3.5}, {"label":"Enter", "x":16, "y":3.5, "w":2.25}, {"x":3.25, "y":4.5, "w":1.25}, {"x":4.5, "y":4.5}, {"label":"Z", "x":5.5, "y":4.5}, {"label":"X", "x":6.5, "y":4.5}, {"label":"C", "x":7.5, "y":4.5}, {"label":"V", "x":8.5, "y":4.5}, {"label":"B", "x":9.5, "y":4.5}, {"label":"N", "x":10.5, "y":4.5}, {"label":"M", "x":11.5, "y":4.5}, {"label":"<", "x":12.5, "y":4.5}, {"label":">", "x":13.5, "y":4.5}, {"label":"?", "x":14.5, "y":4.5}, {"x":15.5, "y":4.5}, {"label":"Shift", "x":16.5, "y":4.5, "w":1.25}, {"label":"\u2191", "x":17.75, "y":4.5}, {"label":"Win", "x":4.5, "y":5.5}, {"label":"Alt", "x":5.5, "y":5.5, "w":1.25}, {"x":6.75, "y":5.5, "w":6.25}, {"label":"Ctrl", "x":13, "y":5.5, "w":1.25}, {"label":"Fn", "x":14.25, "y":5.5}, {"label":"\u2190", "x":16.75, "y":5.5}, {"label":"\u2193", "x":17.75, "y":5.5}, {"label":"\u2192", "x":18.75, "y":5.5}] - }, - "LAYOUT_iso": { - "layout": [{"label":"~", "x":3.25, "y":1.5}, {"label":"!", "x":4.25, "y":1.5}, {"label":"@", "x":5.25, "y":1.5}, {"label":"#", "x":6.25, "y":1.5}, {"label":"$", "x":7.25, "y":1.5}, {"label":"%", "x":8.25, "y":1.5}, {"label":"^", "x":9.25, "y":1.5}, {"label":"&", "x":10.25, "y":1.5}, {"label":"*", "x":11.25, "y":1.5}, {"label":"(", "x":12.25, "y":1.5}, {"label":")", "x":13.25, "y":1.5}, {"label":"_", "x":14.25, "y":1.5}, {"label":"+", "x":15.25, "y":1.5}, {"label":"|", "x":16.25, "y":1.5}, {"label":"Del", "x":17.25, "y":1.5}, {"label":"Insert", "x":18.75, "y":1.5}, {"label":"Tab", "x":3.25, "y":2.5, "w":1.5}, {"label":"Q", "x":4.75, "y":2.5}, {"label":"W", "x":5.75, "y":2.5}, {"label":"E", "x":6.75, "y":2.5}, {"label":"R", "x":7.75, "y":2.5}, {"label":"T", "x":8.75, "y":2.5}, {"label":"Y", "x":9.75, "y":2.5}, {"label":"U", "x":10.75, "y":2.5}, {"label":"I", "x":11.75, "y":2.5}, {"label":"O", "x":12.75, "y":2.5}, {"label":"P", "x":13.75, "y":2.5}, {"label":"{", "x":14.75, "y":2.5}, {"label":"}", "x":15.75, "y":2.5}, {"label":"Enter", "x":17, "y":2.5, "w":1.25, "h":2}, {"label":"Delete", "x":18.75, "y":2.5}, {"label":"Control", "x":3.25, "y":3.5, "w":1.75}, {"label":"A", "x":5, "y":3.5}, {"label":"S", "x":6, "y":3.5}, {"label":"D", "x":7, "y":3.5}, {"label":"F", "x":8, "y":3.5}, {"label":"G", "x":9, "y":3.5}, {"label":"H", "x":10, "y":3.5}, {"label":"J", "x":11, "y":3.5}, {"label":"K", "x":12, "y":3.5}, {"label":"L", "x":13, "y":3.5}, {"label":":", "x":14, "y":3.5}, {"label":"\"", "x":15, "y":3.5}, {"x":16, "y":3.5}, {"x":3.25, "y":4.5, "w":1.25}, {"x":4.5, "y":4.5}, {"label":"Z", "x":5.5, "y":4.5}, {"label":"X", "x":6.5, "y":4.5}, {"label":"C", "x":7.5, "y":4.5}, {"label":"V", "x":8.5, "y":4.5}, {"label":"B", "x":9.5, "y":4.5}, {"label":"N", "x":10.5, "y":4.5}, {"label":"M", "x":11.5, "y":4.5}, {"label":"<", "x":12.5, "y":4.5}, {"label":">", "x":13.5, "y":4.5}, {"label":"?", "x":14.5, "y":4.5}, {"x":15.5, "y":4.5}, {"label":"Shift", "x":16.5, "y":4.5, "w":1.25}, {"label":"\u2191", "x":17.75, "y":4.5}, {"label":"Win", "x":4.5, "y":5.5}, {"label":"Alt", "x":5.5, "y":5.5, "w":1.25}, {"x":6.75, "y":5.5, "w":6.25}, {"label":"Ctrl", "x":13, "y":5.5, "w":1.25}, {"label":"Fn", "x":14.25, "y":5.5}, {"label":"\u2190", "x":16.75, "y":5.5}, {"label":"\u2193", "x":17.75, "y":5.5}, {"label":"\u2192", "x":18.75, "y":5.5}] - } + "keyboard_name": "Baguette", + "url": "", + "maintainer": "qmk", + "bootloader": "atmel-dfu", + "width": 16.5, + "height": 5, + "layouts": { + "LAYOUT_ansi": { + "layout": [ + {"label":"`", "x":0, "y":0}, + {"label":"1", "x":1, "y":0}, + {"label":"2", "x":2, "y":0}, + {"label":"3", "x":3, "y":0}, + {"label":"4", "x":4, "y":0}, + {"label":"5", "x":5, "y":0}, + {"label":"6", "x":6, "y":0}, + {"label":"7", "x":7, "y":0}, + {"label":"8", "x":8, "y":0}, + {"label":"9", "x":9, "y":0}, + {"label":"0", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Backspace2", "x":14, "y":0}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[", "x":11.5, "y":1}, + {"label":"]", "x":12.5, "y":1}, + {"label":"\\", "x":13.5, "y":1, "w":1.5}, + {"label":"Delete", "x":15.5, "y":1}, + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";", "x":10.75, "y":2}, + {"label":"'", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"ISO \\", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",", "x":9.25, "y":3}, + {"label":".", "x":10.25, "y":3}, + {"label":"/", "x":11.25, "y":3}, + {"label":"JP RO", "x":12.25, "y":3}, + {"label":"Shift", "x":13.25, "y":3, "w":1.25}, + {"label":"Up", "x":14.5, "y":3}, + {"label":"GUI", "x":1.25, "y":4}, + {"label":"Alt", "x":2.25, "y":4, "w":1.25}, + {"label":"Space", "x":3.5, "y":4, "w":6.25}, + {"label":"Ctrl", "x":9.75, "y":4, "w":1.25}, + {"label":"Fn", "x":11, "y":4}, + {"label":"Left", "x":13.5, "y":4}, + {"label":"Down", "x":14.5, "y":4}, + {"label":"Right", "x":15.5, "y":4} + ] + }, + + "LAYOUT_iso": { + "layout": [ + {"label":"`", "x":0, "y":0}, + {"label":"1", "x":1, "y":0}, + {"label":"2", "x":2, "y":0}, + {"label":"3", "x":3, "y":0}, + {"label":"4", "x":4, "y":0}, + {"label":"5", "x":5, "y":0}, + {"label":"6", "x":6, "y":0}, + {"label":"7", "x":7, "y":0}, + {"label":"8", "x":8, "y":0}, + {"label":"9", "x":9, "y":0}, + {"label":"0", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Backspace2", "x":14, "y":0}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[", "x":11.5, "y":1}, + {"label":"]", "x":12.5, "y":1}, + {"label":"Delete", "x":15.5, "y":1}, + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";", "x":10.75, "y":2}, + {"label":"'", "x":11.75, "y":2}, + {"label":"ISO #", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"ISO \\", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",", "x":9.25, "y":3}, + {"label":".", "x":10.25, "y":3}, + {"label":"/", "x":11.25, "y":3}, + {"label":"JP_RO", "x":12.25, "y":3}, + {"label":"Shift", "x":13.25, "y":3, "w":1.25}, + {"label":"Up", "x":14.5, "y":3}, + {"label":"GUI", "x":1.25, "y":4}, + {"label":"Alt", "x":2.25, "y":4, "w":1.25}, + {"label":"Space", "x":3.5, "y":4, "w":6.25}, + {"label":"Ctrl", "x":9.75, "y":4, "w":1.25}, + {"label":"Fn", "x":11, "y":4}, + {"label":"Left", "x":13.5, "y":4}, + {"label":"Down", "x":14.5, "y":4}, + {"label":"Right", "x":15.5, "y":4} + ] } + } } From 1ae07f657ad914b863d7ec095eadaeb1d44dbc74 Mon Sep 17 00:00:00 2001 From: Daniel Shields Date: Fri, 14 Dec 2018 15:27:54 +0000 Subject: [PATCH 08/38] Keymap: Disable audio for planck/dshields/rev6 and enable retro tapping. (#4643) --- keyboards/planck/keymaps/dshields/config.h | 1 + keyboards/planck/keymaps/dshields/rules.mk | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/planck/keymaps/dshields/config.h b/keyboards/planck/keymaps/dshields/config.h index 63434f60ca..7f9cf74672 100644 --- a/keyboards/planck/keymaps/dshields/config.h +++ b/keyboards/planck/keymaps/dshields/config.h @@ -5,6 +5,7 @@ #define USB_MAX_POWER_CONSUMPTION 100 #define ONESHOT_TAP_TOGGLE 2 #define ONESHOT_TIMEOUT 3000 +#define RETRO_TAPPING #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_DELAY 0 diff --git a/keyboards/planck/keymaps/dshields/rules.mk b/keyboards/planck/keymaps/dshields/rules.mk index 300a827904..a526c5a31a 100644 --- a/keyboards/planck/keymaps/dshields/rules.mk +++ b/keyboards/planck/keymaps/dshields/rules.mk @@ -16,7 +16,7 @@ ifeq ($(strip $(KEYBOARD)), planck/rev3) endif ifeq ($(strip $(KEYBOARD)), planck/rev6) EXTRALDFLAGS = -Wl,--build-id=none - AUDIO_ENABLE = yes + AUDIO_ENABLE = no BACKLIGHT_ENABLE = no RGB_MATRIX_ENABLE = no endif From 25892301d426e0c77081aa8d431479df2f52d1f3 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 14 Dec 2018 07:32:12 -0800 Subject: [PATCH 09/38] Keymap: handwired/108key_trackpoint Configurator support and readme update (#4633) * handwired/108key_trackpoint: Configurator support * handwired/108key_trackpoint: readme update - fix typo in make command - rename file to lowercase --- .../handwired/108key_trackpoint/info.json | 125 ++++++++++++++++++ .../{README.md => readme.md} | 2 +- 2 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 keyboards/handwired/108key_trackpoint/info.json rename keyboards/handwired/108key_trackpoint/{README.md => readme.md} (96%) diff --git a/keyboards/handwired/108key_trackpoint/info.json b/keyboards/handwired/108key_trackpoint/info.json new file mode 100644 index 0000000000..bd221892b3 --- /dev/null +++ b/keyboards/handwired/108key_trackpoint/info.json @@ -0,0 +1,125 @@ +{ + "keyboard_name": "108 Key with TrackPoint", + "url": "", + "maintainer": "mkem114", + "width": 22.5, + "height": 7.5, + "layouts": { + "LAYOUT": { + "key_count": 111, + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + {"label":"Mute", "x":18.5, "y":0}, + {"label":"Previous", "x":19.5, "y":0}, + {"label":"Next", "x":20.5, "y":0}, + {"label":"Play", "x":21.5, "y":0}, + {"label":"`", "x":0, "y":1.5}, + {"label":"1", "x":1, "y":1.5}, + {"label":"2", "x":2, "y":1.5}, + {"label":"3", "x":3, "y":1.5}, + {"label":"4", "x":4, "y":1.5}, + {"label":"5", "x":5, "y":1.5}, + {"label":"6", "x":6, "y":1.5}, + {"label":"7", "x":7, "y":1.5}, + {"label":"8", "x":8, "y":1.5}, + {"label":"9", "x":9, "y":1.5}, + {"label":"0", "x":10, "y":1.5}, + {"label":"-", "x":11, "y":1.5}, + {"label":"=", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"Page Up", "x":17.25, "y":1.5}, + {"label":"Num Lock", "x":18.5, "y":1.5}, + {"label":"/", "x":19.5, "y":1.5}, + {"label":"*", "x":20.5, "y":1.5}, + {"label":"-", "x":21.5, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[", "x":11.5, "y":2.5}, + {"label":"]", "x":12.5, "y":2.5}, + {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"Page Down", "x":17.25, "y":2.5}, + {"label":"7", "x":18.5, "y":2.5}, + {"label":"8", "x":19.5, "y":2.5}, + {"label":"9", "x":20.5, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";", "x":10.75, "y":3.5}, + {"label":"'", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"4", "x":18.5, "y":3.5}, + {"label":"5", "x":19.5, "y":3.5}, + {"label":"6", "x":20.5, "y":3.5}, + {"label":"+", "x":21.5, "y":2.5, "h":2}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",", "x":9.25, "y":4.5}, + {"label":".", "x":10.25, "y":4.5}, + {"label":"/", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"Up", "x":16.25, "y":4.5}, + {"label":"1", "x":18.5, "y":4.5}, + {"label":"2", "x":19.5, "y":4.5}, + {"label":"3", "x":20.5, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"LGUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5, "w":1.25}, + {"label":"RGUI", "x":11.25, "y":5.5, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"Left", "x":15.25, "y":5.5}, + {"label":"Down", "x":16.25, "y":5.5}, + {"label":"Right", "x":17.25, "y":5.5}, + {"label":"0", "x":18.5, "y":5.5, "w":2}, + {"label":".", "x":20.5, "y":5.5}, + {"label":"Enter", "x":21.5, "y":4.5, "h":2}, + {"label":"Mouse1", "x":5.25, "y":6.5}, + {"label":"Mouse3", "x":6.25, "y":6.5}, + {"label":"Mouse2", "x":7.25, "y":6.5} + ] + } + } +} diff --git a/keyboards/handwired/108key_trackpoint/README.md b/keyboards/handwired/108key_trackpoint/readme.md similarity index 96% rename from keyboards/handwired/108key_trackpoint/README.md rename to keyboards/handwired/108key_trackpoint/readme.md index 247043e171..468fdf94dc 100644 --- a/keyboards/handwired/108key_trackpoint/README.md +++ b/keyboards/handwired/108key_trackpoint/readme.md @@ -9,7 +9,7 @@ Hardware Supported (tested): Teensy++ 2.0 Make example for this keyboard (after setting up your build environment): - make handwired/108keyTrackpoint:default + make handwired/108key_trackpoint:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 60f9abca1245640e12d65aa60f5953ff1719408f Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 14 Dec 2018 07:33:00 -0800 Subject: [PATCH 10/38] handwired/CMD60 Refactor, Configurator support and readme update (#4632) * handwired/CMD60: refactor - renamed layout macro KEYMAP to LAYOUT - removed K2C, K3B and K3C locations (indications are these locations were unused in hardware) - keymap - now uses #include QMK_KEYBOARD_H - converted keycodes to short format - deleted TMK fn_actions and action_get_macro blocks - white space changes (readability/alignment) * handwired/CMD60: Configurator support * handwired/CMD60: readme update - updated to conform to current QMK template - added image and build gallery links * handwired/cmd60: rename all files and folders to lowercase --- keyboards/handwired/CMD60/README.md | 35 --------- .../handwired/CMD60/keymaps/default/keymap.c | 66 ----------------- .../{CMD60/CMD60.c => cmd60/cmd60.c} | 2 +- .../{CMD60/CMD60.h => cmd60/cmd60.h} | 18 ++--- keyboards/handwired/{CMD60 => cmd60}/config.h | 0 keyboards/handwired/cmd60/info.json | 74 +++++++++++++++++++ .../handwired/cmd60/keymaps/default/keymap.c | 46 ++++++++++++ keyboards/handwired/cmd60/readme.md | 19 +++++ keyboards/handwired/{CMD60 => cmd60}/rules.mk | 0 9 files changed, 149 insertions(+), 111 deletions(-) delete mode 100644 keyboards/handwired/CMD60/README.md delete mode 100644 keyboards/handwired/CMD60/keymaps/default/keymap.c rename keyboards/handwired/{CMD60/CMD60.c => cmd60/cmd60.c} (87%) rename keyboards/handwired/{CMD60/CMD60.h => cmd60/cmd60.h} (66%) rename keyboards/handwired/{CMD60 => cmd60}/config.h (100%) create mode 100644 keyboards/handwired/cmd60/info.json create mode 100644 keyboards/handwired/cmd60/keymaps/default/keymap.c create mode 100644 keyboards/handwired/cmd60/readme.md rename keyboards/handwired/{CMD60 => cmd60}/rules.mk (100%) diff --git a/keyboards/handwired/CMD60/README.md b/keyboards/handwired/CMD60/README.md deleted file mode 100644 index 8b0dd109f6..0000000000 --- a/keyboards/handwired/CMD60/README.md +++ /dev/null @@ -1,35 +0,0 @@ -CMD60 keyboard firmware -====================== - -##CMD60 - -This layout has been designed to optimize use of the left-hand, and it focussed specifically on programmers who work -with text editors like SublimeText and Atom. It utilizes the power of Space_fn, and features a caps lock swap for Fn2 -and enter key on tap. These features allow you to keep your right hand on the mouse more and should enable you to -achieve a higher level of productivity if you take the time to learn its function layers. - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent readme.md](/docs/README.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/handwired/CMD60 folder. -Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use -the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default - -To build with the default keymap, simply run `make`. - -### Other Keymaps - -To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: - -``` -$ make keymap=[default|jack|] -``` - -Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` diff --git a/keyboards/handwired/CMD60/keymaps/default/keymap.c b/keyboards/handwired/CMD60/keymaps/default/keymap.c deleted file mode 100644 index 9f9cbcd661..0000000000 --- a/keyboards/handwired/CMD60/keymaps/default/keymap.c +++ /dev/null @@ -1,66 +0,0 @@ -#include "CMD60.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( /* CMD60 - QWERTY */ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ - LT(3, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_NO, KC_RSFT, \ - KC_LCTL, KC_LGUI, KC_LALT, LT(2, KC_SPC), MO(3), MO(4), MO(5), TG(1) \ - ), - [1] = KEYMAP( /* CMD60 - GameMode */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \ - KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_RSFT, \ - KC_TRNS, KC_NO, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ - ), - [2] = KEYMAP( /* CMD60 - Arrows */ - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ - KC_TRNS, KC_BSPC, KC_UP, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_UP, KC_DEL, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \ - KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ - ), - [3] = KEYMAP( /* CMD60 - Functions */ - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ - KC_AUDIO_MUTE, KC_BSPC, KC_PGUP, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_PAUSE, KC_SLCK, KC_PSCREEN, \ - KC_TRNS, KC_HOME, KC_PGDN, KC_END, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_INSERT, KC_NO, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ - ), - [4] = KEYMAP( /* CMD60 - Mouse */ - KC_SYSTEM_SLEEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_NO, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_WH_UP, KC_MS_BTN3, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ - ), - [5] = KEYMAP( /* CMD60 - Media */ - KC_SYSTEM_WAKE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_MEDIA_PLAY_PAUSE, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WWW_BACK, KC_WWW_FORWARD, KC_NO, KC_NO, KC_WWW_REFRESH, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ - ), -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/handwired/CMD60/CMD60.c b/keyboards/handwired/cmd60/cmd60.c similarity index 87% rename from keyboards/handwired/CMD60/CMD60.c rename to keyboards/handwired/cmd60/cmd60.c index 799848e34e..91bbbd453b 100644 --- a/keyboards/handwired/CMD60/CMD60.c +++ b/keyboards/handwired/cmd60/cmd60.c @@ -1,4 +1,4 @@ -#include "CMD60.h" +#include "cmd60.h" void matrix_init_kb(void) { // put your keyboard start-up code here diff --git a/keyboards/handwired/CMD60/CMD60.h b/keyboards/handwired/cmd60/cmd60.h similarity index 66% rename from keyboards/handwired/CMD60/CMD60.h rename to keyboards/handwired/cmd60/cmd60.h index f90871fc71..2e0baa9997 100644 --- a/keyboards/handwired/CMD60/CMD60.h +++ b/keyboards/handwired/cmd60/cmd60.h @@ -3,18 +3,18 @@ #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3D, \ K40, K41, K42, K45, K4A, K4B, K4C, K4D \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ - { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO,K4A, K4B, K4C, K4D } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, KC_NO, K3D }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D } \ } -#endif \ No newline at end of file +#endif diff --git a/keyboards/handwired/CMD60/config.h b/keyboards/handwired/cmd60/config.h similarity index 100% rename from keyboards/handwired/CMD60/config.h rename to keyboards/handwired/cmd60/config.h diff --git a/keyboards/handwired/cmd60/info.json b/keyboards/handwired/cmd60/info.json new file mode 100644 index 0000000000..8d555dc078 --- /dev/null +++ b/keyboards/handwired/cmd60/info.json @@ -0,0 +1,74 @@ +{ + "keyboard_name": "CMD60", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"`", "x":0, "y":0}, + {"label":"1", "x":1, "y":0}, + {"label":"2", "x":2, "y":0}, + {"label":"3", "x":3, "y":0}, + {"label":"4", "x":4, "y":0}, + {"label":"5", "x":5, "y":0}, + {"label":"6", "x":6, "y":0}, + {"label":"7", "x":7, "y":0}, + {"label":"8", "x":8, "y":0}, + {"label":"9", "x":9, "y":0}, + {"label":"0", "x":10, "y":0}, + {"label":"-", "x":11, "y":0}, + {"label":"=", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[", "x":11.5, "y":1}, + {"label":"]", "x":12.5, "y":1}, + {"label":"\\", "x":13.5, "y":1, "w":1.5}, + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";", "x":10.75, "y":2}, + {"label":"'", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",", "x":9.25, "y":3}, + {"label":".", "x":10.25, "y":3}, + {"label":"/", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"GUI", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + } + } +} diff --git a/keyboards/handwired/cmd60/keymaps/default/keymap.c b/keyboards/handwired/cmd60/keymaps/default/keymap.c new file mode 100644 index 0000000000..448d81dc16 --- /dev/null +++ b/keyboards/handwired/cmd60/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* CMD60 - QWERTY */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + LT(3, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI, KC_LALT, LT(2, KC_SPC), MO(3), MO(4), MO(5), TG(1) \ + ), + [1] = LAYOUT( /* CMD60 - GameMode */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, \ + _______, XXXXXXX, _______, KC_SPC, _______, _______, _______, _______ \ + ), + [2] = LAYOUT( /* CMD60 - Arrows */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + _______, KC_BSPC, KC_UP, KC_DEL, _______, _______, _______, KC_BSPC, KC_UP, KC_DEL, KC_PSCR, KC_SLCK, KC_PAUS, _______, \ + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, \ + _______, _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + [3] = LAYOUT( /* CMD60 - Functions */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_MUTE, KC_BSPC, KC_PGUP, KC_DEL, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, KC_PAUS, KC_SLCK, KC_PSCR, \ + _______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_INS, _______, \ + _______, _______, _______, _______, _______, _______, KC_END, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + [4] = LAYOUT( /* CMD60 - Mouse */ + KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, KC_BTN3, KC_WH_D, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + [5] = LAYOUT( /* CMD60 - Media */ + KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, KC_WREF, \ + _______, _______, _______, _______, _______, _______, _______, _______ \ + ), +}; diff --git a/keyboards/handwired/cmd60/readme.md b/keyboards/handwired/cmd60/readme.md new file mode 100644 index 0000000000..933ac16d59 --- /dev/null +++ b/keyboards/handwired/cmd60/readme.md @@ -0,0 +1,19 @@ +# CMD60 + +![CMD60](https://i.imgur.com/r9LA6Lx.jpg) + +This layout has been designed to optimize use of the left-hand, and it focussed specifically on programmers who work +with text editors like SublimeText and Atom. It utilizes the power of Space_fn, and features a caps lock swap for Fn2 +and enter key on tap. These features allow you to keep your right hand on the mouse more and should enable you to +achieve a higher level of productivity if you take the time to learn its function layers. + +[Build Log](https://redd.it/4mkuu8) + +Keyboard Maintainer: [The QMK Community](https://github.com/qmk) +Hardware Supported: CMD60 handwired, Teensy 2.0 + +Make example for this keyboard (after setting up your build environment): + + make handwired/cmd60:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/CMD60/rules.mk b/keyboards/handwired/cmd60/rules.mk similarity index 100% rename from keyboards/handwired/CMD60/rules.mk rename to keyboards/handwired/cmd60/rules.mk From 641bbeb41af87feb01882e9f8a252312d2665a6a Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 14 Dec 2018 07:36:38 -0800 Subject: [PATCH 11/38] Remove userspace info from Quad-Function Tap Dance example (#4631) --- docs/feature_tap_dance.md | 36 +++++++----------------------------- 1 file changed, 7 insertions(+), 29 deletions(-) diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index b2b567f1d0..f2f2749440 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -185,29 +185,11 @@ Below is a specific example: ## Setup -You will need a few things that can be used for 'Quad Function Tap-Dance'. The suggested setup is to create a user directory for yourself. This directory will contain rules.mk `.c` and `.h`. This directory should be called ``, and located in the top level `users` directory. There should already be a few examples to look at there. +You will need a few things that can be used for 'Quad Function Tap-Dance'. -### In `/qmk_firmware/users//rules.mk` - -Put the following: -```c -TAP_DANCE_ENABLE = yes -SRC += your_name.c -``` - -Pretty simple. It is a nice way to keep some rules common on all your keymaps. - - -### In `/qmk_firmware/users//.h` - -You will need a few things in this file: +You'll need to add these to the top of your `keymap.c` file, before your keymap. ```c -#pragma once - -#include "quantum.h" -#include "process_keycode/process_tap_dance.h" - typedef struct { bool is_press_action; int state; @@ -234,18 +216,12 @@ int cur_dance (qk_tap_dance_state_t *state); //for the x tap dance. Put it here so it can be used in any keymap void x_finished (qk_tap_dance_state_t *state, void *user_data); void x_reset (qk_tap_dance_state_t *state, void *user_data); + ``` -### In `/qmk_firmware/users//.c` - -And then in your user's `.c` file you implement the functions above: +Now, at the bottom of your `keymap.c` file, you'll need to add the following: ```c -#include ".h" -#include "quantum.h" -#include "action.h" -#include "process_keycode/process_tap_dance.h" - /* Return an integer that corresponds to what kind of tap dance should be executed. * * How to figure out tap dance state: interrupted and pressed. @@ -335,4 +311,6 @@ qk_tap_dance_action_t tap_dance_actions[] = { }; ``` -And then simply use `TD(X_CTL)` anywhere in your keymap after including `.h`. +And then simply use `TD(X_CTL)` anywhere in your keymap. + +If you want to implement this in your userspace, then you may want to check out how [DanielGGordon](https://github.com/qmk/qmk_firmware/tree/master/users/gordon) has implemented this in their userspace. From 6c6bbff600cd37416bdf067ac67971c58136129f Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 14 Dec 2018 07:37:27 -0800 Subject: [PATCH 12/38] Enhance documentation for Tap-Hold functions (#4628) --- docs/feature_advanced_keycodes.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index e5f241f7f1..bda4972331 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -161,8 +161,13 @@ For one shot mods, you need to call `set_oneshot_mods(MOD)` to set it, or `clear !> If you're having issues with OSM translating over Remote Desktop Connection, this can be fixed by opening the settings, going to the "Local Resources" tap, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue and allow OSM to function properly over Remote Desktop. +# Tap-Hold Configuration Options -# Permissive Hold +While Tap-Hold options are fantastic, they are not without their issues. We have tried to configure them with reasonal defaults, but that may still cause issues for some people. + +These options let you modify the behavior of the Tap-Hold keys. + +## Permissive Hold As of [PR#1359](https://github.com/qmk/qmk_firmware/pull/1359/), there is a new `config.h` option: @@ -185,7 +190,7 @@ Normally, if you do all this within the `TAPPING_TERM` (default: 200ms) this wil ?> If you have `Ignore Mod Tap Interrupt` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`. -# Ignore Mod Tap Interrupt +## Ignore Mod Tap Interrupt To enable this setting, add this to your `config.h`: @@ -211,7 +216,7 @@ Normally, this would send `X` (`SHIFT`+`x`). With `Ignore Mod Tap Interrupt` ena ?> If you have `Permissive Hold` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`. -# Tapping Force Hold +## Tapping Force Hold To enable `tapping force hold`, add the following to your `config.h`: @@ -235,7 +240,7 @@ With `TAPPING_FORCE_HOLD`, the second press will be interpreted as a Shift, allo !> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle). -# Retro Tapping +## Retro Tapping To enable `retro tapping`, add the following to your `config.h`: From 8c3054777a9d86613fd9d73cca1fdfaee54a6eff Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 14 Dec 2018 07:51:17 -0800 Subject: [PATCH 13/38] Docs: Remove duplicate layer block in keycodes.md (#4621) * Docs: Remove duplicate layer block in keycodes.md Reorder and add OSL * remove glitch Co-Authored-By: drashna --- docs/keycodes.md | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/docs/keycodes.md b/docs/keycodes.md index d12a85aa15..468b59f84f 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -288,15 +288,16 @@ This is a reference only. Each group of keys links to the page documenting their ## [Layer Switching](feature_advanced_keycodes.md#switching-and-toggling-layers) -|Key |Description | -|-----------------|---------------------------------------------------------------------| -|`DF(layer)` |Switches the default layer | -|`MO(layer)` |Momentarily activates layer, switches off when you let go | -|`LM(layer, mod)` |As `MO(layer)` but with `mod` active | -|`LT(layer, kc)` |Momentarily activates layer if held, sends kc if tapped | -|`TG(layer)` |Toggles the layer (enables it if no active, and vise versa) | -|`TO(layer)` |Activates layer and deactivates all other layers | -|`TT(layer)` |Momentarily activates layer if held, toggles it if tapped repeatedly | +|Key |Description | +|----------------|----------------------------------------------------------------------------------| +|`DF(layer)` |Set the base (default) layer | +|`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)| +|`OSL(layer)` |Momentarily activates `layer` until a key is pressed. See [One Shot Keys](https://docs.qmk.fm/#/feature_advanced_keycodes?id=one-shot-keys) for details. | +|`LM(layer, mod)`|Momentarily turn on `layer` (like MO) with `mod` active as well. +|`LT(layer, kc)` |Turn on `layer` when held, `kc` when tapped | +|`TG(layer)` |Toggle `layer` on or off | +|`TO(layer)` |Turn on `layer` when pressed | +|`TT(layer)` |Normally acts like MO unless it's tapped multiple times, which toggles `layer` on | ## [Mouse Keys](feature_mouse_keys.md) @@ -431,18 +432,6 @@ This is a reference only. Each group of keys links to the page documenting their |`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` | |`KC_QUESTION` |`KC_QUES` |`?` | -## [Switching and Toggling Layers](feature_advanced_keycodes.md#switching-and-toggling-layers) - -|Key |Description | -|----------------|----------------------------------------------------------------------------------| -|`LT(layer, kc)` |Turn on `layer` when held, `kc` when tapped | -|`TO(layer)` |Turn on `layer` when pressed | -|`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)| -|`DF(layer)` |Set the base (default) layer | -|`TG(layer)` |Toggle `layer` on or off | -|`TT(layer)` |Normally acts like MO unless it's tapped multiple times, which toggles `layer` on | -|`LM(layer, mod)`|Momentarily turn on `layer` (like MO) with `mod` active as well. | - ## [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys) |Key |Description | From 80dfd34fe454f8dde67145fef51eb82ef7ea2e45 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 14 Dec 2018 07:52:11 -0800 Subject: [PATCH 14/38] Add additional resource links (#4594) * Add additional resource links And fix a typo or two * Update docs/newbs.md Co-Authored-By: drashna * Wordsmithing Co-Authored-By: drashna --- docs/newbs.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/newbs.md b/docs/newbs.md index e687fd2279..4f115c3c78 100644 --- a/docs/newbs.md +++ b/docs/newbs.md @@ -6,13 +6,17 @@ Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built y ## Overview -There are 5 main sections to this guide: +There are 6 main sections to this guide: * [Getting Started](newbs_getting_started.md) * [Building Your First Firmware](newbs_building_firmware.md) * [Flashing Firmware](newbs_flashing.md) * [Testing and Debugging](newbs_testing_debugging.md) -* [Best Practices](newbs_best_practices.md) +* [Git Best Practices](newbs_best_practices.md) * [Learn More with these Resources](newbs_learn_more_resources.md) This guide is focused on helping someone who has never compiled software before. It makes choices and recommendations based on that viewpoint. There are alternative methods for many of these procedures, and we support most of those alternatives. If you have any doubt about how to accomplish a task you can [ask us for guidance](getting_started_getting_help.md). + +## Additional Resources + +* [Thomas Baart's QMK Basics Blog](https://thomasbaart.nl/category/mechanical-keyboards/firmware/qmk/qmk-basics/) – A user-created blog covering the basics of how to use QMK Firmware, as seen from a new user's perspective. From 02d44beb4410b806cb8c38e272941d212fee8a74 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 14 Dec 2018 09:01:58 -0800 Subject: [PATCH 15/38] Fix up tap_code functionality (#4609) * Add delay in Tap Code to avoid issues I think a few people have reporting issues with it working properly, and it may be a timing issue. The 'register_code' uses this sort of delay in some of the functions, and this is probably why. Adding the 100ms delay should hopefully fix any issues with it. * Make tap_code delay configurable * Update documentation * Bring tap_code16 inline with changes * Fix type for tap_code16 Bad copy-paste job * Just use the value check for the define * Clarify timing in docs Co-Authored-By: drashna * Wordsmithing Co-Authored-By: drashna --- docs/config_options.md | 2 ++ docs/feature_macros.md | 2 ++ quantum/quantum.c | 8 ++++++++ quantum/quantum.h | 2 +- tmk_core/common/action.c | 12 ++++++++++++ tmk_core/common/action.h | 2 +- 6 files changed, 26 insertions(+), 2 deletions(-) diff --git a/docs/config_options.md b/docs/config_options.md index b811fa877d..69fecc8b49 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -160,6 +160,8 @@ If you define these options you will enable the associated feature, which may in * Set this to the number of combos that you're using in the [Combo](feature_combo.md) feature. * `#define COMBO_TERM 200` * how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined. +* `#define TAP_CODE_DELAY 100` + * Sets the delay between `register_code` and `unregister_code`, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. ## RGB Light Configuration diff --git a/docs/feature_macros.md b/docs/feature_macros.md index 29ba29fef7..aa13fb97f4 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -250,6 +250,8 @@ Parallel to `register_code` function, this sends the `` keyup event to the c This will send `register_code()` and then `unregister_code()`. This is useful if you want to send both the press and release events ("tap" the key, rather than hold it). +If you're having issues with taps (un)registering, you can add a delay between the register and unregister events by setting `#define TAP_CODE_DELAY 100` in your `config.h` file. The value is in milliseconds. + ### `clear_keyboard();` This will clear all mods and keys currently pressed. diff --git a/quantum/quantum.c b/quantum/quantum.c index 69692233eb..a57d4f89fe 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -132,6 +132,14 @@ void unregister_code16 (uint16_t code) { } } +void tap_code16(uint16_t code) { + register_code16(code); + #if TAP_CODE_DELAY > 0 + wait_ms(TAP_CODE_DELAY); + #endif + unregister_code16(code); +} + __attribute__ ((weak)) bool process_action_kb(keyrecord_t *record) { return true; diff --git a/quantum/quantum.h b/quantum/quantum.h index 5920e4b139..0faf1af29c 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -243,7 +243,7 @@ void shutdown_user(void); void register_code16(uint16_t code); void unregister_code16(uint16_t code); -inline void tap_code16(uint16_t code) { register_code16(code); unregister_code16(code); } +void tap_code16(uint16_t code); #ifdef BACKLIGHT_ENABLE void backlight_init_ports(void); diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 8bdcd54e32..456d1e25fe 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -847,6 +847,18 @@ void unregister_code(uint8_t code) #endif } +/** \brief Utilities for actions. (FIXME: Needs better description) + * + * FIXME: Needs documentation. + */ +void tap_code(uint8_t code) { + register_code(code); + #if TAP_CODE_DELAY > 0 + wait_ms(TAP_CODE_DELAY); + #endif + unregister_code(code); +} + /** \brief Utilities for actions. (FIXME: Needs better description) * * FIXME: Needs documentation. diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index 833febe9ce..5d797fd628 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h @@ -88,7 +88,7 @@ void process_record(keyrecord_t *record); void process_action(keyrecord_t *record, action_t action); void register_code(uint8_t code); void unregister_code(uint8_t code); -inline void tap_code(uint8_t code) { register_code(code); unregister_code(code); } +void tap_code(uint8_t code); void register_mods(uint8_t mods); void unregister_mods(uint8_t mods); //void set_mods(uint8_t mods); From 161ffa0af6b9af76b8e73a3f274bbc415ae9f842 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 14 Dec 2018 10:42:31 -0800 Subject: [PATCH 16/38] Add some optimization to the Tetris keyboard (#4645) --- keyboards/tetris/config.h | 12 +++---- keyboards/tetris/keymaps/default/keymap.c | 42 ++++++++--------------- keyboards/tetris/rules.mk | 21 ++++++------ 3 files changed, 31 insertions(+), 44 deletions(-) diff --git a/keyboards/tetris/config.h b/keyboards/tetris/config.h index 7e7dac7cf6..c2e5524490 100644 --- a/keyboards/tetris/config.h +++ b/keyboards/tetris/config.h @@ -1,5 +1,4 @@ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" @@ -10,6 +9,7 @@ #define MANUFACTURER Fengz #define PRODUCT Tetris #define DESCRIPTION Planck mit + #define QMK_ESC_OUTPUT B0 #define QMK_ESC_INPUT D7 #define QMK_LED B7 @@ -41,8 +41,10 @@ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + #define TAPPING_TERM 200 -#define PERMISSIVE_HOLD #ifdef AUDIO_ENABLE #define B5_AUDIO @@ -50,13 +52,11 @@ #define NO_MUSIC_MODE #endif +#if RGBLIGHT_ENABLE #define RGB_DI_PIN F5 -#ifdef RGB_DI_PIN #define RGBLIGHT_ANIMATIONS #define RGBLIGHT_SLEEP #define RGBLED_NUM 47 #define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 12 //#define RGBLIGHT_LIMIT_VAL 128 #endif - -#endif diff --git a/keyboards/tetris/keymaps/default/keymap.c b/keyboards/tetris/keymaps/default/keymap.c index 61f2961b42..5f48bd07ab 100644 --- a/keyboards/tetris/keymaps/default/keymap.c +++ b/keyboards/tetris/keymaps/default/keymap.c @@ -286,7 +286,7 @@ static uint16_t Type_Hue=270; void matrix_init_user( void ) { - _delay_ms( 200 ); + wait_ms( 200 ); /* Encoder init */ encoder_state = PIND & 0x3; @@ -368,27 +368,22 @@ void matrix_scan_user( void ) switch ( layer ) { case 0: - register_code( KC_VOLD ); - unregister_code( KC_VOLD ); + tap_code( KC_VOLD ); break; case _CODE: - register_code( KC_LEFT ); - unregister_code( KC_LEFT ); + tap_code( KC_LEFT ); break; case _RGB: rgblight_decrease_val(); break; case _NUMB: - register_code( KC_LEFT ); - unregister_code( KC_LEFT ); + tap_code( KC_LEFT ); break; case _MARO: - register_code( KC_UP ); - unregister_code( KC_UP ); + tap_code( KC_UP ); break; default: - register_code( KC_VOLD ); - unregister_code( KC_VOLD ); + tap_code( KC_VOLD ); } /* End of Set Encoder Keycode */ @@ -441,27 +436,22 @@ void matrix_scan_user( void ) switch ( layer ) { case 0: - register_code( KC_VOLU ); - unregister_code( KC_VOLU ); + tap_code( KC_VOLU ); break; case _CODE: - register_code( KC_RGHT ); - unregister_code( KC_RGHT ); + tap_code( KC_RGHT ); break; case _RGB: rgblight_increase_val(); break; case _NUMB: - register_code( KC_RGHT ); - unregister_code( KC_RGHT ); + tap_code( KC_RGHT ); break; case _MARO: - register_code( KC_DOWN ); - unregister_code( KC_DOWN ); + tap_code( KC_DOWN ); break; default: - register_code( KC_VOLU ); - unregister_code( KC_VOLU ); + tap_code( KC_VOLU ); } /* End of Set Encoder Keycode */ @@ -739,11 +729,8 @@ bool process_record_user( uint16_t keycode, keyrecord_t *record ){ if (record->event.pressed) { // Do something when pressed } else { - register_code( KC_0 ); // send 0 - unregister_code( KC_0 ); - - register_code( KC_0 ); // send 0 twice without macro - unregister_code( KC_0 ); + tap_code( KC_0 ); // send 0 + tap_code( KC_0 ); // send 0 twice without macro } return false; // Skip all further processing of this key @@ -818,7 +805,7 @@ bool process_record_user( uint16_t keycode, keyrecord_t *record ){ void led_set_user( uint8_t usb_led ) { static uint8_t old_usb_led = 0; - _delay_ms( 10 ); /* gets rid of tick */ + wait_ms( 10 ); /* gets rid of tick */ if ( (usb_led & (1 << USB_LED_CAPS_LOCK) ) && !(old_usb_led & (1 << USB_LED_CAPS_LOCK) ) ) { /* CAPS on */ @@ -844,4 +831,3 @@ void led_set_user( uint8_t usb_led ) } old_usb_led = usb_led; } // End of led_set_user - diff --git a/keyboards/tetris/rules.mk b/keyboards/tetris/rules.mk index 784f6e4623..4741c162bd 100644 --- a/keyboards/tetris/rules.mk +++ b/keyboards/tetris/rules.mk @@ -44,17 +44,18 @@ BOOTLOADER =qmk-dfu # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= no # Console for debug(+400) -COMMAND_ENABLE ?= no # Commands for debug and configuration -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 ?= yes -RGBLIGHT_ENABLE ?= yes +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +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 = yes +RGBLIGHT_ENABLE = yes TAP_DANCE_ENABLE = no + EXTRAFLAGS += -flto # Make the hex smaller LAYOUTS = planck_mit From 9739d6ba0ad3da93f42cc28a78a6722d39ad3d72 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 14 Dec 2018 10:43:24 -0800 Subject: [PATCH 17/38] Docs: Clarify audio keycodes (#4620) * Clarify audio keycodes * Spelling errors Co-Authored-By: drashna * Spacing in md Co-Authored-By: drashna * Fix midi link too * Wordsmithing --- docs/feature_audio.md | 10 ++++++---- docs/keycodes.md | 6 +++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/feature_audio.md b/docs/feature_audio.md index a39c456873..38861e8c14 100644 --- a/docs/feature_audio.md +++ b/docs/feature_audio.md @@ -61,9 +61,11 @@ It's advised that you wrap all audio features in `#ifdef AUDIO_ENABLE` / `#endif The available keycodes for audio are: -* `AU_ON` - Turn audio mode on -* `AU_OFF` - Turn audio mode off -* `AU_TOG` - Toggle audio mode +* `AU_ON` - Turn Audio Feature on +* `AU_OFF` - Turn Audio Feature off +* `AU_TOG` - Toggle Audio Feature state + +!> These keycodes turn all of the audio functionality on and off. Turning it off means that audio feedback, audio clicky, music mode, etc. are disabled, completely. ## ARM Audio Volume @@ -158,7 +160,7 @@ You can configure the default, min and max frequencies, the stepping and built i ## MIDI Functionality -This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. +This is still a WIP, but check out `quantum/process_keycode/process_midi.c` to see what's happening. Enable from the Makefile. ## Audio Keycodes diff --git a/docs/keycodes.md b/docs/keycodes.md index 468b59f84f..6d85253935 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -226,9 +226,9 @@ This is a reference only. Each group of keys links to the page documenting their |Key |Aliases |Description | |----------------|---------|----------------------------------| -|`AU_ON` | |Audio mode on | -|`AU_OFF` | |Audio mode off | -|`AU_TOG` | |Toggles Audio mode | +|`AU_ON` | |Turns on Audio Feature | +|`AU_OFF` | |Turns off Audio Feature | +|`AU_TOG` | |Toggles Audio state | |`CLICKY_TOGGLE` |`CK_TOGG`|Toggles Audio clicky mode | |`CLICKY_UP` |`CK_UP` |Increases frequency of the clicks | |`CLICKY_DOWN` |`CK_DOWN`|Decreases frequency of the clicks | From 155e9310ff685f557287749bef2e02510538a6d9 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat, 15 Dec 2018 04:00:10 +0900 Subject: [PATCH 18/38] Make quantum/split_common/serial.[ch] configurable (#4419) * add temporary compile test shell script * add 'CONFIG_H += serial_backward_compatibility.h' into common_features.mk:SPLIT_KEYBOARD block * add quantum/split_common/serial_backward_compatibility.h SERIAL_PIN_PORT and other PIN define move to serial_backward_compatibility.h SERIAL_BACKLIT_START move to split_util.h * quantum/split_common/serial.c change to helix-serial.c style serial configuration * add temporary file quantum/split_common/split-keyboards-list.txt * add '#define SOFT_SERIAL_PIN D0' to keyboards/6lit/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/divergetm2/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/ergotravel/rev1/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/foobar/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/dactyl_manuform/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/qc60/config.h * add '//#define SOFT_SERIAL_PIN D0' to keyboards/handwired/xealous/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/iris/rev*/config.h * add '//#define SOFT_SERIAL_PIN D0' to keyboards/lets_split_eh/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/levinson/rev*/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/miniaxe/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/nyquist/rev?/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/quefrency/rev1/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/qwertyydox/config.h,keyboards/qwertyydox/rev1/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/redox/rev1/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/rorschach/rev1/config.h * remove '#define SOFT_SERIAL_PIN D0' from quantum/split_common/serial_backward_compatibility.h * remove temporary file quantum/split_common/split-keyboards-list.txt * remove temporary compile test shell script * Revert "remove temporary compile test shell script" This reverts commit 15b0021b4092127b8d8a21f572642ad3702b46d4. * update quantum/split_common/compile_split_test.sh for new keyboard test * add '#define SOFT_SERIAL_PIN D0' to keyboards/diverge3/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/40percentclub/25/config.h * remove temporary compile test shell script * update docs/config_options.md, quantum/template/avr/config.h * fix quantum/template/avr/config.h * fix typo docs/config_options.md --- common_features.mk | 5 ++ docs/config_options.md | 3 ++ keyboards/40percentclub/25/config.h | 2 + keyboards/40percentclub/6lit/config.h | 3 ++ keyboards/40percentclub/foobar/config.h | 3 ++ keyboards/diverge3/config.h | 3 ++ keyboards/divergetm2/config.h | 3 ++ keyboards/ergotravel/rev1/config.h | 3 ++ keyboards/handwired/dactyl_manuform/config.h | 3 ++ keyboards/handwired/qc60/config.h | 3 ++ keyboards/handwired/xealous/config.h | 5 +- keyboards/iris/rev1/config.h | 3 ++ keyboards/iris/rev1_led/config.h | 3 ++ keyboards/iris/rev2/config.h | 3 ++ keyboards/iris/rev3/config.h | 3 ++ keyboards/lets_split_eh/config.h | 3 ++ keyboards/levinson/rev1/config.h | 3 ++ keyboards/levinson/rev2/config.h | 3 ++ keyboards/miniaxe/config.h | 3 ++ keyboards/nyquist/rev1/config.h | 3 ++ keyboards/nyquist/rev2/config.h | 3 ++ keyboards/nyquist/rev3/config.h | 3 ++ keyboards/quefrency/rev1/config.h | 3 ++ keyboards/qwertyydox/config.h | 3 ++ keyboards/qwertyydox/rev1/config.h | 3 ++ keyboards/redox/rev1/config.h | 3 ++ keyboards/rorschach/rev1/config.h | 3 ++ quantum/split_common/serial.c | 53 +++++++++++++++++++ quantum/split_common/serial.h | 23 ++++---- .../serial_backward_compatibility.h | 11 ++++ quantum/split_common/split_util.h | 3 ++ quantum/template/avr/config.h | 5 ++ 32 files changed, 165 insertions(+), 14 deletions(-) create mode 100644 quantum/split_common/serial_backward_compatibility.h diff --git a/common_features.mk b/common_features.mk index bd88e04d62..97febe2e77 100644 --- a/common_features.mk +++ b/common_features.mk @@ -263,6 +263,11 @@ ifneq ($(strip $(CUSTOM_MATRIX)), yes) endif ifeq ($(strip $(SPLIT_KEYBOARD)), yes) + SERIAL_BACKWARD_COMPAT := $(wildcard $(QUANTUM_DIR)/split_common/serial_backward_compatibility.h) + ifneq ($(SERIAL_BACKWARD_COMPAT),) + CONFIG_H += $(SERIAL_BACKWARD_COMPAT) + # $(info CONFIG_H=$(CONFIG_H)) + endif OPT_DEFS += -DSPLIT_KEYBOARD QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_flags.c \ $(QUANTUM_DIR)/split_common/split_util.c \ diff --git a/docs/config_options.md b/docs/config_options.md index 69fecc8b49..bea4acb010 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -198,6 +198,9 @@ Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in yo * `#define USE_I2C` * For using I2C instead of Serial (defaults to serial) +* `#define SOFT_SERIAL_PIN D0` + * When using serial, define this. `D0` or `D1`,`D2`,`D3`,`E6`. + # The `rules.mk` File This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features. diff --git a/keyboards/40percentclub/25/config.h b/keyboards/40percentclub/25/config.h index 23b768e153..7fe59fcca0 100644 --- a/keyboards/40percentclub/25/config.h +++ b/keyboards/40percentclub/25/config.h @@ -27,6 +27,8 @@ #define DESCRIPTION A split 50 key keyboard #define USE_SERIAL +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 /* Select hand configuration */ #define MASTER_LEFT diff --git a/keyboards/40percentclub/6lit/config.h b/keyboards/40percentclub/6lit/config.h index 8397818a61..940518f365 100644 --- a/keyboards/40percentclub/6lit/config.h +++ b/keyboards/40percentclub/6lit/config.h @@ -28,6 +28,9 @@ #define USE_SERIAL +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Select hand configuration */ #define MASTER_LEFT //#define MASTER_RIGHT diff --git a/keyboards/40percentclub/foobar/config.h b/keyboards/40percentclub/foobar/config.h index 89219c4607..88075c4560 100644 --- a/keyboards/40percentclub/foobar/config.h +++ b/keyboards/40percentclub/foobar/config.h @@ -28,6 +28,9 @@ #define USE_SERIAL +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Select hand configuration */ #define MASTER_LEFT //#define MASTER_RIGHT diff --git a/keyboards/diverge3/config.h b/keyboards/diverge3/config.h index 262be7b757..464dc835ff 100644 --- a/keyboards/diverge3/config.h +++ b/keyboards/diverge3/config.h @@ -57,6 +57,9 @@ along with this program. If not, see . /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST diff --git a/keyboards/divergetm2/config.h b/keyboards/divergetm2/config.h index 8bc9d2c803..cbeeff9aa8 100644 --- a/keyboards/divergetm2/config.h +++ b/keyboards/divergetm2/config.h @@ -59,6 +59,9 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* * Magic Key Options * diff --git a/keyboards/ergotravel/rev1/config.h b/keyboards/ergotravel/rev1/config.h index 3af1147a7a..e6d557361c 100644 --- a/keyboards/ergotravel/rev1/config.h +++ b/keyboards/ergotravel/rev1/config.h @@ -56,6 +56,9 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + #define BACKLIGHT_PIN B5 #define BACKLIGHT_LEVELS 5 diff --git a/keyboards/handwired/dactyl_manuform/config.h b/keyboards/handwired/dactyl_manuform/config.h index 320ce3c482..0e6f3f98ed 100644 --- a/keyboards/handwired/dactyl_manuform/config.h +++ b/keyboards/handwired/dactyl_manuform/config.h @@ -38,6 +38,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/handwired/qc60/config.h b/keyboards/handwired/qc60/config.h index 3b6f84390b..00d095ddf1 100644 --- a/keyboards/handwired/qc60/config.h +++ b/keyboards/handwired/qc60/config.h @@ -18,6 +18,9 @@ /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* key combination for command */ #define IS_COMMAND() ( \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ diff --git a/keyboards/handwired/xealous/config.h b/keyboards/handwired/xealous/config.h index 415a0dcf5b..7bce502c15 100644 --- a/keyboards/handwired/xealous/config.h +++ b/keyboards/handwired/xealous/config.h @@ -21,10 +21,13 @@ along with this program. If not, see . /* Use I2C or Serial, not both */ -// #define USE_SERIAL #define USE_I2C #define SCL_CLOCK 400000UL +// #define USE_SERIAL +/* serial.c configuration for split keyboard */ +// #define SOFT_SERIAL_PIN D0 + /* Select hand configuration */ #define MASTER_LEFT diff --git a/keyboards/iris/rev1/config.h b/keyboards/iris/rev1/config.h index 7f76df54ba..3b31ca0d7e 100644 --- a/keyboards/iris/rev1/config.h +++ b/keyboards/iris/rev1/config.h @@ -48,6 +48,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/iris/rev1_led/config.h b/keyboards/iris/rev1_led/config.h index b58b11836a..e9739c0031 100644 --- a/keyboards/iris/rev1_led/config.h +++ b/keyboards/iris/rev1_led/config.h @@ -48,6 +48,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/iris/rev2/config.h b/keyboards/iris/rev2/config.h index 266c29b9c9..d43d4b1c64 100644 --- a/keyboards/iris/rev2/config.h +++ b/keyboards/iris/rev2/config.h @@ -48,6 +48,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/iris/rev3/config.h b/keyboards/iris/rev3/config.h index 1032231d89..5642512f39 100644 --- a/keyboards/iris/rev3/config.h +++ b/keyboards/iris/rev3/config.h @@ -48,6 +48,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lets_split_eh/config.h b/keyboards/lets_split_eh/config.h index b8fe95ea2b..abfee0eace 100644 --- a/keyboards/lets_split_eh/config.h +++ b/keyboards/lets_split_eh/config.h @@ -36,6 +36,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +//#define SOFT_SERIAL_PIN D0 + /* key combination for command */ #define IS_COMMAND() ( \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ diff --git a/keyboards/levinson/rev1/config.h b/keyboards/levinson/rev1/config.h index 8161b4e32f..07ba1e221e 100644 --- a/keyboards/levinson/rev1/config.h +++ b/keyboards/levinson/rev1/config.h @@ -41,6 +41,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/levinson/rev2/config.h b/keyboards/levinson/rev2/config.h index 03b98b45c1..a731c71955 100644 --- a/keyboards/levinson/rev2/config.h +++ b/keyboards/levinson/rev2/config.h @@ -41,6 +41,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/miniaxe/config.h b/keyboards/miniaxe/config.h index 13608feab2..2b732ca16f 100644 --- a/keyboards/miniaxe/config.h +++ b/keyboards/miniaxe/config.h @@ -237,6 +237,9 @@ along with this program. If not, see . /* Serial settings */ #define USE_SERIAL +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + //#define EE_HANDS #define I2C_MASTER_LEFT //#define I2C_MASTER_RIGHT diff --git a/keyboards/nyquist/rev1/config.h b/keyboards/nyquist/rev1/config.h index 35fbaffb96..892054b733 100644 --- a/keyboards/nyquist/rev1/config.h +++ b/keyboards/nyquist/rev1/config.h @@ -46,6 +46,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/nyquist/rev2/config.h b/keyboards/nyquist/rev2/config.h index 7dc743b275..21aea0aada 100644 --- a/keyboards/nyquist/rev2/config.h +++ b/keyboards/nyquist/rev2/config.h @@ -43,6 +43,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/nyquist/rev3/config.h b/keyboards/nyquist/rev3/config.h index 6c51bc9a80..8054ba79c2 100644 --- a/keyboards/nyquist/rev3/config.h +++ b/keyboards/nyquist/rev3/config.h @@ -43,6 +43,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/quefrency/rev1/config.h b/keyboards/quefrency/rev1/config.h index 1074590ff5..88d7044864 100644 --- a/keyboards/quefrency/rev1/config.h +++ b/keyboards/quefrency/rev1/config.h @@ -41,6 +41,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/qwertyydox/config.h b/keyboards/qwertyydox/config.h index b22ca534e3..a685652230 100644 --- a/keyboards/qwertyydox/config.h +++ b/keyboards/qwertyydox/config.h @@ -49,6 +49,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/qwertyydox/rev1/config.h b/keyboards/qwertyydox/rev1/config.h index 3d4c9b0d00..a2557592d3 100644 --- a/keyboards/qwertyydox/rev1/config.h +++ b/keyboards/qwertyydox/rev1/config.h @@ -49,6 +49,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/redox/rev1/config.h b/keyboards/redox/rev1/config.h index f4ccbd2fd5..654a84de74 100644 --- a/keyboards/redox/rev1/config.h +++ b/keyboards/redox/rev1/config.h @@ -49,6 +49,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/rorschach/rev1/config.h b/keyboards/rorschach/rev1/config.h index 1c9ef8276c..1ea6dde98d 100644 --- a/keyboards/rorschach/rev1/config.h +++ b/keyboards/rorschach/rev1/config.h @@ -42,6 +42,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/quantum/split_common/serial.c b/quantum/split_common/serial.c index 74bcbb6bf6..f34f824d7d 100644 --- a/quantum/split_common/serial.c +++ b/quantum/split_common/serial.c @@ -14,6 +14,59 @@ #ifndef USE_I2C +#ifndef SOFT_SERIAL_PIN + #error quantum/split_common/serial.c need SOFT_SERIAL_PIN define +#endif + +#ifdef __AVR_ATmega32U4__ + // if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial. + #ifdef USE_I2C + #if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1 + #error Using ATmega32U4 I2C, so can not use PD0, PD1 + #endif + #endif + + #if SOFT_SERIAL_PIN >= D0 && SOFT_SERIAL_PIN <= D3 + #define SERIAL_PIN_DDR DDRD + #define SERIAL_PIN_PORT PORTD + #define SERIAL_PIN_INPUT PIND + #if SOFT_SERIAL_PIN == D0 + #define SERIAL_PIN_MASK _BV(PD0) + #define EIMSK_BIT _BV(INT0) + #define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01))) + #define SERIAL_PIN_INTERRUPT INT0_vect + #elif SOFT_SERIAL_PIN == D1 + #define SERIAL_PIN_MASK _BV(PD1) + #define EIMSK_BIT _BV(INT1) + #define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11))) + #define SERIAL_PIN_INTERRUPT INT1_vect + #elif SOFT_SERIAL_PIN == D2 + #define SERIAL_PIN_MASK _BV(PD2) + #define EIMSK_BIT _BV(INT2) + #define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21))) + #define SERIAL_PIN_INTERRUPT INT2_vect + #elif SOFT_SERIAL_PIN == D3 + #define SERIAL_PIN_MASK _BV(PD3) + #define EIMSK_BIT _BV(INT3) + #define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31))) + #define SERIAL_PIN_INTERRUPT INT3_vect + #endif + #elif SOFT_SERIAL_PIN == E6 + #define SERIAL_PIN_DDR DDRE + #define SERIAL_PIN_PORT PORTE + #define SERIAL_PIN_INPUT PINE + #define SERIAL_PIN_MASK _BV(PE6) + #define EIMSK_BIT _BV(INT6) + #define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61))) + #define SERIAL_PIN_INTERRUPT INT6_vect + #else + #error invalid SOFT_SERIAL_PIN value + #endif + +#else + #error serial.c now support ATmega32U4 only +#endif + // Serial pulse period in microseconds. Its probably a bad idea to lower this // value. #define SERIAL_DELAY 24 diff --git a/quantum/split_common/serial.h b/quantum/split_common/serial.h index e566eb8a06..0b99f352d0 100644 --- a/quantum/split_common/serial.h +++ b/quantum/split_common/serial.h @@ -1,21 +1,18 @@ #ifndef MY_SERIAL_H #define MY_SERIAL_H -#include "config.h" #include -/* TODO: some defines for interrupt setup */ -#define SERIAL_PIN_DDR DDRD -#define SERIAL_PIN_PORT PORTD -#define SERIAL_PIN_INPUT PIND -#define SERIAL_PIN_MASK _BV(PD0) -#define SERIAL_PIN_INTERRUPT INT0_vect - -#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 -#define SERIAL_MASTER_BUFFER_LENGTH 1 - -// Address location defines -#define SERIAL_BACKLIT_START 0x00 +// ///////////////////////////////////////////////////////////////// +// Need Soft Serial defines in config.h +// ///////////////////////////////////////////////////////////////// +// ex. +// /* Configuration of lower interface with the lower layer(hardware) of serial.c */ +// #define SOFT_SERIAL_PIN ?? // ?? = D0,D1,D2,D3,E6 +// +// /* Configuration of upper interface with the upper layer of serial.c */ +// #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 +// #define SERIAL_MASTER_BUFFER_LENGTH 1 // Buffers for master - slave communication extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; diff --git a/quantum/split_common/serial_backward_compatibility.h b/quantum/split_common/serial_backward_compatibility.h new file mode 100644 index 0000000000..216b6c41ff --- /dev/null +++ b/quantum/split_common/serial_backward_compatibility.h @@ -0,0 +1,11 @@ +/* serial.h backward compatibility */ + +// #ifndef SOFT_SERIAL_PIN +// #define SOFT_SERIAL_PIN D0 +// #endif + +#ifndef SERIAL_SLAVE_BUFFER_LENGTH + #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 + #define SERIAL_MASTER_BUFFER_LENGTH 1 +#endif + diff --git a/quantum/split_common/split_util.h b/quantum/split_common/split_util.h index d6cf3e72a9..45e8db0f2f 100644 --- a/quantum/split_common/split_util.h +++ b/quantum/split_common/split_util.h @@ -7,6 +7,9 @@ #include #include "eeconfig.h" +// backlight level store index in serial_master_buffer[] for slave to read +#define SERIAL_BACKLIT_START 0x00 + #define SLAVE_I2C_ADDRESS 0x32 extern volatile bool isLeftHand; diff --git a/quantum/template/avr/config.h b/quantum/template/avr/config.h index 463ddff2db..eed50e5c04 100644 --- a/quantum/template/avr/config.h +++ b/quantum/template/avr/config.h @@ -48,6 +48,11 @@ along with this program. If not, see . /* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ #define DIODE_DIRECTION COL2ROW +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + // #define BACKLIGHT_PIN B7 // #define BACKLIGHT_BREATHING // #define BACKLIGHT_LEVELS 3 From 8f02375cc6ddfbbc6be384a9d5b1a9c91517099e Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 14 Dec 2018 11:37:26 -0800 Subject: [PATCH 19/38] Keyboard: B.mini EX refactor and Configurator support (#4647) * B.mini EX: refactor - add LAYOUT_ansi and LAYOUT_iso macros - add ansi and iso keymaps with readme files * B.mini EX: Configurator support --- keyboards/bminiex/bminiex.h | 36 +++ keyboards/bminiex/info.json | 340 +++++++++++++++++++++++ keyboards/bminiex/keymaps/ansi/keymap.c | 29 ++ keyboards/bminiex/keymaps/ansi/readme.md | 17 ++ keyboards/bminiex/keymaps/iso/keymap.c | 29 ++ keyboards/bminiex/keymaps/iso/readme.md | 17 ++ 6 files changed, 468 insertions(+) create mode 100644 keyboards/bminiex/info.json create mode 100644 keyboards/bminiex/keymaps/ansi/keymap.c create mode 100644 keyboards/bminiex/keymaps/ansi/readme.md create mode 100644 keyboards/bminiex/keymaps/iso/keymap.c create mode 100644 keyboards/bminiex/keymaps/iso/readme.md diff --git a/keyboards/bminiex/bminiex.h b/keyboards/bminiex/bminiex.h index a58ce68923..8d897f639f 100644 --- a/keyboards/bminiex/bminiex.h +++ b/keyboards/bminiex/bminiex.h @@ -37,6 +37,42 @@ along with this program. If not, see . { K07, K17, K27, K37, K47, K57, K67, K77, KC_NO, KC_NO, KA7, KB7, KC7, KD7, KE7 } \ } +#define LAYOUT_ansi( \ + K05, K25, K35, K45, K55, K06, KA6, KA7, K07, KB5, KC5, KD5, KE5, KD1, KE1, KE2, K65, K75, K85, K95, \ + K04, K14, K24, K34, K44, K54, K16, KB6, KB7, K17, KA4, KB4, KC4, KE4, KD0, K64, K74, K84, K94, \ + K03, K13, K23, K33, K43, K53, K26, KC6, KC7, K27, KA3, KB3, KC3, KD3, K67, K63, K73, K83, \ + K02, K12, K22, K32, K42, K52, K36, KD6, KD7, K37, KA2, KB2, KD2, KE0, K62, K72, K82, K92, \ + K01, K11, K21, K31, K41, K51, K46, KE6, KE7, K47, KA1, KB1, K86, K77, K61, K71, K81, \ + K00, K10, K20, K56, K57, KB0, KC0, K66, K76, K96, K60, K80, K90 \ +){ \ + { K00, K10, K20, KC_NO, KC_NO, KC_NO, K60, KC_NO, K80, K90, KC_NO, KB0, KC0, KD0, KE0 }, \ + { K01, K11, K21, K31, K41, K51, K61, K71, K81, KC_NO, KA1, KB1, KC_NO, KD1, KE1 }, \ + { K02, K12, K22, K32, K42, K52, K62, K72, K82, K92, KA2, KB2, KC_NO, KD2, KE2 }, \ + { K03, K13, K23, K33, K43, K53, K63, K73, K83, KC_NO, KA3, KB3, KC3, KD3, KC_NO }, \ + { K04, K14, K24, K34, K44, K54, K64, K74, K84, K94, KA4, KB4, KC4, KC_NO, KE4 }, \ + { K05, KC_NO, K25, K35, K45, K55, K65, K75, K85, K95, KC_NO, KB5, KC5, KD5, KE5 }, \ + { K06, K16, K26, K36, K46, K56, K66, K76, K86, K96, KA6, KB6, KC6, KD6, KE6 }, \ + { K07, K17, K27, K37, K47, K57, K67, K77, KC_NO, KC_NO, KA7, KB7, KC7, KD7, KE7 } \ +} + +#define LAYOUT_iso( \ + K05, K25, K35, K45, K55, K06, KA6, KA7, K07, KB5, KC5, KD5, KE5, KD1, KE1, KE2, K65, K75, K85, K95, \ + K04, K14, K24, K34, K44, K54, K16, KB6, KB7, K17, KA4, KB4, KC4, KE4, KD0, K64, K74, K84, K94, \ + K03, K13, K23, K33, K43, K53, K26, KC6, KC7, K27, KA3, KB3, KC3, K67, K63, K73, K83, \ + K02, K12, K22, K32, K42, K52, K36, KD6, KD7, K37, KA2, KB2, KC2, KD2, KE0, K62, K72, K82, K92, \ + K01, K30, K11, K21, K31, K41, K51, K46, KE6, KE7, K47, KA1, KB1, K86, K77, K61, K71, K81, \ + K00, K10, K20, K56, K57, KB0, KC0, K66, K76, K96, K60, K80, K90 \ +){ \ + { K00, K10, K20, K30, KC_NO, KC_NO, K60, KC_NO, K80, K90, KC_NO, KB0, KC0, KD0, KE0 }, \ + { K01, K11, K21, K31, K41, K51, K61, K71, K81, KC_NO, KA1, KB1, KC_NO, KD1, KE1 }, \ + { K02, K12, K22, K32, K42, K52, K62, K72, K82, K92, KA2, KB2, KC2, KD2, KE2 }, \ + { K03, K13, K23, K33, K43, K53, K63, K73, K83, KC_NO, KA3, KB3, KC3, KC_NO, KC_NO }, \ + { K04, K14, K24, K34, K44, K54, K64, K74, K84, K94, KA4, KB4, KC4, KC_NO, KE4 }, \ + { K05, KC_NO, K25, K35, K45, K55, K65, K75, K85, K95, KC_NO, KB5, KC5, KD5, KE5 }, \ + { K06, K16, K26, K36, K46, K56, K66, K76, K86, K96, KA6, KB6, KC6, KD6, KE6 }, \ + { K07, K17, K27, K37, K47, K57, K67, K77, KC_NO, KC_NO, KA7, KB7, KC7, KD7, KE7 } \ +} + #define LAYOUT_kc( \ K05, K25, K35, K45, K55, K06, KA6, KA7, K07, KB5, KC5, KD5, KE5, KD1, KE1, KE2, K65, K75, K85, K95, \ K04, K14, K24, K34, K44, K54, K16, KB6, KB7, K17, KA4, KB4, KC4, KE4, KD0, K64, K74, K84, K94, \ diff --git a/keyboards/bminiex/info.json b/keyboards/bminiex/info.json new file mode 100644 index 0000000000..8e38fbfb93 --- /dev/null +++ b/keyboards/bminiex/info.json @@ -0,0 +1,340 @@ +{ + "keyboard_name": "winkeyless.kr B.mini EX", + "keyboard_folder": "bminiex", + "url": "https://winkeyless.kr/product/b-mini-ex-x2-pcb/", + "maintainer": "qmk", + "width": 20.25, + "height": 6.25, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"ESC", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PSCR", "x":13, "y":0}, + {"label":"HOME", "x":14, "y":0}, + {"label":"END", "x":15, "y":0}, + {"label":"NO", "x":16.25, "y":0}, + {"label":"NO", "x":17.25, "y":0}, + {"label":"NO", "x":18.25, "y":0}, + {"label":"NO", "x":19.25, "y":0}, + {"label":"GRV", "x":0, "y":1.25}, + {"label":"1", "x":1, "y":1.25}, + {"label":"2", "x":2, "y":1.25}, + {"label":"3", "x":3, "y":1.25}, + {"label":"4", "x":4, "y":1.25}, + {"label":"5", "x":5, "y":1.25}, + {"label":"6", "x":6, "y":1.25}, + {"label":"7", "x":7, "y":1.25}, + {"label":"8", "x":8, "y":1.25}, + {"label":"9", "x":9, "y":1.25}, + {"label":"0", "x":10, "y":1.25}, + {"label":"MINS", "x":11, "y":1.25}, + {"label":"EQL", "x":12, "y":1.25}, + {"label":"BSPC", "x":13, "y":1.25, "w":2}, + {"label":"DEL", "x":15, "y":1.25}, + {"label":"NLCK", "x":16.25, "y":1.25}, + {"label":"PSLS", "x":17.25, "y":1.25}, + {"label":"PAST", "x":18.25, "y":1.25}, + {"label":"PMNS", "x":19.25, "y":1.25}, + {"label":"TAB", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"LBRC", "x":11.5, "y":2.25}, + {"label":"RBRC", "x":12.5, "y":2.25}, + {"label":"NO", "x":13.5, "y":2.25, "w":1.5}, + {"label":"INS", "x":15, "y":2.25}, + {"label":"P7", "x":16.25, "y":2.25}, + {"label":"P8", "x":17.25, "y":2.25}, + {"label":"P9", "x":18.25, "y":2.25}, + {"label":"CAPS", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":"SCLN", "x":10.75, "y":3.25}, + {"label":"QUOT", "x":11.75, "y":3.25}, + {"label":"NUHS", "x":12.75, "y":3.25}, + {"label":"ENT", "x":13.75, "y":3.25, "w":1.25}, + {"label":"PGUP", "x":15, "y":3.25}, + {"label":"P4", "x":16.25, "y":3.25}, + {"label":"P5", "x":17.25, "y":3.25}, + {"label":"P6", "x":18.25, "y":3.25}, + {"label":"PPLS", "x":19.25, "y":2.25, "h":2}, + {"label":"LSFT", "x":0, "y":4.25, "w":1.25}, + {"label":"NUBS", "x":1.25, "y":4.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"COMM", "x":9.25, "y":4.25}, + {"label":"DOT", "x":10.25, "y":4.25}, + {"label":"SLSH", "x":11.25, "y":4.25}, + {"label":"RSFT", "x":12.25, "y":4.25, "w":1.75}, + {"label":"UP", "x":14, "y":4.25}, + {"label":"PGDN", "x":15, "y":4.25}, + {"label":"P1", "x":16.25, "y":4.25}, + {"label":"P2", "x":17.25, "y":4.25}, + {"label":"P3", "x":18.25, "y":4.25}, + {"label":"LCTL", "x":0, "y":5.25, "w":1.25}, + {"label":"LGUI", "x":1.25, "y":5.25, "w":1.25}, + {"label":"LALT", "x":2.5, "y":5.25, "w":1.25}, + {"label":"SPC", "x":3.75, "y":5.25, "w":6.25}, + {"label":"RALT", "x":10, "y":5.25}, + {"label":"APP", "x":11, "y":5.25}, + {"label":"RCTL", "x":12, "y":5.25}, + {"label":"LEFT", "x":13, "y":5.25}, + {"label":"DOWN", "x":14, "y":5.25}, + {"label":"RGHT", "x":15, "y":5.25}, + {"label":"P0", "x":16.25, "y":5.25, "w":2}, + {"label":"PDOT", "x":18.25, "y":5.25}, + {"label":"PENT", "x":19.25, "y":4.25, "h":2} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"label":"ESC", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PSCR", "x":13, "y":0}, + {"label":"HOME", "x":14, "y":0}, + {"label":"END", "x":15, "y":0}, + {"label":"NO", "x":16.25, "y":0}, + {"label":"NO", "x":17.25, "y":0}, + {"label":"NO", "x":18.25, "y":0}, + {"label":"NO", "x":19.25, "y":0}, + {"label":"GRV", "x":0, "y":1.25}, + {"label":"1", "x":1, "y":1.25}, + {"label":"2", "x":2, "y":1.25}, + {"label":"3", "x":3, "y":1.25}, + {"label":"4", "x":4, "y":1.25}, + {"label":"5", "x":5, "y":1.25}, + {"label":"6", "x":6, "y":1.25}, + {"label":"7", "x":7, "y":1.25}, + {"label":"8", "x":8, "y":1.25}, + {"label":"9", "x":9, "y":1.25}, + {"label":"0", "x":10, "y":1.25}, + {"label":"MINS", "x":11, "y":1.25}, + {"label":"EQL", "x":12, "y":1.25}, + {"label":"BSPC", "x":13, "y":1.25, "w":2}, + {"label":"DEL", "x":15, "y":1.25}, + {"label":"NLCK", "x":16.25, "y":1.25}, + {"label":"PSLS", "x":17.25, "y":1.25}, + {"label":"PAST", "x":18.25, "y":1.25}, + {"label":"PMNS", "x":19.25, "y":1.25}, + {"label":"TAB", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"LBRC", "x":11.5, "y":2.25}, + {"label":"RBRC", "x":12.5, "y":2.25}, + {"label":"BSLS", "x":13.5, "y":2.25, "w":1.5}, + {"label":"INS", "x":15, "y":2.25}, + {"label":"P7", "x":16.25, "y":2.25}, + {"label":"P8", "x":17.25, "y":2.25}, + {"label":"P9", "x":18.25, "y":2.25}, + {"label":"CAPS", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":"SCLN", "x":10.75, "y":3.25}, + {"label":"QUOT", "x":11.75, "y":3.25}, + {"label":"ENT", "x":12.75, "y":3.25, "w":2.25}, + {"label":"PGUP", "x":15, "y":3.25}, + {"label":"P4", "x":16.25, "y":3.25}, + {"label":"P5", "x":17.25, "y":3.25}, + {"label":"P6", "x":18.25, "y":3.25}, + {"label":"PPLS", "x":19.25, "y":2.25, "h":2}, + {"label":"LSFT", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"COMM", "x":9.25, "y":4.25}, + {"label":"DOT", "x":10.25, "y":4.25}, + {"label":"SLSH", "x":11.25, "y":4.25}, + {"label":"RSFT", "x":12.25, "y":4.25, "w":1.75}, + {"label":"UP", "x":14, "y":4.25}, + {"label":"PGDN", "x":15, "y":4.25}, + {"label":"P1", "x":16.25, "y":4.25}, + {"label":"P2", "x":17.25, "y":4.25}, + {"label":"P3", "x":18.25, "y":4.25}, + {"label":"LCTL", "x":0, "y":5.25, "w":1.25}, + {"label":"LGUI", "x":1.25, "y":5.25, "w":1.25}, + {"label":"LALT", "x":2.5, "y":5.25, "w":1.25}, + {"label":"SPC", "x":3.75, "y":5.25, "w":6.25}, + {"label":"RALT", "x":10, "y":5.25}, + {"label":"APP", "x":11, "y":5.25}, + {"label":"RCTL", "x":12, "y":5.25}, + {"label":"LEFT", "x":13, "y":5.25}, + {"label":"DOWN", "x":14, "y":5.25}, + {"label":"RGHT", "x":15, "y":5.25}, + {"label":"P0", "x":16.25, "y":5.25, "w":2}, + {"label":"PDOT", "x":18.25, "y":5.25}, + {"label":"PENT", "x":19.25, "y":4.25, "h":2} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"label":"ESC", "x":0, "y":0}, + {"label":"F1", "x":1, "y":0}, + {"label":"F2", "x":2, "y":0}, + {"label":"F3", "x":3, "y":0}, + {"label":"F4", "x":4, "y":0}, + {"label":"F5", "x":5, "y":0}, + {"label":"F6", "x":6, "y":0}, + {"label":"F7", "x":7, "y":0}, + {"label":"F8", "x":8, "y":0}, + {"label":"F9", "x":9, "y":0}, + {"label":"F10", "x":10, "y":0}, + {"label":"F11", "x":11, "y":0}, + {"label":"F12", "x":12, "y":0}, + {"label":"PSCR", "x":13, "y":0}, + {"label":"HOME", "x":14, "y":0}, + {"label":"END", "x":15, "y":0}, + {"label":"NO", "x":16.25, "y":0}, + {"label":"NO", "x":17.25, "y":0}, + {"label":"NO", "x":18.25, "y":0}, + {"label":"NO", "x":19.25, "y":0}, + {"label":"GRV", "x":0, "y":1.25}, + {"label":"1", "x":1, "y":1.25}, + {"label":"2", "x":2, "y":1.25}, + {"label":"3", "x":3, "y":1.25}, + {"label":"4", "x":4, "y":1.25}, + {"label":"5", "x":5, "y":1.25}, + {"label":"6", "x":6, "y":1.25}, + {"label":"7", "x":7, "y":1.25}, + {"label":"8", "x":8, "y":1.25}, + {"label":"9", "x":9, "y":1.25}, + {"label":"0", "x":10, "y":1.25}, + {"label":"MINS", "x":11, "y":1.25}, + {"label":"EQL", "x":12, "y":1.25}, + {"label":"BSPC", "x":13, "y":1.25, "w":2}, + {"label":"DEL", "x":15, "y":1.25}, + {"label":"NLCK", "x":16.25, "y":1.25}, + {"label":"PSLS", "x":17.25, "y":1.25}, + {"label":"PAST", "x":18.25, "y":1.25}, + {"label":"PMNS", "x":19.25, "y":1.25}, + {"label":"TAB", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"LBRC", "x":11.5, "y":2.25}, + {"label":"RBRC", "x":12.5, "y":2.25}, + {"label":"INS", "x":15, "y":2.25}, + {"label":"P7", "x":16.25, "y":2.25}, + {"label":"P8", "x":17.25, "y":2.25}, + {"label":"P9", "x":18.25, "y":2.25}, + {"label":"CAPS", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":"SCLN", "x":10.75, "y":3.25}, + {"label":"QUOT", "x":11.75, "y":3.25}, + {"label":"NUHS", "x":12.75, "y":3.25}, + {"label":"ENT", "x":13.75, "y":2.25, "w":1.25, "h":2}, + {"label":"PGUP", "x":15, "y":3.25}, + {"label":"P4", "x":16.25, "y":3.25}, + {"label":"P5", "x":17.25, "y":3.25}, + {"label":"P6", "x":18.25, "y":3.25}, + {"label":"PPLS", "x":19.25, "y":2.25, "h":2}, + {"label":"LSFT", "x":0, "y":4.25, "w":1.25}, + {"label":"NUBS", "x":1.25, "y":4.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"COMM", "x":9.25, "y":4.25}, + {"label":"DOT", "x":10.25, "y":4.25}, + {"label":"SLSH", "x":11.25, "y":4.25}, + {"label":"RSFT", "x":12.25, "y":4.25, "w":1.75}, + {"label":"UP", "x":14, "y":4.25}, + {"label":"PGDN", "x":15, "y":4.25}, + {"label":"P1", "x":16.25, "y":4.25}, + {"label":"P2", "x":17.25, "y":4.25}, + {"label":"P3", "x":18.25, "y":4.25}, + {"label":"LCTL", "x":0, "y":5.25, "w":1.25}, + {"label":"LGUI", "x":1.25, "y":5.25, "w":1.25}, + {"label":"LALT", "x":2.5, "y":5.25, "w":1.25}, + {"label":"SPC", "x":3.75, "y":5.25, "w":6.25}, + {"label":"RALT", "x":10, "y":5.25}, + {"label":"APP", "x":11, "y":5.25}, + {"label":"RCTL", "x":12, "y":5.25}, + {"label":"LEFT", "x":13, "y":5.25}, + {"label":"DOWN", "x":14, "y":5.25}, + {"label":"RGHT", "x":15, "y":5.25}, + {"label":"P0", "x":16.25, "y":5.25, "w":2}, + {"label":"PDOT", "x":18.25, "y":5.25}, + {"label":"PENT", "x":19.25, "y":4.25, "h":2} + ] + } + } +} diff --git a/keyboards/bminiex/keymaps/ansi/keymap.c b/keyboards/bminiex/keymaps/ansi/keymap.c new file mode 100644 index 0000000000..12c0714b13 --- /dev/null +++ b/keyboards/bminiex/keymaps/ansi/keymap.c @@ -0,0 +1,29 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_HOME, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, KC_P7, KC_P8, KC_P9, \ + KC_LCAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PPLS, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT \ + ) +}; diff --git a/keyboards/bminiex/keymaps/ansi/readme.md b/keyboards/bminiex/keymaps/ansi/readme.md new file mode 100644 index 0000000000..853fa05c59 --- /dev/null +++ b/keyboards/bminiex/keymaps/ansi/readme.md @@ -0,0 +1,17 @@ +# ansi + +An ANSI-layout keymap based on the default. + + ,-------------------------------------------------------------------------------. + |Esc|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|PSc|Hm |End|NO |NO |NO |NO | + |-------------------------------------------------------------------------------| + |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Bksp |Del|NLck|P/|P* |P- | + |-------------------------------------------------------------------------------| + |Tab |Q |W |E |R |T |Y |U |I |O |P |[ |] |\ |Ins|P7 |P8 |P9 | | + |---------------------------------------------------------------------------|P+ | + |CapsLk|A |S |D |F |G |H |J |K |L |; |' |Enter |PgU|P4 |P5 |P6 | | + |-------------------------------------------------------------------------------| + |Shift |Z |X |C |V |B |N |M |, |. |/ |Shift |Up |PgD|P1 |P2 |P3 | | + |---------------------------------------------------------------------------|Ent| + |Ctrl|GUI |Alt |Space |Alt|App|Ctl|Lft|Dwn|Rgt|P0 |P. | | + `-------------------------------------------------------------------------------' diff --git a/keyboards/bminiex/keymaps/iso/keymap.c b/keyboards/bminiex/keymaps/iso/keymap.c new file mode 100644 index 0000000000..aa4ddf063a --- /dev/null +++ b/keyboards/bminiex/keymaps/iso/keymap.c @@ -0,0 +1,29 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_iso( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_HOME, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_INS, KC_P7, KC_P8, KC_P9, \ + KC_LCAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PPLS, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT \ + ) +}; diff --git a/keyboards/bminiex/keymaps/iso/readme.md b/keyboards/bminiex/keymaps/iso/readme.md new file mode 100644 index 0000000000..74c42a6184 --- /dev/null +++ b/keyboards/bminiex/keymaps/iso/readme.md @@ -0,0 +1,17 @@ +# iso + +An ISO-layout keymap based on the default. + + ,-------------------------------------------------------------------------------. + |Esc|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|PSc|Hm |End|NO |NO |NO |NO | + |-------------------------------------------------------------------------------| + |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Bksp |Del|NLck|P/|P* |P- | + |-------------------------------------------------------------------------------| + |Tab |Q |W |E |R |T |Y |U |I |O |P |[ |] | |Ins|P7 |P8 |P9 | | + |------------------------------------------------------.Ent |---------------|P+ | + |CapsLk|A |S |D |F |G |H |J |K |L |; |' |# | |PgU|P4 |P5 |P6 | | + |-------------------------------------------------------------------------------| + |Sft |\ |Z |X |C |V |B |N |M |, |. |/ |Shift |Up |PgD|P1 |P2 |P3 | | + |---------------------------------------------------------------------------|Ent| + |Ctrl|GUI |Alt |Space |Alt|App|Ctl|Lft|Dwn|Rgt|P0 |P. | | + `-------------------------------------------------------------------------------' From 118d5cc03f587dcf97740606f8b4552749f849bc Mon Sep 17 00:00:00 2001 From: patrickmt <40182064+patrickmt@users.noreply.github.com> Date: Fri, 14 Dec 2018 13:37:37 -0500 Subject: [PATCH 20/38] Fix macro redefinition for GNUC compilers > 6 GNUC compilers greater than version 6 already have the macro __always_inline defined. This fix checks GNUC version before defining the macro itself. --- tmk_core/protocol/arm_atsam/usb/compiler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmk_core/protocol/arm_atsam/usb/compiler.h b/tmk_core/protocol/arm_atsam/usb/compiler.h index d338439867..7d8350896b 100644 --- a/tmk_core/protocol/arm_atsam/usb/compiler.h +++ b/tmk_core/protocol/arm_atsam/usb/compiler.h @@ -136,7 +136,7 @@ */ #if defined(__CC_ARM) # define __always_inline __forceinline -#elif (defined __GNUC__) +#elif (defined __GNUC__ && __GNUC__ <= 6) # define __always_inline __attribute__((__always_inline__)) #elif (defined __ICCARM__) # define __always_inline _Pragma("inline=forced") From 306f23dc5119d864eb29cfef99ededb81075368e Mon Sep 17 00:00:00 2001 From: zvecr Date: Fri, 14 Dec 2018 20:49:33 +0000 Subject: [PATCH 21/38] Document the correct path to the split keyboard EEPROM files (#4585) * Document the correct path to the split keyboard EEPROM files * Document the correct path to the split keyboard EEPROM files --- keyboards/handwired/dactyl_manuform/readme.md | 4 ++-- keyboards/handwired/not_so_minidox/readme.md | 4 ++-- keyboards/handwired/xealous/readme.md | 4 ++-- keyboards/lets_split/readme.md | 4 ++-- keyboards/minidox/readme.md | 4 ++-- keyboards/orthodox/readme.md | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/keyboards/handwired/dactyl_manuform/readme.md b/keyboards/handwired/dactyl_manuform/readme.md index 00288a8768..0d08c67a08 100644 --- a/keyboards/handwired/dactyl_manuform/readme.md +++ b/keyboards/handwired/dactyl_manuform/readme.md @@ -131,13 +131,13 @@ file will run on both hands instead of having to flash left and right handed versions of the firmware to each half. To flash the EEPROM file for the left half run: ``` -avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-lefthand.eep +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-lefthand.eep" // or the equivalent in dfu-programmer ``` and similarly for right half ``` -avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-righhand.eep +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-righthand.eep" // or the equivalent in dfu-programmer ``` diff --git a/keyboards/handwired/not_so_minidox/readme.md b/keyboards/handwired/not_so_minidox/readme.md index 22d3558735..bd40607357 100644 --- a/keyboards/handwired/not_so_minidox/readme.md +++ b/keyboards/handwired/not_so_minidox/readme.md @@ -50,13 +50,13 @@ file will run on both hands instead of having to flash left and right handed versions of the firmware to each half. To flash the EEPROM file for the left half run: ``` -avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-lefthand.eep +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-lefthand.eep" // or the equivalent in dfu-programmer ``` and similarly for right half ``` -avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-righhand.eep +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-righthand.eep" // or the equivalent in dfu-programmer ``` diff --git a/keyboards/handwired/xealous/readme.md b/keyboards/handwired/xealous/readme.md index 97bebbfe3a..14947cc90c 100644 --- a/keyboards/handwired/xealous/readme.md +++ b/keyboards/handwired/xealous/readme.md @@ -130,13 +130,13 @@ file will run on both hands instead of having to flash left and right handed versions of the firmware to each half. To flash the EEPROM file for the left half run: ``` -avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-lefthand.eep +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-lefthand.eep" // or the equivalent in dfu-programmer ``` and similarly for right half ``` -avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-righhand.eep +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-righthand.eep" // or the equivalent in dfu-programmer ``` diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md index 80fe08b93c..2a2b95c097 100644 --- a/keyboards/lets_split/readme.md +++ b/keyboards/lets_split/readme.md @@ -151,13 +151,13 @@ file will run on both hands instead of having to flash left and right handed versions of the firmware to each half. To flash the EEPROM file for the left half run: ``` -avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-lefthand.eep +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-lefthand.eep" // or the equivalent in dfu-programmer ``` and similarly for right half ``` -avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-righhand.eep +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-righthand.eep" // or the equivalent in dfu-programmer ``` diff --git a/keyboards/minidox/readme.md b/keyboards/minidox/readme.md index 859504a43d..9ec306421d 100644 --- a/keyboards/minidox/readme.md +++ b/keyboards/minidox/readme.md @@ -54,13 +54,13 @@ file will run on both hands instead of having to flash left and right handed versions of the firmware to each half. To flash the EEPROM file for the left half run: ``` -avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-lefthand.eep +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-lefthand.eep" // or the equivalent in dfu-programmer ``` and similarly for right half ``` -avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-righhand.eep +avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-righthand.eep" // or the equivalent in dfu-programmer ``` diff --git a/keyboards/orthodox/readme.md b/keyboards/orthodox/readme.md index 0c47dd9c43..8bf60a9bdd 100644 --- a/keyboards/orthodox/readme.md +++ b/keyboards/orthodox/readme.md @@ -125,7 +125,7 @@ EEPROM for the left and right halves. The EEPROM is used to store whether the half is left handed or right handed. This makes it so that the same firmware -file will run on both hands instead of having to flash [left](../lets_split/eeprom-lefthand.eep) and [right](../lets_split/eeprom-righthand.eep) handed +file will run on both hands instead of having to flash [left](../../quantum/split_common/eeprom-lefthand.eep) and [right](../../quantum/split_common/eeprom-righthand.eep) handed versions of the firmware to each half. To flash the EEPROM file for the left half run: ``` From 4446f86bfd273512d473d33c46d99690db5fbc51 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 14 Dec 2018 13:01:04 -0800 Subject: [PATCH 22/38] Keyboard: Bpiphany Frosty Flake Refactor, Configurator support and readme cleanup (#4648) * Frosty Flake: layout macro refactor - frosty_flake.h updated to use #pragma once - KEYMAP renamed to LAYOUT - KEYMAP_TKL renamed to LAYOUT_tkl * Frosty Flake: keymap refactor - config.h files updated to #pragma once - deleted deprecated build script rules from rules.mk - keymap.c files: - #include QMK_KEYBOARD_H - updated layout macro name - white space changes for readability * Frosty Flake: Configurator support * Frosty Flake: readme cleanup - Fixed Hardware Availability link (old link was 404) - tiny grammar fix (colon missing on compile-and-flash instructions) --- .../bpiphany/frosty_flake/frosty_flake.h | 10 +- keyboards/bpiphany/frosty_flake/info.json | 301 ++++++++++++++++++ .../frosty_flake/keymaps/QFR_JM/config.h | 11 +- .../frosty_flake/keymaps/QFR_JM/keymap.c | 31 +- .../frosty_flake/keymaps/default/config.h | 7 +- .../frosty_flake/keymaps/default/keymap.c | 19 +- .../frosty_flake/keymaps/default/rules.mk | 8 +- .../frosty_flake/keymaps/nikchi/config.h | 11 +- .../frosty_flake/keymaps/nikchi/keymap.c | 63 ++-- .../frosty_flake/keymaps/nikchi/rules.mk | 8 +- .../frosty_flake/keymaps/tkl/config.h | 7 +- .../frosty_flake/keymaps/tkl/keymap.c | 4 +- keyboards/bpiphany/frosty_flake/readme.md | 4 +- 13 files changed, 371 insertions(+), 113 deletions(-) create mode 100644 keyboards/bpiphany/frosty_flake/info.json diff --git a/keyboards/bpiphany/frosty_flake/frosty_flake.h b/keyboards/bpiphany/frosty_flake/frosty_flake.h index 953172a8b0..8242873963 100644 --- a/keyboards/bpiphany/frosty_flake/frosty_flake.h +++ b/keyboards/bpiphany/frosty_flake/frosty_flake.h @@ -1,5 +1,4 @@ -#ifndef FROSTY_FLAKE_H -#define FROSTY_FLAKE_H +#pragma once #include "quantum.h" @@ -26,7 +25,7 @@ | A4 | P2 | C6 | K6 | C0 | M3 | D0 | A1 | | O0 | K0 | L0 | | L6 | Q6 | | `-------------------------------------------------------------------------' `--------------' `-------------------' */ -#define KEYMAP( \ +#define LAYOUT( \ KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \ KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, KK1, KL1, KQ1, KQ0, \ KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, KK5, KL5, KQ5, KO5, \ @@ -66,7 +65,7 @@ `-------------------------------------------------------------------------' `--------------' */ -#define KEYMAP_TKL( \ +#define LAYOUT_tkl( \ KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \ KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \ KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \ @@ -94,7 +93,7 @@ KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \ KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \ KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \ -) KEYMAP_TKL( \ +) LAYOUT_tkl( \ KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \ KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \ KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \ @@ -103,4 +102,3 @@ KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \ ) -#endif diff --git a/keyboards/bpiphany/frosty_flake/info.json b/keyboards/bpiphany/frosty_flake/info.json new file mode 100644 index 0000000000..15fb23d737 --- /dev/null +++ b/keyboards/bpiphany/frosty_flake/info.json @@ -0,0 +1,301 @@ +{ + "keyboard_name": "Frosty Flake", + "url": "", + "maintainer": "qmk", + "width": 22.5, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + {"label":"`", "x":0, "y":1.5}, + {"label":"1", "x":1, "y":1.5}, + {"label":"2", "x":2, "y":1.5}, + {"label":"3", "x":3, "y":1.5}, + {"label":"4", "x":4, "y":1.5}, + {"label":"5", "x":5, "y":1.5}, + {"label":"6", "x":6, "y":1.5}, + {"label":"7", "x":7, "y":1.5}, + {"label":"8", "x":8, "y":1.5}, + {"label":"9", "x":9, "y":1.5}, + {"label":"0", "x":10, "y":1.5}, + {"label":"-", "x":11, "y":1.5}, + {"label":"=", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"Page Up", "x":17.25, "y":1.5}, + {"label":"Num Lock", "x":18.5, "y":1.5}, + {"label":"/", "x":19.5, "y":1.5}, + {"label":"*", "x":20.5, "y":1.5}, + {"label":"-", "x":21.5, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[", "x":11.5, "y":2.5}, + {"label":"]", "x":12.5, "y":2.5}, + {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"Page Down", "x":17.25, "y":2.5}, + {"label":"7", "x":18.5, "y":2.5}, + {"label":"8", "x":19.5, "y":2.5}, + {"label":"9", "x":20.5, "y":2.5}, + {"label":"+", "x":21.5, "y":2.5, "h":2}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";", "x":10.75, "y":3.5}, + {"label":"'", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"4", "x":18.5, "y":3.5}, + {"label":"5", "x":19.5, "y":3.5}, + {"label":"6", "x":20.5, "y":3.5}, + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"ISO \\", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",", "x":9.25, "y":4.5}, + {"label":".", "x":10.25, "y":4.5}, + {"label":"/", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"Up", "x":16.25, "y":4.5}, + {"label":"1", "x":18.5, "y":4.5}, + {"label":"2", "x":19.5, "y":4.5}, + {"label":"3", "x":20.5, "y":4.5}, + {"label":"Enter", "x":21.5, "y":4.5, "h":2}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5, "w":1.25}, + {"label":"GUI", "x":11.25, "y":5.5, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"Left", "x":15.25, "y":5.5}, + {"label":"Down", "x":16.25, "y":5.5}, + {"label":"Right", "x":17.25, "y":5.5}, + {"label":"0", "x":18.5, "y":5.5, "w":2}, + {"label":".", "x":20.5, "y":5.5} + ] + }, + "LAYOUT_tkl": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + {"label":"`", "x":0, "y":1.5}, + {"label":"1", "x":1, "y":1.5}, + {"label":"2", "x":2, "y":1.5}, + {"label":"3", "x":3, "y":1.5}, + {"label":"4", "x":4, "y":1.5}, + {"label":"5", "x":5, "y":1.5}, + {"label":"6", "x":6, "y":1.5}, + {"label":"7", "x":7, "y":1.5}, + {"label":"8", "x":8, "y":1.5}, + {"label":"9", "x":9, "y":1.5}, + {"label":"0", "x":10, "y":1.5}, + {"label":"-", "x":11, "y":1.5}, + {"label":"=", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"Page Up", "x":17.25, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[", "x":11.5, "y":2.5}, + {"label":"]", "x":12.5, "y":2.5}, + {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"Page Down", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";", "x":10.75, "y":3.5}, + {"label":"'", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"ISO \\", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",", "x":9.25, "y":4.5}, + {"label":".", "x":10.25, "y":4.5}, + {"label":"/", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"Up", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5, "w":1.25}, + {"label":"GUI", "x":11.25, "y":5.5, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"Left", "x":15.25, "y":5.5}, + {"label":"Down", "x":16.25, "y":5.5}, + {"label":"Right", "x":17.25, "y":5.5} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + {"label":"`", "x":0, "y":1.5}, + {"label":"1", "x":1, "y":1.5}, + {"label":"2", "x":2, "y":1.5}, + {"label":"3", "x":3, "y":1.5}, + {"label":"4", "x":4, "y":1.5}, + {"label":"5", "x":5, "y":1.5}, + {"label":"6", "x":6, "y":1.5}, + {"label":"7", "x":7, "y":1.5}, + {"label":"8", "x":8, "y":1.5}, + {"label":"9", "x":9, "y":1.5}, + {"label":"0", "x":10, "y":1.5}, + {"label":"-", "x":11, "y":1.5}, + {"label":"=", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"Page Up", "x":17.25, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[", "x":11.5, "y":2.5}, + {"label":"]", "x":12.5, "y":2.5}, + {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"Page Down", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";", "x":10.75, "y":3.5}, + {"label":"'", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",", "x":9.25, "y":4.5}, + {"label":".", "x":10.25, "y":4.5}, + {"label":"/", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"Up", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5, "w":1.25}, + {"label":"GUI", "x":11.25, "y":5.5, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"Left", "x":15.25, "y":5.5}, + {"label":"Down", "x":16.25, "y":5.5}, + {"label":"Right", "x":17.25, "y":5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/config.h b/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/config.h index b25194014b..017ead4255 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/config.h +++ b/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/config.h @@ -1,11 +1,4 @@ - -#define TAPPING_TERM 150 //reduce time required to register a held key - -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" +#pragma once // place overrides here - -#endif +#define TAPPING_TERM 150 //reduce time required to register a held key diff --git a/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/keymap.c b/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/keymap.c index 81899396af..684987e362 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/keymap.c +++ b/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/keymap.c @@ -1,9 +1,4 @@ -#include "frosty_flake.h" -#include "action_layer.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif -#include "eeconfig.h" +#include QMK_KEYBOARD_H enum QFR_layers { _COLEMAK, @@ -27,7 +22,7 @@ enum custom_macros { }; const uint16_t PROGMEM fn_actions[] = { //ACTION_LAYER_TAP_TOGGLE requires that number of taps be defined in *config.h* - default set to 5 - [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Space, + [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Space, [1] = ACTION_LAYER_MOMENTARY(_MOUSE) //Hold for momentary MOUSE }; @@ -37,12 +32,8 @@ enum custom_macros { #define PIPE M(R_PIPE) #define POINT M(R_POINT) -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_COLEMAK] = KEYMAP_TKL(\ +[_COLEMAK] = LAYOUT_tkl(\ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME,KC_PGUP, \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC,KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ @@ -51,25 +42,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL,KC_LGUI, KC_LALT, SPC_LW, MSE, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT ), -[_QWERTY] = KEYMAP_TKL(\ +[_QWERTY] = LAYOUT_tkl(\ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ - KC_LCTL,KC_LGUI,KC_LALT, SPC_LW, MSE, KC_RGUI , KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL,KC_LGUI,KC_LALT, SPC_LW, MSE, KC_RGUI , KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), -[_DVORAK] = KEYMAP_TKL(\ +[_DVORAK] = LAYOUT_tkl(\ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ KC_TAB, KC_QUOT,KC_COMM,KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ KC_BSPC,KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_QUOT, KC_ENT, \ KC_LSFT,KC_NUBS,KC_SCLN,KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, \ - KC_LCTL,KC_LGUI,KC_LALT, SPC_LW, MSE, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL,KC_LGUI,KC_LALT, SPC_LW, MSE, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), -[_LOWER] = KEYMAP_TKL(\ +[_LOWER] = LAYOUT_tkl(\ RESET, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, _______, KC_MUTE, KC_VOLD, KC_VOLU, QWERTY, COLEMAK,DVORAK, \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_UNDS, KC_PLUS, KC_BSPC, _______,_______,_______, \ KC_TAB, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_PIPE, _______,_______,_______, \ @@ -78,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, KC_RALT, _______, _______, _______, _______,_______,_______ \ ), -[_MOUSE] = KEYMAP_TKL(\ +[_MOUSE] = LAYOUT_tkl(\ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,_______, \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, _______,_______,_______, \ KC_TAB, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN4, KC_BTN5, XXXXXXX, KC_LBRC, KC_RBRC, KC_BSLS, _______,_______,_______, \ @@ -106,7 +97,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } return MACRO_NONE; } - + bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: @@ -126,7 +117,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { set_single_persistent_default_layer(_DVORAK); } return false; - break; + break; } return true; } \ No newline at end of file diff --git a/keyboards/bpiphany/frosty_flake/keymaps/default/config.h b/keyboards/bpiphany/frosty_flake/keymaps/default/config.h index 8893d122e0..271f48d001 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/default/config.h +++ b/keyboards/bpiphany/frosty_flake/keymaps/default/config.h @@ -1,8 +1,3 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" +#pragma once // place overrides here - -#endif diff --git a/keyboards/bpiphany/frosty_flake/keymaps/default/keymap.c b/keyboards/bpiphany/frosty_flake/keymaps/default/keymap.c index 4dc7ed655f..9d40d4c9cc 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/default/keymap.c +++ b/keyboards/bpiphany/frosty_flake/keymaps/default/keymap.c @@ -1,11 +1,12 @@ -#include "frosty_flake.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP(\ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \ - KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT) -}; \ No newline at end of file + [0] = LAYOUT(\ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ + ) +}; diff --git a/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk b/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk index 93f927c7d0..5dcea84672 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk +++ b/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk @@ -1,5 +1,5 @@ # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) @@ -13,9 +13,5 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/config.h b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/config.h index 3f78526437..4bc6d2c3c0 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/config.h +++ b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/config.h @@ -1,8 +1,6 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" +#pragma once +// place overrides here #define TAPPING_TERM 200 #define LEADER_TIMEOUT 800 @@ -17,7 +15,4 @@ #define MOUSEKEY_DELAY 0 #define MOUSEKEY_TIME_TO_MAX 60 #define MOUSEKEY_MAX_SPEED 7 -#define MOUSEKEY_WHEEL_DELAY 0 -// place overrides here - -#endif +#define MOUSEKEY_WHEEL_DELAY 0 diff --git a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/keymap.c b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/keymap.c index bf7c5e5883..dd2098d945 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/keymap.c +++ b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/keymap.c @@ -1,11 +1,5 @@ -#include "frosty_flake.h" -#include "action_layer.h" -#include "eeconfig.h" -#include "process_unicode.h" -#include "process_unicodemap.h" -#include "quantum.h" +#include QMK_KEYBOARD_H -#define _______ KC_TRNS #define MAXEMOJITAPS 80 @@ -33,16 +27,16 @@ enum taps{ ALLS }; -enum unicode_name { +enum unicode_name { EMOTIS = 1,//80, //1F60x - 1F64x ANIMALS, //64, //1F40x - 1F43x SYMBOLS,// = 45, //1F300 - 1F32C - FOODS,// = 87 , //1F32D - + FOODS,// = 87 , //1F32D - ETC,// = 192, //1F44x -1F4Fx VEHICLES,// = 83, //1F68x - 1F6Dx SUPPLEMENT,// = 32, //1F91x-1F92x ALCHEMY,// = 116 //1F70x - 1F773 - + }; enum my_macros { @@ -102,7 +96,7 @@ const uint32_t PROGMEM unicode_map[] = { [EMOTIS] = 0x1F600, [ANIMALS] = 0x1F400, [SYMBOLS] = 0x1F300, - [FOODS] = 0x1F32D, + [FOODS] = 0x1F32D, [ETC] = 0x1F440, [VEHICLES] = 0x1F680, [SUPPLEMENT] = 0x1F910, @@ -110,27 +104,30 @@ const uint32_t PROGMEM unicode_map[] = { }; // Layouts const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP(\ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \ - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSPO,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSPC, KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \ - TD(TD_CTCPS),KC_LGUI,KC_LALT, KC_SPC, KC_LEAD,KC_RGUI, KC_APP,MO(1) , KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT), -[1] = KEYMAP(\ - TD(ALLS), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ - KC_GRV, TD(EMOJIS),TD(ANIMAL),TD(ETC),TD(FOODS), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_MPRV,KC_MPLY,KC_MNXT, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ - KC_TAB, KC_Q, M(0), KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_UP ,KC_RBRC,KC_BSLS, KC_MUTE,KC_VOLD,KC_VOLU, KC_P7, KC_P8, KC_P9,KC_PPLS, \ - KC_LCTL, M(1), M(3), M(2), KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_LEFT,KC_RGHT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_DOWN, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3,KC_PENT, \ - KC_BTN1,KC_BTN3,KC_BTN2, KC_SPC, KC_RALT,KC_RGUI, TG(2),_______ , KC_MS_L,KC_MS_D,KC_MS_R, KC_P0,KC_PDOT), -[2] = KEYMAP(\ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_MPRV,KC_MPLY,KC_MNXT, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_MUTE,KC_VOLD,KC_VOLU, KC_P7, KC_P8, KC_P9,KC_PPLS, \ - KC_LCTL, KC_D, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3,KC_PENT, \ - KC_BTN1,KC_BTN3,KC_BTN2, KC_SPC, KC_RALT,KC_RGUI, TG(2) , KC_NO , KC_MS_L,KC_MS_D,KC_MS_R, KC_P0,KC_PDOT), + [0] = LAYOUT(\ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ + KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + TD(TD_CTCPS), KC_LGUI, KC_LALT, KC_SPC, KC_LEAD, KC_RGUI, KC_APP, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ + ), + [1] = LAYOUT(\ + TD(ALLS), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ + KC_GRV, TD(EMOJIS), TD(ANIMAL), TD(ETC), TD(FOODS), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MPRV, KC_MPLY, KC_MNXT, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_TAB, KC_Q, M(0), KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_UP, KC_RBRC, KC_BSLS, KC_MUTE, KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS, \ + KC_LCTL, M(1), M(3), M(2), KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_LEFT, KC_RGHT, KC_ENT, KC_P4, KC_P5, KC_P6, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_DOWN, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_BTN1, KC_BTN3, KC_BTN2, KC_SPC, KC_RALT, KC_RGUI, TG(2), _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_P0, KC_PDOT \ + ), + [2] = LAYOUT(\ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MPRV, KC_MPLY, KC_MNXT, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_MUTE, KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS, \ + KC_LCTL, KC_D, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_MS_U, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_BTN1, KC_BTN3, KC_BTN2, KC_SPC, KC_RALT, KC_RGUI, TG(2), KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_P0, KC_PDOT \ + ), }; LEADER_EXTERNS(); @@ -183,7 +180,7 @@ void cycleEmojis(qk_tap_dance_state_t *state, void *user_data) { } }; -void cycleAnimals(qk_tap_dance_state_t *state, void *user_data) { +void cycleAnimals(qk_tap_dance_state_t *state, void *user_data) { if(state->count == 1) { unicode_input_start(); register_hex32(pgm_read_dword(&unicode_map[ANIMALS])); diff --git a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/rules.mk b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/rules.mk index fc5761c053..de0f30e48e 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/rules.mk +++ b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/rules.mk @@ -12,13 +12,9 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode -UNICODEMAP_ENABLE = yes # unicodemap +UNICODEMAP_ENABLE = yes # unicodemap BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend TAP_DANCE_ENABLE = yes LEADER_ENABLE = yes - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/bpiphany/frosty_flake/keymaps/tkl/config.h b/keyboards/bpiphany/frosty_flake/keymaps/tkl/config.h index 8893d122e0..271f48d001 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/tkl/config.h +++ b/keyboards/bpiphany/frosty_flake/keymaps/tkl/config.h @@ -1,8 +1,3 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" +#pragma once // place overrides here - -#endif diff --git a/keyboards/bpiphany/frosty_flake/keymaps/tkl/keymap.c b/keyboards/bpiphany/frosty_flake/keymaps/tkl/keymap.c index 99dc95627e..8e87239719 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/tkl/keymap.c +++ b/keyboards/bpiphany/frosty_flake/keymaps/tkl/keymap.c @@ -1,7 +1,7 @@ -#include "frosty_flake.h" +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP_TKL(\ +[0] = LAYOUT_tkl(\ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ diff --git a/keyboards/bpiphany/frosty_flake/readme.md b/keyboards/bpiphany/frosty_flake/readme.md index 0d6a4779f6..5917022a88 100644 --- a/keyboards/bpiphany/frosty_flake/readme.md +++ b/keyboards/bpiphany/frosty_flake/readme.md @@ -18,7 +18,7 @@ keymaps `default` (104) and `tkl` (87) for example layouts. Keyboard Maintainer: QMK Community Hardware Supported: Frosty Flake -Hardware Availability: https://1upkeyboards.com/qfr-frosty-flake-controller.html +Hardware Availability: [1upkeyboards](https://www.1upkeyboards.com/shop/controllers/qfr-frosty-flake-controller/) Make example for this keyboard (after setting up your build environment): @@ -28,7 +28,7 @@ Make example for this keyboard (after setting up your build environment): make bpiphany/frosty_flake:default ``` -To directly flash the frosty_flake after compiling use +To directly flash the frosty_flake after compiling use: ``` make bpiphany/frosty_flake:default:dfu From cb149650efd07cbdc3cacb1fe2eb58f17eee5965 Mon Sep 17 00:00:00 2001 From: zvecr Date: Fri, 14 Dec 2018 21:29:30 +0000 Subject: [PATCH 23/38] Keyboard: Lets split eh default keymap - Fixes for superseded default layer functionality (#4581) * Fixes for superseded default layer functionality * Fixes for superseded default layer functionality --- .../lets_split_eh/keymaps/default/config.h | 7 +- .../lets_split_eh/keymaps/default/keymap.c | 68 +++---------------- .../lets_split_eh/keymaps/default/rules.mk | 3 - 3 files changed, 12 insertions(+), 66 deletions(-) diff --git a/keyboards/lets_split_eh/keymaps/default/config.h b/keyboards/lets_split_eh/keymaps/default/config.h index a1df337bd9..c535299e74 100644 --- a/keyboards/lets_split_eh/keymaps/default/config.h +++ b/keyboards/lets_split_eh/keymaps/default/config.h @@ -18,9 +18,6 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +#pragma once -#include "../../config.h" - -#endif \ No newline at end of file + // place overrides here diff --git a/keyboards/lets_split_eh/keymaps/default/keymap.c b/keyboards/lets_split_eh/keymaps/default/keymap.c index 8ef9735749..1983459f68 100644 --- a/keyboards/lets_split_eh/keymaps/default/keymap.c +++ b/keyboards/lets_split_eh/keymaps/default/keymap.c @@ -1,30 +1,19 @@ #include QMK_KEYBOARD_H -#include "action_layer.h" -#include "eeconfig.h" - -extern keymap_config_t keymap_config; // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. #define _QWERTY 0 - #define _LOWER 3 #define _RAISE 4 #define _FUNCTION 15 #define _ADJUST 16 -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - ADJUST -}; - -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define FUNCTION MO(_FUNCTION) +#define ADJUST MO(_ADJUST) // Defines for task manager and such #define CALTDEL LCTL(LALT(KC_DEL)) @@ -45,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = LAYOUT( \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ - MO(_FUNCTION), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ + FUNCTION, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \ KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), @@ -90,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * |Taskmg| | | | | | | |RGBVAI|RGBSAI|RGBHUI|caltde| * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | |Qwerty|RGBVAD|RGBSAD|RGBHUD|RGBTOG| + * | | | | | | | | |RGBVAD|RGBSAD|RGBHUD|RGBTOG| * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | | | | | |BLSTEP| * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -99,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT( \ TSKMGR, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAI, RGB_HUI, CALTDEL, \ - _______, _______, _______, _______, _______, _______, _______, QWERTY, RGB_VAD, RGB_SAD, RGB_HUD, RGB_TOG, \ + _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_SAD, RGB_HUD, RGB_TOG, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET \ ), @@ -124,47 +113,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); +uint32_t layer_state_set_user(uint32_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_QWERTY); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - break; - } return true; -} \ No newline at end of file +} diff --git a/keyboards/lets_split_eh/keymaps/default/rules.mk b/keyboards/lets_split_eh/keymaps/default/rules.mk index 457a3d01d4..e69de29bb2 100644 --- a/keyboards/lets_split_eh/keymaps/default/rules.mk +++ b/keyboards/lets_split_eh/keymaps/default/rules.mk @@ -1,3 +0,0 @@ -ifndef QUANTUM_DIR - include ../../../../Makefile -endif From bb5262de0790ed3f4f91de20fad6e13fc0ffddc5 Mon Sep 17 00:00:00 2001 From: zvecr Date: Fri, 14 Dec 2018 22:25:32 +0000 Subject: [PATCH 24/38] Keyboard: Refactor fourier to use split common code (#4582) * Refactor fourier to use split common code * Refactor fourier to use split common code - fix handedness when not using EE_HANDS or MASTER_LEFT * add SOFT_SERIAL_PIN config --- keyboards/fourier/config.h | 9 +- keyboards/fourier/fourier.h | 8 +- keyboards/fourier/i2c.c | 162 ------- keyboards/fourier/i2c.h | 49 --- keyboards/fourier/keymaps/default/config.h | 8 +- keyboards/fourier/keymaps/default/keymap.c | 4 - keyboards/fourier/keymaps/default/rules.mk | 3 - keyboards/fourier/matrix.c | 467 --------------------- keyboards/fourier/rev1/config.h | 14 +- keyboards/fourier/rev1/rev1.c | 2 - keyboards/fourier/rev1/rev1.h | 17 +- keyboards/fourier/rules.mk | 14 +- keyboards/fourier/serial.c | 228 ---------- keyboards/fourier/serial.h | 26 -- keyboards/fourier/split_util.c | 80 ---- keyboards/fourier/split_util.h | 20 - 16 files changed, 17 insertions(+), 1094 deletions(-) delete mode 100644 keyboards/fourier/i2c.c delete mode 100644 keyboards/fourier/i2c.h delete mode 100644 keyboards/fourier/matrix.c delete mode 100644 keyboards/fourier/serial.c delete mode 100644 keyboards/fourier/serial.h delete mode 100644 keyboards/fourier/split_util.c delete mode 100644 keyboards/fourier/split_util.h diff --git a/keyboards/fourier/config.h b/keyboards/fourier/config.h index 8f0524f972..cfb6bf4ffc 100644 --- a/keyboards/fourier/config.h +++ b/keyboards/fourier/config.h @@ -16,13 +16,6 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" - -#ifdef SUBPROJECT_rev1 - #include "rev1/config.h" -#endif - -#endif diff --git a/keyboards/fourier/fourier.h b/keyboards/fourier/fourier.h index 4e9797b35b..1b4585c821 100644 --- a/keyboards/fourier/fourier.h +++ b/keyboards/fourier/fourier.h @@ -1,12 +1,11 @@ -#ifndef FOURIER_H -#define FOURIER_H - -#include "quantum.h" +#pragma once #ifdef KEYBOARD_fourier_rev1 #include "rev1.h" #endif +#include "quantum.h" + // Used to create a keymap using only KC_ prefixed keys #define LAYOUT_kc( \ LA1, LA2, LA3, LA4, LA5, LA6, RA1, RA2, RA3, RA4, RA5, RA6, RA7, \ @@ -20,4 +19,3 @@ KC_##LC1, KC_##LC2, KC_##LC3, KC_##LC4, KC_##LC5, KC_##LC6, KC_##RC1, KC_##RC3, KC_##RC4, KC_##RC5, KC_##RC6, KC_##RC7, \ KC_##LD1, KC_##LD2, KC_##LD3, KC_##LD4, KC_##LD5, KC_##RD1, KC_##RD4, KC_##RD5, KC_##RD6, KC_##RD7 \ ) -#endif diff --git a/keyboards/fourier/i2c.c b/keyboards/fourier/i2c.c deleted file mode 100644 index 084c890c40..0000000000 --- a/keyboards/fourier/i2c.c +++ /dev/null @@ -1,162 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "i2c.h" - -#ifdef USE_I2C - -// Limits the amount of we wait for any one i2c transaction. -// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is -// 9 bits, a single transaction will take around 90μs to complete. -// -// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit -// poll loop takes at least 8 clock cycles to execute -#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 - -#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) - -volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; - -static volatile uint8_t slave_buffer_pos; -static volatile bool slave_has_register_set = false; - -// Wait for an i2c operation to finish -inline static -void i2c_delay(void) { - uint16_t lim = 0; - while(!(TWCR & (1<10. - // Check datasheets for more info. - TWBR = ((F_CPU/SCL_CLOCK)-16)/2; -} - -// Start a transaction with the given i2c slave address. The direction of the -// transfer is set with I2C_READ and I2C_WRITE. -// returns: 0 => success -// 1 => error -uint8_t i2c_master_start(uint8_t address) { - TWCR = (1< slave ACK -// 1 => slave NACK -uint8_t i2c_master_write(uint8_t data) { - TWDR = data; - TWCR = (1<= SLAVE_BUFFER_SIZE ) { - ack = 0; - slave_buffer_pos = 0; - } - slave_has_register_set = true; - } else { - i2c_slave_buffer[slave_buffer_pos] = TWDR; - BUFFER_POS_INC(); - } - break; - - case TW_ST_SLA_ACK: - case TW_ST_DATA_ACK: - // master has addressed this device as a slave transmitter and is - // requesting data. - TWDR = i2c_slave_buffer[slave_buffer_pos]; - BUFFER_POS_INC(); - break; - - case TW_BUS_ERROR: // something went wrong, reset twi state - TWCR = 0; - default: - break; - } - // Reset everything, so we are ready for the next TWI interrupt - TWCR |= (1< - -#ifndef F_CPU -#define F_CPU 16000000UL -#endif - -#define I2C_READ 1 -#define I2C_WRITE 0 - -#define I2C_ACK 1 -#define I2C_NACK 0 - -#define SLAVE_BUFFER_SIZE 0x10 - -// i2c SCL clock frequency -#define SCL_CLOCK 400000L - -extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; - -void i2c_master_init(void); -uint8_t i2c_master_start(uint8_t address); -void i2c_master_stop(void); -uint8_t i2c_master_write(uint8_t data); -uint8_t i2c_master_read(int); -void i2c_reset_state(void); -void i2c_slave_init(uint8_t address); - - -static inline unsigned char i2c_start_read(unsigned char addr) { - return i2c_master_start((addr << 1) | I2C_READ); -} - -static inline unsigned char i2c_start_write(unsigned char addr) { - return i2c_master_start((addr << 1) | I2C_WRITE); -} - -// from SSD1306 scrips -extern unsigned char i2c_rep_start(unsigned char addr); -extern void i2c_start_wait(unsigned char addr); -extern unsigned char i2c_readAck(void); -extern unsigned char i2c_readNak(void); -extern unsigned char i2c_read(unsigned char ack); - -#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); - -#endif diff --git a/keyboards/fourier/keymaps/default/config.h b/keyboards/fourier/keymaps/default/config.h index 20e49c4219..18f4c1f7ac 100644 --- a/keyboards/fourier/keymaps/default/config.h +++ b/keyboards/fourier/keymaps/default/config.h @@ -18,14 +18,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "config_common.h" +#pragma once /* Use I2C or Serial, not both */ - #define USE_SERIAL // #define USE_I2C - -#endif diff --git a/keyboards/fourier/keymaps/default/keymap.c b/keyboards/fourier/keymaps/default/keymap.c index 9c20137768..a08f27b7ce 100644 --- a/keyboards/fourier/keymaps/default/keymap.c +++ b/keyboards/fourier/keymaps/default/keymap.c @@ -1,7 +1,5 @@ #include QMK_KEYBOARD_H -extern keymap_config_t keymap_config; - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -14,8 +12,6 @@ enum custom_keycodes { QWERTY = SAFE_RANGE, }; -#define _______ KC_TRNS -#define XXXXXXX KC_NO #define KC_FN1 MO(_FN1) #define KC_FN2 MO(_FN2) #define KC_SPFN1 LT(_FN1, KC_SPACE) diff --git a/keyboards/fourier/keymaps/default/rules.mk b/keyboards/fourier/keymaps/default/rules.mk index 457a3d01d4..e69de29bb2 100644 --- a/keyboards/fourier/keymaps/default/rules.mk +++ b/keyboards/fourier/keymaps/default/rules.mk @@ -1,3 +0,0 @@ -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/fourier/matrix.c b/keyboards/fourier/matrix.c deleted file mode 100644 index fdeead7dc7..0000000000 --- a/keyboards/fourier/matrix.c +++ /dev/null @@ -1,467 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -/* - * scan matrix - */ -#include -#include -#include -#include "wait.h" -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" -#include "split_util.h" -#include "pro_micro.h" -#include "config.h" -#include "timer.h" -#include "backlight.h" - -#ifdef USE_I2C -# include "i2c.h" -#else // USE_SERIAL -# include "serial.h" -#endif - -#ifndef DEBOUNCING_DELAY -# define DEBOUNCING_DELAY 5 -#endif - -#if (DEBOUNCING_DELAY > 0) - static uint16_t debouncing_time; - static bool debouncing = false; -#endif - -#if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define matrix_bitpop(i) bitpop(matrix[i]) -# define ROW_SHIFTER ((uint8_t)1) -#else -# error "Currently only supports 8 COLS" -#endif -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -#define ERROR_DISCONNECT_COUNT 5 - -#define SERIAL_LED_ADDR 0x00 - -#define ROWS_PER_HAND (MATRIX_ROWS/2) - -static uint8_t error_count = 0; - -static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; -static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -#if (DIODE_DIRECTION == COL2ROW) - static void init_cols(void); - static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row); - static void unselect_rows(void); - static void select_row(uint8_t row); - static void unselect_row(uint8_t row); -#elif (DIODE_DIRECTION == ROW2COL) - static void init_rows(void); - static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col); - static void unselect_cols(void); - static void unselect_col(uint8_t col); - static void select_col(uint8_t col); -#endif - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -__attribute__ ((weak)) -void matrix_init_user(void) { -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - debug_enable = true; - debug_matrix = true; - debug_mouse = true; - // initialize row and col - unselect_rows(); - init_cols(); - - TX_RX_LED_INIT; - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - - matrix_init_quantum(); - -} - -uint8_t _matrix_scan(void) -{ - int offset = isLeftHand ? 0 : (ROWS_PER_HAND); -#if (DIODE_DIRECTION == COL2ROW) - // Set row, read cols - for (uint8_t current_row = 0; current_row < ROWS_PER_HAND; current_row++) { -# if (DEBOUNCING_DELAY > 0) - bool matrix_changed = read_cols_on_row(matrix_debouncing+offset, current_row); - - if (matrix_changed) { - debouncing = true; - debouncing_time = timer_read(); - } - -# else - read_cols_on_row(matrix+offset, current_row); -# endif - - } - -#elif (DIODE_DIRECTION == ROW2COL) - // Set col, read rows - for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { -# if (DEBOUNCING_DELAY > 0) - bool matrix_changed = read_rows_on_col(matrix_debouncing+offset, current_col); - if (matrix_changed) { - debouncing = true; - debouncing_time = timer_read(); - } -# else - read_rows_on_col(matrix+offset, current_col); -# endif - - } -#endif - -# if (DEBOUNCING_DELAY > 0) - if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCING_DELAY)) { - for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { - matrix[i+offset] = matrix_debouncing[i+offset]; - } - debouncing = false; - } -# endif - - return 1; -} - -#ifdef USE_I2C - -// Get rows from other half over i2c -int i2c_transaction(void) { - int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; - - int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE); - if (err) goto i2c_error; - - // start of matrix stored at 0x00 - err = i2c_master_write(0x00); - if (err) goto i2c_error; - - // Start read - err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ); - if (err) goto i2c_error; - - if (!err) { - int i; - for (i = 0; i < ROWS_PER_HAND-1; ++i) { - matrix[slaveOffset+i] = i2c_master_read(I2C_ACK); - } - matrix[slaveOffset+i] = i2c_master_read(I2C_NACK); - i2c_master_stop(); - } else { -i2c_error: // the cable is disconnceted, or something else went wrong - i2c_reset_state(); - return err; - } - - return 0; -} - -#else // USE_SERIAL - -int serial_transaction(void) { - int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; - - if (serial_update_buffers()) { - return 1; - } - - for (int i = 0; i < ROWS_PER_HAND; ++i) { - matrix[slaveOffset+i] = serial_slave_buffer[i]; - } - -#ifdef BACKLIGHT_ENABLE - // Write backlight level for slave to read - serial_master_buffer[SERIAL_LED_ADDR] = get_backlight_level(); -#endif - return 0; -} -#endif - -uint8_t matrix_scan(void) -{ - uint8_t ret = _matrix_scan(); - -#ifdef USE_I2C - if( i2c_transaction() ) { -#else // USE_SERIAL - if( serial_transaction() ) { -#endif - // turn on the indicator led when halves are disconnected - TXLED1; - - error_count++; - - if (error_count > ERROR_DISCONNECT_COUNT) { - // reset other half if disconnected - int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; - for (int i = 0; i < ROWS_PER_HAND; ++i) { - matrix[slaveOffset+i] = 0; - } - } - } else { - // turn off the indicator led on no error - TXLED0; - error_count = 0; - } - matrix_scan_quantum(); - return ret; -} - -void matrix_slave_scan(void) { - _matrix_scan(); - - int offset = (isLeftHand) ? 0 : ROWS_PER_HAND; - -#ifdef USE_I2C - for (int i = 0; i < ROWS_PER_HAND; ++i) { - i2c_slave_buffer[i] = matrix[offset+i]; - } -#else // USE_SERIAL - for (int i = 0; i < ROWS_PER_HAND; ++i) { - serial_slave_buffer[i] = matrix[offset+i]; - } - -#ifdef BACKLIGHT_ENABLE - // Read backlight level sent from master and update level on slave - backlight_set(serial_master_buffer[SERIAL_LED_ADDR]); -#endif -#endif -} - -bool matrix_is_modified(void) -{ - if (debouncing) return false; - return true; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<> 4) + 1) &= ~_BV(pin & 0xF); // IN - _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI - } -} - -static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) -{ - // Store last value of row prior to reading - matrix_row_t last_row_value = current_matrix[current_row]; - - // Clear data in matrix row - current_matrix[current_row] = 0; - - // Select row and wait for row selecton to stabilize - select_row(current_row); - wait_us(30); - - // For each col... - for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { - - // Select the col pin to read (active low) - uint8_t pin = col_pins[col_index]; - uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); - - // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); - } - - // Unselect row - unselect_row(current_row); - - return (last_row_value != current_matrix[current_row]); -} - -static void select_row(uint8_t row) -{ - uint8_t pin = row_pins[row]; - _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT - _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW -} - -static void unselect_row(uint8_t row) -{ - uint8_t pin = row_pins[row]; - _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN - _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI -} - -static void unselect_rows(void) -{ - for(uint8_t x = 0; x < ROWS_PER_HAND; x++) { - uint8_t pin = row_pins[x]; - _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN - _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI - } -} - -#elif (DIODE_DIRECTION == ROW2COL) - -static void init_rows(void) -{ - for(uint8_t x = 0; x < ROWS_PER_HAND; x++) { - uint8_t pin = row_pins[x]; - _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN - _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI - } -} - -static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) -{ - bool matrix_changed = false; - - // Select col and wait for col selecton to stabilize - select_col(current_col); - wait_us(30); - - // For each row... - for(uint8_t row_index = 0; row_index < ROWS_PER_HAND; row_index++) - { - - // Store last value of row prior to reading - matrix_row_t last_row_value = current_matrix[row_index]; - - // Check row pin state - if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) - { - // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); - } - else - { - // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); - } - - // Determine if the matrix changed state - if ((last_row_value != current_matrix[row_index]) && !(matrix_changed)) - { - matrix_changed = true; - } - } - - // Unselect col - unselect_col(current_col); - - return matrix_changed; -} - -static void select_col(uint8_t col) -{ - uint8_t pin = col_pins[col]; - _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT - _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW -} - -static void unselect_col(uint8_t col) -{ - uint8_t pin = col_pins[col]; - _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN - _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI -} - -static void unselect_cols(void) -{ - for(uint8_t x = 0; x < MATRIX_COLS; x++) { - uint8_t pin = col_pins[x]; - _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN - _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI - } -} - -#endif diff --git a/keyboards/fourier/rev1/config.h b/keyboards/fourier/rev1/config.h index 3bd67228c3..d9913d7dee 100644 --- a/keyboards/fourier/rev1/config.h +++ b/keyboards/fourier/rev1/config.h @@ -16,10 +16,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef REV1_CONFIG_H -#define REV1_CONFIG_H - -#include "../config.h" +#pragma once /* USB Device descriptor parameter */ #define VENDOR_ID 0xCB10 @@ -38,6 +35,11 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { F4, D7, E6, B4 } #define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 } +/* Split Defines */ +#define SPLIT_HAND_PIN D2 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST @@ -56,7 +58,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGB_DI_PIN D3 - #define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 14 // Number of LEDs @@ -77,6 +78,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - - -#endif diff --git a/keyboards/fourier/rev1/rev1.c b/keyboards/fourier/rev1/rev1.c index 61d7139d6c..1e662e7b8d 100644 --- a/keyboards/fourier/rev1/rev1.c +++ b/keyboards/fourier/rev1/rev1.c @@ -1,7 +1,5 @@ #include "fourier.h" - void matrix_init_kb(void) { matrix_init_user(); }; - diff --git a/keyboards/fourier/rev1/rev1.h b/keyboards/fourier/rev1/rev1.h index 9ef9b92330..ac889462b3 100644 --- a/keyboards/fourier/rev1/rev1.h +++ b/keyboards/fourier/rev1/rev1.h @@ -1,19 +1,8 @@ -#ifndef REV1_H -#define REV1_H - -#include "../fourier.h" +#pragma once +#include "fourier.h" #include "quantum.h" - -#ifdef USE_I2C -#include -#ifdef __AVR__ - #include - #include -#endif -#endif - #define LAYOUT( \ LA1, LA2, LA3, LA4, LA5, LA6, RA1, RA2, RA3, RA4, RA5, RA6, RA7, \ LB1, LB2, LB3, LB4, LB5, LB6, RB1, RB2, RB3, RB4, RB5, RB7, \ @@ -30,5 +19,3 @@ { RC1, KC_NO, RC3, RC4, RC5, RC6, RC7}, \ { RD1, KC_NO, KC_NO, RD4, RD5, RD6, RD7} \ } - -#endif diff --git a/keyboards/fourier/rules.mk b/keyboards/fourier/rules.mk index 9ec05e8740..93935e02eb 100644 --- a/keyboards/fourier/rules.mk +++ b/keyboards/fourier/rules.mk @@ -1,10 +1,4 @@ -SRC += matrix.c \ - i2c.c \ - split_util.c \ - serial.c - # MCU name -#MCU = at90usb1287 MCU = atmega32u4 # Processor frequency. @@ -41,7 +35,7 @@ F_USB = $(F_CPU) # Bootloader # This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded +# different sizes, comment this out, and the correct address will be loaded # automatically (+60). See bootloader.mk for all options. BOOTLOADER = caterina @@ -63,12 +57,12 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SUBPROJECT_rev1 = yes -USE_I2C = yes + # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -CUSTOM_MATRIX = yes +SPLIT_KEYBOARD = yes DEFAULT_FOLDER = fourier/rev1 diff --git a/keyboards/fourier/serial.c b/keyboards/fourier/serial.c deleted file mode 100644 index 74bcbb6bf6..0000000000 --- a/keyboards/fourier/serial.c +++ /dev/null @@ -1,228 +0,0 @@ -/* - * WARNING: be careful changing this code, it is very timing dependent - */ - -#ifndef F_CPU -#define F_CPU 16000000 -#endif - -#include -#include -#include -#include -#include "serial.h" - -#ifndef USE_I2C - -// Serial pulse period in microseconds. Its probably a bad idea to lower this -// value. -#define SERIAL_DELAY 24 - -uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; -uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; - -#define SLAVE_DATA_CORRUPT (1<<0) -volatile uint8_t status = 0; - -inline static -void serial_delay(void) { - _delay_us(SERIAL_DELAY); -} - -inline static -void serial_output(void) { - SERIAL_PIN_DDR |= SERIAL_PIN_MASK; -} - -// make the serial pin an input with pull-up resistor -inline static -void serial_input(void) { - SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK; - SERIAL_PIN_PORT |= SERIAL_PIN_MASK; -} - -inline static -uint8_t serial_read_pin(void) { - return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK); -} - -inline static -void serial_low(void) { - SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK; -} - -inline static -void serial_high(void) { - SERIAL_PIN_PORT |= SERIAL_PIN_MASK; -} - -void serial_master_init(void) { - serial_output(); - serial_high(); -} - -void serial_slave_init(void) { - serial_input(); - - // Enable INT0 - EIMSK |= _BV(INT0); - // Trigger on falling edge of INT0 - EICRA &= ~(_BV(ISC00) | _BV(ISC01)); -} - -// Used by the master to synchronize timing with the slave. -static -void sync_recv(void) { - serial_input(); - // This shouldn't hang if the slave disconnects because the - // serial line will float to high if the slave does disconnect. - while (!serial_read_pin()); - serial_delay(); -} - -// Used by the slave to send a synchronization signal to the master. -static -void sync_send(void) { - serial_output(); - - serial_low(); - serial_delay(); - - serial_high(); -} - -// Reads a byte from the serial line -static -uint8_t serial_read_byte(void) { - uint8_t byte = 0; - serial_input(); - for ( uint8_t i = 0; i < 8; ++i) { - byte = (byte << 1) | serial_read_pin(); - serial_delay(); - _delay_us(1); - } - - return byte; -} - -// Sends a byte with MSB ordering -static -void serial_write_byte(uint8_t data) { - uint8_t b = 8; - serial_output(); - while( b-- ) { - if(data & (1 << b)) { - serial_high(); - } else { - serial_low(); - } - serial_delay(); - } -} - -// interrupt handle to be used by the slave device -ISR(SERIAL_PIN_INTERRUPT) { - sync_send(); - - uint8_t checksum = 0; - for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { - serial_write_byte(serial_slave_buffer[i]); - sync_send(); - checksum += serial_slave_buffer[i]; - } - serial_write_byte(checksum); - sync_send(); - - // wait for the sync to finish sending - serial_delay(); - - // read the middle of pulses - _delay_us(SERIAL_DELAY/2); - - uint8_t checksum_computed = 0; - for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { - serial_master_buffer[i] = serial_read_byte(); - sync_send(); - checksum_computed += serial_master_buffer[i]; - } - uint8_t checksum_received = serial_read_byte(); - sync_send(); - - serial_input(); // end transaction - - if ( checksum_computed != checksum_received ) { - status |= SLAVE_DATA_CORRUPT; - } else { - status &= ~SLAVE_DATA_CORRUPT; - } -} - -inline -bool serial_slave_DATA_CORRUPT(void) { - return status & SLAVE_DATA_CORRUPT; -} - -// Copies the serial_slave_buffer to the master and sends the -// serial_master_buffer to the slave. -// -// Returns: -// 0 => no error -// 1 => slave did not respond -int serial_update_buffers(void) { - // this code is very time dependent, so we need to disable interrupts - cli(); - - // signal to the slave that we want to start a transaction - serial_output(); - serial_low(); - _delay_us(1); - - // wait for the slaves response - serial_input(); - serial_high(); - _delay_us(SERIAL_DELAY); - - // check if the slave is present - if (serial_read_pin()) { - // slave failed to pull the line low, assume not present - sei(); - return 1; - } - - // if the slave is present syncronize with it - sync_recv(); - - uint8_t checksum_computed = 0; - // receive data from the slave - for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { - serial_slave_buffer[i] = serial_read_byte(); - sync_recv(); - checksum_computed += serial_slave_buffer[i]; - } - uint8_t checksum_received = serial_read_byte(); - sync_recv(); - - if (checksum_computed != checksum_received) { - sei(); - return 1; - } - - uint8_t checksum = 0; - // send data to the slave - for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { - serial_write_byte(serial_master_buffer[i]); - sync_recv(); - checksum += serial_master_buffer[i]; - } - serial_write_byte(checksum); - sync_recv(); - - // always, release the line when not in use - serial_output(); - serial_high(); - - sei(); - return 0; -} - -#endif diff --git a/keyboards/fourier/serial.h b/keyboards/fourier/serial.h deleted file mode 100644 index 15fe4db7b4..0000000000 --- a/keyboards/fourier/serial.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef MY_SERIAL_H -#define MY_SERIAL_H - -#include "config.h" -#include - -/* TODO: some defines for interrupt setup */ -#define SERIAL_PIN_DDR DDRD -#define SERIAL_PIN_PORT PORTD -#define SERIAL_PIN_INPUT PIND -#define SERIAL_PIN_MASK _BV(PD0) -#define SERIAL_PIN_INTERRUPT INT0_vect - -#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 -#define SERIAL_MASTER_BUFFER_LENGTH 1 - -// Buffers for master - slave communication -extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; -extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; - -void serial_master_init(void); -void serial_slave_init(void); -int serial_update_buffers(void); -bool serial_slave_data_corrupt(void); - -#endif diff --git a/keyboards/fourier/split_util.c b/keyboards/fourier/split_util.c deleted file mode 100644 index 2704e30e04..0000000000 --- a/keyboards/fourier/split_util.c +++ /dev/null @@ -1,80 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "split_util.h" -#include "matrix.h" -#include "keyboard.h" -#include "config.h" -#include "timer.h" -#include "pincontrol.h" - -#ifdef USE_I2C -# include "i2c.h" -#else -# include "serial.h" -#endif - -volatile bool isLeftHand = true; - -static void setup_handedness(void) { - // Test D2 pin for handedness, if D2 is grounded, it's the right hand - pinMode(D2, PinDirectionInput); - isLeftHand = digitalRead(D2); -} - -static void keyboard_master_setup(void) { -#ifdef USE_I2C - i2c_master_init(); -#ifdef SSD1306OLED - matrix_master_OLED_init(); -#endif -#else - serial_master_init(); -#endif -} - -static void keyboard_slave_setup(void) { - timer_init(); -#ifdef USE_I2C - i2c_slave_init(SLAVE_I2C_ADDRESS); -#else - serial_slave_init(); -#endif -} - -bool has_usb(void) { - USBCON |= (1 << OTGPADE); //enables VBUS pad - _delay_us(5); - return (USBSTA & (1< -#include "eeconfig.h" - -#define SLAVE_I2C_ADDRESS 0x32 - -extern volatile bool isLeftHand; - -// slave version of matix scan, defined in matrix.c -void matrix_slave_scan(void); - -void split_keyboard_setup(void); -bool has_usb(void); -void keyboard_slave_loop(void); - -void matrix_master_OLED_init (void); - -#endif From 039434caf96c77a8584f03ab2b27ed255e7adae5 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 14 Dec 2018 16:38:46 -0800 Subject: [PATCH 25/38] Keyboard: Bpiphany Pegasus Hoof Refactor, Configurator support (#4649) * Pegasus Hoof: layout macro refactor - Renamed KEYMAP to LAYOUT - Added LAYOUT_tkl_ansi macro - white space changes (changed tabs for 2 spaces) * Pegasus Hoof: keymap refactor - updated layout macro names - changed to #include QMK_KEYBOARD_H - removed redundant KC_TRNS definitions - white space changes (changed tabs to spaces) - removed deprecated build script instructions from rules.mk files - updated config.h to #pragma once * Pegasus Hoof: Configurator support * Pegasus Hoof: readme cleanup - Reformat header and description paragraph - Fix Hardware Availability link (was 404) - renamed filename to lowercase * Pegasus Hoof: add LAYOUTS = tkl_ansi to rules.mk * Pegasus Hoof: fix LAYOUT_tkl_jis macro --- keyboards/bpiphany/pegasushoof/info.json | 192 ++++++++++++++++++ .../pegasushoof/keymaps/blowrak/keymap.c | 12 +- .../pegasushoof/keymaps/blowrak/rules.mk | 9 +- .../pegasushoof/keymaps/citadel/config.h | 7 +- .../pegasushoof/keymaps/citadel/keymap.c | 8 +- .../pegasushoof/keymaps/citadel/rules.mk | 7 +- .../pegasushoof/keymaps/default/keymap.c | 62 +++--- .../pegasushoof/keymaps/default/rules.mk | 9 +- keyboards/bpiphany/pegasushoof/pegasushoof.h | 66 +++--- .../pegasushoof/{README.md => readme.md} | 7 +- keyboards/bpiphany/pegasushoof/rules.mk | 3 +- 11 files changed, 282 insertions(+), 100 deletions(-) create mode 100644 keyboards/bpiphany/pegasushoof/info.json rename keyboards/bpiphany/pegasushoof/{README.md => readme.md} (63%) diff --git a/keyboards/bpiphany/pegasushoof/info.json b/keyboards/bpiphany/pegasushoof/info.json new file mode 100644 index 0000000000..c4fa28ac46 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/info.json @@ -0,0 +1,192 @@ +{ + "keyboard_name": "Pegasus Hoof", + "url": "", + "maintainer": "qmk", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + {"label":"`", "x":0, "y":1.5}, + {"label":"1", "x":1, "y":1.5}, + {"label":"2", "x":2, "y":1.5}, + {"label":"3", "x":3, "y":1.5}, + {"label":"4", "x":4, "y":1.5}, + {"label":"5", "x":5, "y":1.5}, + {"label":"6", "x":6, "y":1.5}, + {"label":"7", "x":7, "y":1.5}, + {"label":"8", "x":8, "y":1.5}, + {"label":"9", "x":9, "y":1.5}, + {"label":"0", "x":10, "y":1.5}, + {"label":"-", "x":11, "y":1.5}, + {"label":"=", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"Page Up", "x":17.25, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[", "x":11.5, "y":2.5}, + {"label":"]", "x":12.5, "y":2.5}, + {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"Page Down", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";", "x":10.75, "y":3.5}, + {"label":"'", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"ISO \\", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",", "x":9.25, "y":4.5}, + {"label":".", "x":10.25, "y":4.5}, + {"label":"/", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"Up", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"x":3.75, "y":5.5, "w":6.25}, + {"label":"AltGr", "x":10, "y":5.5, "w":1.25}, + {"label":"GUI", "x":11.25, "y":5.5, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"Left", "x":15.25, "y":5.5}, + {"label":"Down", "x":16.25, "y":5.5}, + {"label":"Right", "x":17.25, "y":5.5} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + {"label":"`", "x":0, "y":1.5}, + {"label":"1", "x":1, "y":1.5}, + {"label":"2", "x":2, "y":1.5}, + {"label":"3", "x":3, "y":1.5}, + {"label":"4", "x":4, "y":1.5}, + {"label":"5", "x":5, "y":1.5}, + {"label":"6", "x":6, "y":1.5}, + {"label":"7", "x":7, "y":1.5}, + {"label":"8", "x":8, "y":1.5}, + {"label":"9", "x":9, "y":1.5}, + {"label":"0", "x":10, "y":1.5}, + {"label":"-", "x":11, "y":1.5}, + {"label":"=", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"Page Up", "x":17.25, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[", "x":11.5, "y":2.5}, + {"label":"]", "x":12.5, "y":2.5}, + {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"Page Down", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";", "x":10.75, "y":3.5}, + {"label":"'", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",", "x":9.25, "y":4.5}, + {"label":".", "x":10.25, "y":4.5}, + {"label":"/", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"Up", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"x":3.75, "y":5.5, "w":6.25}, + {"label":"AltGr", "x":10, "y":5.5, "w":1.25}, + {"label":"GUI", "x":11.25, "y":5.5, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"Left", "x":15.25, "y":5.5}, + {"label":"Down", "x":16.25, "y":5.5}, + {"label":"Right", "x":17.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c index 6faf4db6fa..7db7e5d39e 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c +++ b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c @@ -15,9 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "pegasushoof.h" - -#define _______ KC_TRNS +#include QMK_KEYBOARD_H /* Swedish keys */ #define SE_HALF KC_GRV @@ -44,7 +42,7 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layer 0: Blowrak ISO layer, a Swedish take on Dvorak */ - [KM_BLOWRAK] = KEYMAP( \ + [KM_BLOWRAK] = LAYOUT( \ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ SE_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,SE_ACUT,KC_BSPC, KC_INS, KC_HOME,KC_PGUP, \ KC_TAB, SE_AO, SE_AE, SE_OE, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_COMM,SE_CIRC,SE_QUOT, KC_DEL, KC_END, KC_PGDN, \ @@ -52,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, SE_LTGT,KC_DOT, KC_Q, KC_J, KC_K, KC_B, KC_X, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, \ KC_FN0, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_MENU,KC_FN1, KC_LEFT,KC_DOWN,KC_RGHT), /* Layer 1: Standard ISO layer */ - [KM_QWERTY] = KEYMAP( \ + [KM_QWERTY] = LAYOUT( \ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ SE_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,SE_ACUT,KC_BSPC, KC_INS, KC_HOME,KC_PGUP, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_AO, SE_CIRC,SE_QUOT, KC_DEL, KC_END, KC_PGDN, \ @@ -60,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, SE_LTGT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, SE_MINS, KC_RSFT, KC_UP, \ KC_FN0, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_MENU,KC_FN1, KC_LEFT,KC_DOWN,KC_RGHT), /* Layer 2: Media layer */ - [KM_MEDIA] = KEYMAP( \ + [KM_MEDIA] = LAYOUT( \ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_WAKE,KC_PWR, KC_SLEP, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,KC_VOLU, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_MUTE,_______,KC_VOLD, \ @@ -68,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_MPLY, \ _______,_______,_______, _______, _______,_______,RESET ,_______, KC_MPRV,KC_MSTP,KC_MNXT), /* Layer 3: Programming layer */ - [KM_HAXHAX] = KEYMAP( \ + [KM_HAXHAX] = LAYOUT( \ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ _______,SE_LCBR,SE_PIPE,SE_RCBR,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ diff --git a/keyboards/bpiphany/pegasushoof/keymaps/blowrak/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/rules.mk index 7a616ee5f3..8254a83891 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/blowrak/rules.mk +++ b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/rules.mk @@ -1,5 +1,5 @@ # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) @@ -14,9 +14,4 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. diff --git a/keyboards/bpiphany/pegasushoof/keymaps/citadel/config.h b/keyboards/bpiphany/pegasushoof/keymaps/citadel/config.h index 2d27ff392d..122627e88f 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/citadel/config.h +++ b/keyboards/bpiphany/pegasushoof/keymaps/citadel/config.h @@ -1,11 +1,6 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" +#pragma once /* overridden settings: */ #undef PRODUCT #define PRODUCT Pegasus Hoof Citadel - -#endif diff --git a/keyboards/bpiphany/pegasushoof/keymaps/citadel/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/citadel/keymap.c index 382854de9b..79f07d3bb8 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/citadel/keymap.c +++ b/keyboards/bpiphany/pegasushoof/keymaps/citadel/keymap.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include "pegasushoof.h" +#include QMK_KEYBOARD_H /* Allow shortcuts for combos like RALT(KC_RBRC) that don't take up more than 7 characters: */ #define G(kc) RALT(KC_##kc) @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '------------------------------------------------------------------------' '--------------' * NUHS = true position of KC_NUHS */ -[DEF] = KEYMAP( \ +[DEF] = LAYOUT( \ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,TD(AF4), \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_INS, KC_HOME,KC_PGUP, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_NUHS, KC_DEL, KC_END, KC_PGDN, \ @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '------------------------------------------------------------------------' '--------------' * */ -[FUN] = KEYMAP( \ +[FUN] = LAYOUT( \ CTALDEL, KC_MYCM,KC_WHOM,KC_CALC,KC_MSEL,KC_MPRV,KC_MNXT,KC_MPLY,KC_MSTP,KC_MUTE,KC_VOLD,KC_VOLU,MO(RES), _______,KC_SLCK,KC_PAUS, \ _______,_______,_______,_______,_______,_______,_______,G(7), G(8), G(9), G(0), G(MINS),_______,_______, _______,_______,KC_WH_U, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,G(RBRC),_______, _______,_______,KC_WH_D, \ @@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layer 3: Reset layer (prevents accidental resets) */ -[RES] = KEYMAP( \ +[RES] = LAYOUT( \ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ diff --git a/keyboards/bpiphany/pegasushoof/keymaps/citadel/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/citadel/rules.mk index 4cec29477a..3eb289a716 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/citadel/rules.mk +++ b/keyboards/bpiphany/pegasushoof/keymaps/citadel/rules.mk @@ -13,10 +13,5 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. TAP_DANCE_ENABLE = yes # see https://docs.qmk.fm/#/feature_tap_dance (+1000) - - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/bpiphany/pegasushoof/keymaps/default/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/default/keymap.c index aa006b23a4..621441b901 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/default/keymap.c +++ b/keyboards/bpiphany/pegasushoof/keymaps/default/keymap.c @@ -15,46 +15,42 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "pegasushoof.h" - -#define _______ KC_TRNS +#include QMK_KEYBOARD_H #define KM_QWERTY 0 #define KM_MEDIA 1 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Layer 0: Standard ISO layer */ - [KM_QWERTY] = KEYMAP( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_INS, KC_HOME,KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ - KC_CLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ - KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_MENU,KC_FN0, KC_LEFT,KC_DOWN,KC_RGHT), - /* Layer 1: Function layer */ - [KM_MEDIA] = KEYMAP( \ - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_WAKE,KC_PWR, KC_SLEP, \ - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,KC_VOLU, \ - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,KC_VOLD, \ - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_MPLY, \ - _______,_______,_______, _______, _______,_______,RESET ,_______, KC_MPRV,KC_MSTP,KC_MNXT) -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(KM_MEDIA) + /* Layer 0: Standard ISO layer */ + [KM_QWERTY] = LAYOUT( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ + KC_CLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, MO(1), KC_LEFT, KC_DOWN, KC_RGHT \ + ), + /* Layer 1: Function layer */ + [KM_MEDIA] = LAYOUT( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WAKE, KC_PWR, KC_SLEP, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, \ + _______, _______, _______, _______, _______, _______, RESET, _______, KC_MPRV, KC_MSTP, KC_MNXT \ + ) }; void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - ph_caps_led_on(); - } else { - ph_caps_led_off(); - } + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + ph_caps_led_on(); + } else { + ph_caps_led_off(); + } - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - ph_sclk_led_on(); - } else { - ph_sclk_led_off(); - } + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + ph_sclk_led_on(); + } else { + ph_sclk_led_off(); + } } diff --git a/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk index 7a616ee5f3..8254a83891 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk +++ b/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk @@ -1,5 +1,5 @@ # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) @@ -14,9 +14,4 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. diff --git a/keyboards/bpiphany/pegasushoof/pegasushoof.h b/keyboards/bpiphany/pegasushoof/pegasushoof.h index 939a854cd4..b91235aadd 100644 --- a/keyboards/bpiphany/pegasushoof/pegasushoof.h +++ b/keyboards/bpiphany/pegasushoof/pegasushoof.h @@ -21,25 +21,39 @@ along with this program. If not, see . #include "matrix.h" #include "quantum.h" -#define ___ KC_NO +#define LAYOUT( \ + KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ + KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO2, KR4, KC4, KE4, \ + KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KO3, KQ4, KC5, KE5, \ + KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \ + KB2, KH6, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ + KP4, KD2, KN6, KQ6, KN0, KA3, KM0, KP1, KC0, KQ0, KR0 \ + ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ + /* 0 */ { KC_NO , KC_NO , KC0 , KC_NO , KC_NO , KF0 , KC_NO , KC_NO , KC_NO , KJ0 , KK0 , KC_NO , KM0 , KN0 , KO0 , KC_NO , KQ0 , KR0 }, \ + /* 1 */ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KG1 , KH1 , KI1 , KJ1 , KK1 , KL1 , KM1 , KC_NO , KO1 , KP1 , KC_NO , KC_NO }, \ + /* 2 */ { KC_NO , KB2 , KC_NO , KD2 , KC_NO , KF2 , KG2 , KH2 , KI2 , KJ2 , KK2 , KL2 , KM2 , KC_NO , KO2 , KC_NO , KC_NO , KC_NO }, \ + /* 3 */ { KA3 , KB3 , KC_NO , KC_NO , KC_NO , KF3 , KG3 , KH3 , KI3 , KJ3 , KK3 , KL3 , KM3 , KC_NO , KO3 , KC_NO , KC_NO , KC_NO }, \ + /* 4 */ { KC_NO , KC_NO , KC4 , KC_NO , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , KM4 , KC_NO , KO4 , KP4 , KQ4 , KR4 }, \ + /* 5 */ { KC_NO , KC_NO , KC5 , KC_NO , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , KK5 , KL5 , KM5 , KN5 , KO5 , KP5 , KC_NO , KC_NO }, \ + /* 6 */ { KC_NO , KC_NO , KC6 , KC_NO , KC_NO , KF6 , KG6 , KH6 , KI6 , KJ6 , KK6 , KL6 , KC_NO , KN6 , KO6 , KC_NO , KQ6 , KC_NO }, \ + /* 7 */ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KF7 , KG7 , KH7 , KI7 , KJ7 , KK7 , KL7 , KM7 , KN7 , KC_NO , KP7 , KC_NO , KC_NO } \ + } -#define KEYMAP( \ - KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ - KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO2, KR4, KC4, KE4, \ - KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KO3, KQ4, KC5, KE5, \ - KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \ - KB2, KH6, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ - KP4, KD2, KN6, KQ6, KN0, KA3, KM0, KP1, KC0, KQ0, KR0 \ - ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ - /* 0 */ { ___ , ___ , KC0 , ___ , ___ , KF0 , ___ , ___ , ___ , KJ0 , KK0 , ___ , KM0 , KN0 , KO0 , ___ , KQ0 , KR0 }, \ - /* 1 */ { ___ , ___ , ___ , ___ , ___ , ___ , KG1 , KH1 , KI1 , KJ1 , KK1 , KL1 , KM1 , ___ , KO1 , KP1 , ___ , ___ }, \ - /* 2 */ { ___ , KB2 , ___ , KD2 , ___ , KF2 , KG2 , KH2 , KI2 , KJ2 , KK2 , KL2 , KM2 , ___ , KO2 , ___ , ___ , ___ }, \ - /* 3 */ { KA3 , KB3 , ___ , ___ , ___ , KF3 , KG3 , KH3 , KI3 , KJ3 , KK3 , KL3 , KM3 , ___ , KO3 , ___ , ___ , ___ }, \ - /* 4 */ { ___ , ___ , KC4 , ___ , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , KM4 , ___ , KO4 , KP4 , KQ4 , KR4 }, \ - /* 5 */ { ___ , ___ , KC5 , ___ , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , KK5 , KL5 , KM5 , KN5 , KO5 , KP5 , ___ , ___ }, \ - /* 6 */ { ___ , ___ , KC6 , ___ , ___ , KF6 , KG6 , KH6 , KI6 , KJ6 , KK6 , KL6 , ___ , KN6 , KO6 , ___ , KQ6 , ___ }, \ - /* 7 */ { ___ , ___ , ___ , ___ , ___ , KF7 , KG7 , KH7 , KI7 , KJ7 , KK7 , KL7 , KM7 , KN7 , ___ , KP7 , ___ , ___ }, \ - } +#define LAYOUT_tkl_ansi( \ + KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ + KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO2, KR4, KC4, KE4, \ + KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KO3, KQ4, KC5, KE5, \ + KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \ + KB2, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ + KP4, KD2, KN6, KQ6, KN0, KA3, KM0, KP1, KC0, KQ0, KR0 \ + ) LAYOUT( \ + KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ + KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO2, KR4, KC4, KE4, \ + KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KO3, KQ4, KC5, KE5, \ + KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \ + KB2,KC_NO,KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ + KP4, KD2, KN6, KQ6, KN0, KA3, KM0, KP1, KC0, KQ0, KR0 \ + ) #define LAYOUT_tkl_jis( \ KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ @@ -49,14 +63,14 @@ along with this program. If not, see . KB2, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KL0, KB3, KC6, \ KP4, KD2, KN6, KG0, KQ6, KH0, KI0, KN0, KM0, KP1, KC0, KQ0, KR0 \ ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ - /* 0 */ { ___ , ___ , KC0 , ___ , ___ , KF0 , KG0 , KH0 , KI0 , KJ0 , KK0 , KL0 , KM0 , KN0 , KO0 , ___ , KQ0 , KR0 }, \ - /* 1 */ { ___ , ___ , ___ , ___ , ___ , ___ , KG1 , KH1 , KI1 , KJ1 , KK1 , KL1 , KM1 , ___ , KO1 , KP1 , ___ , ___ }, \ - /* 2 */ { ___ , KB2 , ___ , KD2 , ___ , KF2 , KG2 , KH2 , KI2 , KJ2 , KK2 , KL2 , KM2 , ___ , KO2 , ___ , ___ , ___ }, \ - /* 3 */ { ___ , KB3 , ___ , ___ , ___ , KF3 , KG3 , KH3 , KI3 , KJ3 , KK3 , KL3 , KM3 , ___ , KO3 , ___ , ___ , ___ }, \ - /* 4 */ { ___ , ___ , KC4 , ___ , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , KM4 , ___ , KO4 , KP4 , KQ4 , KR4 }, \ - /* 5 */ { ___ , ___ , KC5 , ___ , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , KK5 , KL5 , KM5 , KN5 , KO5 , KP5 , ___ , ___ }, \ - /* 6 */ { ___ , ___ , KC6 , ___ , ___ , KF6 , KG6 , ___ , KI6 , KJ6 , KK6 , KL6 , ___ , KN6 , KO6 , ___ , KQ6 , ___ }, \ - /* 7 */ { ___ , ___ , ___ , ___ , ___ , KF7 , KG7 , KH7 , KI7 , KJ7 , KK7 , KL7 , KM7 , KN7 , KO7 , KP7 , ___ , ___ }, \ + /* 0 */ { KC_NO, KC_NO, KC0, KC_NO, KC_NO, KF0, KG0, KH0, KI0, KJ0, KK0, KL0, KM0, KN0, KO0, KC_NO, KQ0, KR0 }, \ + /* 1 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KG1, KH1, KI1, KJ1, KK1, KL1, KM1, KC_NO, KO1, KP1, KC_NO, KC_NO }, \ + /* 2 */ { KC_NO, KB2, KC_NO, KD2, KC_NO, KF2, KG2, KH2, KI2, KJ2, KK2, KL2, KM2, KC_NO, KO2, KC_NO, KC_NO, KC_NO }, \ + /* 3 */ { KC_NO, KB3, KC_NO, KC_NO, KC_NO, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KC_NO, KO3, KC_NO, KC_NO, KC_NO }, \ + /* 4 */ { KC_NO, KC_NO, KC4, KC_NO, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4, KM4, KC_NO, KO4, KP4, KQ4, KR4 }, \ + /* 5 */ { KC_NO, KC_NO, KC5, KC_NO, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5, KM5, KN5, KO5, KP5, KC_NO, KC_NO }, \ + /* 6 */ { KC_NO, KC_NO, KC6, KC_NO, KC_NO, KF6, KG6, KC_NO, KI6, KJ6, KK6, KL6, KC_NO, KN6, KO6, KC_NO, KQ6, KC_NO }, \ + /* 7 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KF7, KG7, KH7, KI7, KJ7, KK7, KL7, KK7, KL7, KO7, KP7, KC_NO, KC_NO } \ } inline void ph_caps_led_on(void) { DDRC |= (1<<6); PORTC &= ~(1<<6); } diff --git a/keyboards/bpiphany/pegasushoof/README.md b/keyboards/bpiphany/pegasushoof/readme.md similarity index 63% rename from keyboards/bpiphany/pegasushoof/README.md rename to keyboards/bpiphany/pegasushoof/readme.md index 1b3d631901..10ec79300a 100644 --- a/keyboards/bpiphany/pegasushoof/README.md +++ b/keyboards/bpiphany/pegasushoof/readme.md @@ -1,9 +1,10 @@ -Pegasus Hoof Controller -=== +# Pegasus Hoof Controller + +A replacement controller that turns your Filco Majestouch 87/88 mechanical keyboard into a fully programmable keyboard. Keyboard Maintainer: QMK Community Hardware Supported: Pegasus Hoof -Hardware Availability: https://1upkeyboards.com/filco-pegasus-hoof-controller.html +Hardware Availability: [1upkeyboards](https://www.1upkeyboards.com/shop/controllers/filco-pegasus-hoof-controller/) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/bpiphany/pegasushoof/rules.mk b/keyboards/bpiphany/pegasushoof/rules.mk index 0cfe115aab..00e4bb0ea1 100644 --- a/keyboards/bpiphany/pegasushoof/rules.mk +++ b/keyboards/bpiphany/pegasushoof/rules.mk @@ -60,8 +60,9 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +LAYOUTS = tkl_ansi CUSTOM_MATRIX = yes SRC = matrix.c From 91a4a63ac79460c63a8a8d49786ca2a67265b24d Mon Sep 17 00:00:00 2001 From: Fred Silberberg Date: Fri, 14 Dec 2018 18:39:16 -0800 Subject: [PATCH 26/38] Fix keymap build to send over remote desktop correctly. (#4651) --- keyboards/bigswitch/keymaps/333fred/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/bigswitch/keymaps/333fred/keymap.c b/keyboards/bigswitch/keymaps/333fred/keymap.c index 791fb435f4..be40fecb23 100644 --- a/keyboards/bigswitch/keymaps/333fred/keymap.c +++ b/keyboards/bigswitch/keymaps/333fred/keymap.c @@ -79,7 +79,7 @@ void dance_finished(qk_tap_dance_state_t *state, void* user_data) { case SINGLE_TAP: { // VS Build: CTRL+SHIFT+B - SEND_STRING(SS_DOWN(X_LCTRL) SS_DOWN(X_LALT) "b" SS_UP(X_LALT) SS_UP(X_LCTRL)); + send_string_with_delay_P(PSTR(SS_DOWN(X_LCTRL) SS_DOWN(X_LSHIFT) "b" SS_UP(X_LSHIFT) SS_UP(X_LCTRL)), 10); tap_dance_active = false; break; } From 4f1f52b53ba66ff83ce57e662c27b309ead9c693 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 14 Dec 2018 18:39:54 -0800 Subject: [PATCH 27/38] Add left/right EEPROM flashing for DFU (#4560) --- tmk_core/avr.mk | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index add904c9c5..0c3a9624cb 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -169,6 +169,36 @@ dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep fi $(DFU_PROGRAMMER) $(MCU) reset +dfu-split-left: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size + until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ + echo "Error: Bootloader not found. Trying again in 5s." ;\ + sleep 5 ;\ + done + if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\ + $(DFU_PROGRAMMER) $(MCU) erase --force;\ + $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(QUANTUM_PATH)/split_common/eeprom-lefthand.eep;\ + else\ + $(DFU_PROGRAMMER) $(MCU) erase;\ + $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(QUANTUM_PATH)/split_common/eeprom-lefthand.eep;\ + fi + $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex + $(DFU_PROGRAMMER) $(MCU) reset + +dfu-split-right: $(BUILD_DIR)/$(TARGET).hex cpfirmware check-size + until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ + echo "Error: Bootloader not found. Trying again in 5s." ;\ + sleep 5 ;\ + done + if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\ + $(DFU_PROGRAMMER) $(MCU) erase --force;\ + $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(QUANTUM_PATH)/split_common/eeprom-righthand.eep;\ + else\ + $(DFU_PROGRAMMER) $(MCU) erase;\ + $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(QUANTUM_PATH)/split_common/eeprom-rightand.eep;\ + fi + $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex + $(DFU_PROGRAMMER) $(MCU) reset + define EXEC_AVRDUDE USB= ;\ if $(GREP) -q -s Microsoft /proc/version; then \ @@ -279,4 +309,3 @@ production: $(BUILD_DIR)/$(TARGET).hex bootloader cpfirmware @cat $(TARGET)_bootloader.hex >> $(TARGET)_production.hex echo "File sizes:" $(SIZE) $(TARGET).hex $(TARGET)_bootloader.hex $(TARGET)_production.hex - From a49d98e665d934c318894cfc9d9813adacd08f11 Mon Sep 17 00:00:00 2001 From: noroadsleft Date: Fri, 14 Dec 2018 02:29:14 -0800 Subject: [PATCH 28/38] Comet46: Configurator support --- keyboards/comet46/info.json | 62 +++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 keyboards/comet46/info.json diff --git a/keyboards/comet46/info.json b/keyboards/comet46/info.json new file mode 100644 index 0000000000..9881397b40 --- /dev/null +++ b/keyboards/comet46/info.json @@ -0,0 +1,62 @@ +{ + "keyboard_name": "Comet46", + "url": "", + "maintainer": "SatT", + "width": 15, + "height": 4.9, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"TAB", "x":0, "y":0.45}, + {"label":"Q", "x":1, "y":0.45}, + {"label":"W", "x":2, "y":0.15}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0.30}, + {"label":"T", "x":5, "y":0.45}, + {"label":"Y", "x":9, "y":0.45}, + {"label":"U", "x":10, "y":0.30}, + {"label":"I", "x":11, "y":0}, + {"label":"O", "x":12, "y":0.15}, + {"label":"P", "x":13, "y":0.45}, + {"label":"BSPC", "x":14, "y":0.45}, + + {"label":"LCTL", "x":0, "y":1.45}, + {"label":"A", "x":1, "y":1.45}, + {"label":"S", "x":2, "y":1.15}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1.30}, + {"label":"G", "x":5, "y":1.45}, + {"label":"ESC", "x":6, "y":1}, + {"label":"DEL", "x":8, "y":1}, + {"label":"H", "x":9, "y":1.45}, + {"label":"J", "x":10, "y":1.30}, + {"label":"K", "x":11, "y":1}, + {"label":"L", "x":12, "y":1.15}, + {"label":"SCLN", "x":13, "y":1.45}, + {"label":"QUOT", "x":14, "y":1.45}, + + {"label":"LSFT", "x":0, "y":2.45}, + {"label":"Z", "x":1, "y":2.45}, + {"label":"X", "x":2, "y":2.15}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2.30}, + {"label":"B", "x":5, "y":2.45}, + {"label":"LCBR", "x":6, "y":2}, + {"label":"RCBR", "x":8, "y":2}, + {"label":"N", "x":9, "y":2.45}, + {"label":"M", "x":10, "y":2.30}, + {"label":"COMM", "x":11, "y":2}, + {"label":"DOT", "x":12, "y":2.15}, + {"label":"SLSH", "x":13, "y":2.45}, + {"label":"RSFT", "x":14, "y":2.45}, + + {"label":"LGUI", "x":4, "y":3.9}, + {"label":"LOWER", "x":5, "y":3.9}, + {"label":"SPACE", "x":6, "y":3.4, "h":1.5}, + {"label":"ENTER", "x":8, "y":3.4, "h":1.5}, + {"label":"RAISE", "x":9, "y":3.9}, + {"label":"LALT", "x":10, "y":3.9} + ] + } + } +} From 8f790948e5f7ed62b2c56e1a6aa63dae89d5c860 Mon Sep 17 00:00:00 2001 From: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat, 15 Dec 2018 14:31:56 +0900 Subject: [PATCH 29/38] Refactor quantum/split_common/i2c.c, quantum/split_common/serial.c (#4522) * add temporary compile test shell script * Extended support of SKIP_VERSION to make invariant compile results during testing. * build_keyboard.mk, tmk_core/rules.mk: add LIB_SRC, QUANTUM_LIB_SRC support Support compiled object enclosed in library. e.g. ``` LIB_SRC += xxxx.c xxxx.c --> xxxx.o ---> xxxx.a ``` * remove 'ifdef/ifndef USE_I2C' from quantum/split_common/{i2c|serial}.c * add SKIP_DEBUG_INFO into tmk_core/rules.mk When SKIP_DEBUG_INFO=yes is specified, do not use the -g option at compile time. * tmk_core/rules.mk: Library object need -fno-lto * add SKIP_DEBUG_INFO=yes * remove temporary compile test shell script * add '#define SOFT_SERIAL_PIN D0' to keyboards/lets_split/rev?/config.h * quantum/split_common/serial.c: Changed not to use USE_I2C. --- build_keyboard.mk | 6 +++++ common_features.mk | 6 ++--- keyboards/lets_split/rev1/config.h | 3 +++ keyboards/lets_split/rev2/config.h | 3 +++ keyboards/lets_split/sockets/config.h | 3 +++ quantum/split_common/i2c.c | 3 --- quantum/split_common/serial.c | 16 +++++------- tmk_core/common/command.c | 4 +++ tmk_core/rules.mk | 36 +++++++++++++++++++++------ 9 files changed, 56 insertions(+), 24 deletions(-) diff --git a/build_keyboard.mk b/build_keyboard.mk index d225fe8216..b639b92d3e 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -34,6 +34,10 @@ $(error MASTER does not have a valid value(left/right)) endif endif +ifdef SKIP_VERSION + OPT_DEFS += -DSKIP_VERSION +endif + # Determine which subfolders exist. KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD) KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1))) @@ -278,6 +282,7 @@ ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") endif # # project specific files +SRC += $(patsubst %.c,%.clib,$(LIB_SRC)) SRC += $(KEYBOARD_SRC) \ $(KEYMAP_C) \ $(QUANTUM_SRC) @@ -296,6 +301,7 @@ include $(TMK_PATH)/protocol.mk include $(TMK_PATH)/common.mk include bootloader.mk +SRC += $(patsubst %.c,%.clib,$(QUANTUM_LIB_SRC)) SRC += $(TMK_COMMON_SRC) OPT_DEFS += $(TMK_COMMON_DEFS) EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS) diff --git a/common_features.mk b/common_features.mk index 97febe2e77..73aab5d845 100644 --- a/common_features.mk +++ b/common_features.mk @@ -270,7 +270,7 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes) endif OPT_DEFS += -DSPLIT_KEYBOARD QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_flags.c \ - $(QUANTUM_DIR)/split_common/split_util.c \ - $(QUANTUM_DIR)/split_common/i2c.c \ - $(QUANTUM_DIR)/split_common/serial.c + $(QUANTUM_DIR)/split_common/split_util.c + QUANTUM_LIB_SRC += $(QUANTUM_DIR)/split_common/i2c.c + QUANTUM_LIB_SRC += $(QUANTUM_DIR)/split_common/serial.c endif diff --git a/keyboards/lets_split/rev1/config.h b/keyboards/lets_split/rev1/config.h index a8d6149154..18b7cce5a4 100644 --- a/keyboards/lets_split/rev1/config.h +++ b/keyboards/lets_split/rev1/config.h @@ -45,6 +45,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h index 8844e5bb81..1c0871cd1e 100644 --- a/keyboards/lets_split/rev2/config.h +++ b/keyboards/lets_split/rev2/config.h @@ -45,6 +45,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lets_split/sockets/config.h b/keyboards/lets_split/sockets/config.h index 10d0c997e6..6939d37dc5 100644 --- a/keyboards/lets_split/sockets/config.h +++ b/keyboards/lets_split/sockets/config.h @@ -45,6 +45,9 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/quantum/split_common/i2c.c b/quantum/split_common/i2c.c index b3d7fcc681..45e958b395 100644 --- a/quantum/split_common/i2c.c +++ b/quantum/split_common/i2c.c @@ -7,8 +7,6 @@ #include "i2c.h" #include "split_flags.h" -#if defined(USE_I2C) || defined(EH) - // Limits the amount of we wait for any one i2c transaction. // Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is // 9 bits, a single transaction will take around 90μs to complete. @@ -184,4 +182,3 @@ ISR(TWI_vect) { // Reset everything, so we are ready for the next TWI interrupt TWCR |= (1< #include "serial.h" -#ifndef USE_I2C - -#ifndef SOFT_SERIAL_PIN - #error quantum/split_common/serial.c need SOFT_SERIAL_PIN define -#endif +#ifdef SOFT_SERIAL_PIN #ifdef __AVR_ATmega32U4__ // if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial. - #ifdef USE_I2C - #if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1 - #error Using ATmega32U4 I2C, so can not use PD0, PD1 - #endif + #ifdef USE_AVR_I2C + #if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1 + #error Using ATmega32U4 I2C, so can not use PD0, PD1 + #endif #endif #if SOFT_SERIAL_PIN >= D0 && SOFT_SERIAL_PIN <= D3 @@ -278,4 +274,4 @@ int serial_update_buffers(void) { return 0; } -#endif +#endif /* SOFT_SERIAL_PIN */ diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index f79d5a257b..aab99290d2 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -181,7 +181,11 @@ static void print_version(void) print("VID: " STR(VENDOR_ID) "(" STR(MANUFACTURER) ") " "PID: " STR(PRODUCT_ID) "(" STR(PRODUCT) ") " "VER: " STR(DEVICE_VER) "\n"); +#ifdef SKIP_VERSION + print("BUILD: (" __DATE__ ")\n"); +#else print("BUILD: " STR(QMK_VERSION) " (" __TIME__ " " __DATE__ ")\n"); +#endif /* build options */ print("OPTIONS:" diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index ce3cd83b3f..2e419dd667 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -28,12 +28,13 @@ VPATH := # Convert all SRC to OBJ define OBJ_FROM_SRC -$(patsubst %.c,$1/%.o,$(patsubst %.cpp,$1/%.o,$(patsubst %.cc,$1/%.o,$(patsubst %.S,$1/%.o,$($1_SRC))))) +$(patsubst %.c,$1/%.o,$(patsubst %.cpp,$1/%.o,$(patsubst %.cc,$1/%.o,$(patsubst %.S,$1/%.o,$(patsubst %.clib,$1/%.a,$($1_SRC)))))) endef $(foreach OUTPUT,$(OUTPUTS),$(eval $(OUTPUT)_OBJ +=$(call OBJ_FROM_SRC,$(OUTPUT)))) # Define a list of all objects OBJ := $(foreach OUTPUT,$(OUTPUTS),$($(OUTPUT)_OBJ)) +NO_LTO_OBJ := $(filter %.a,$(OBJ)) MASTER_OUTPUT := $(firstword $(OUTPUTS)) @@ -81,7 +82,9 @@ CSTANDARD = -std=gnu99 # -Wall...: warning level # -Wa,...: tell GCC to pass this to the assembler. # -adhlns...: create assembler listing -CFLAGS += -g$(DEBUG) +ifndef SKIP_DEBUG_INFO + CFLAGS += -g$(DEBUG) +endif CFLAGS += $(CDEFS) CFLAGS += -O$(OPT) # add color @@ -110,7 +113,9 @@ CFLAGS += $(CSTANDARD) # -Wall...: warning level # -Wa,...: tell GCC to pass this to the assembler. # -adhlns...: create assembler listing -CPPFLAGS += -g$(DEBUG) +ifndef SKIP_DEBUG_INFO + CPPFLAGS += -g$(DEBUG) +endif CPPFLAGS += $(CPPDEFS) CPPFLAGS += -O$(OPT) # to supress "warning: only initialized variables can be placed into program memory area" @@ -138,7 +143,11 @@ CPPFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) # -listing-cont-lines: Sets the maximum number of continuation lines of hex # dump that will be displayed for a given single line of source input. ASFLAGS += $(ADEFS) -ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100 +ifndef SKIP_DEBUG_INFO + ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100 +else + ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100 +endif #---------------- Library Options ---------------- # Minimalistic printf version @@ -210,6 +219,11 @@ ALL_CFLAGS = $(MCUFLAGS) $(CFLAGS) $(EXTRAFLAGS) ALL_CPPFLAGS = $(MCUFLAGS) -x c++ $(CPPFLAGS) $(EXTRAFLAGS) ALL_ASFLAGS = $(MCUFLAGS) -x assembler-with-cpp $(ASFLAGS) $(EXTRAFLAGS) +define NO_LTO +$(patsubst %.a,%.o,$1): NOLTO_CFLAGS += -fno-lto +endef +$(foreach LOBJ, $(NO_LTO_OBJ), $(eval $(call NO_LTO,$(LOBJ)))) + MOVE_DEP = mv -f $(patsubst %.o,%.td,$@) $(patsubst %.o,%.d,$@) @@ -290,8 +304,8 @@ $1_INCFLAGS := $$(patsubst %,-I%,$$($1_INC)) ifdef $1_CONFIG $1_CONFIG_FLAGS += $$(patsubst %,-include %,$$($1_CONFIG)) endif -$1_CFLAGS = $$(ALL_CFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) -$1_CPPFLAGS= $$(ALL_CPPFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) +$1_CFLAGS = $$(ALL_CFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) $$(NOLTO_CFLAGS) +$1_CPPFLAGS= $$(ALL_CPPFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) $$(NOLTO_CFLAGS) $1_ASFLAGS= $$(ALL_ASFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) # Compile: create object files from C source files. @@ -321,6 +335,12 @@ $1/%.o : %.S $1/asflags.txt $1/compiler.txt | $(BEGIN) $$(eval CMD=$$(CC) -c $$($1_ASFLAGS) $$< -o $$@) @$$(BUILD_CMD) +$1/%.a : $1/%.o + @mkdir -p $$(@D) + @$(SILENT) || printf "Archiving: $$<" | $$(AWK_CMD) + $$(eval CMD=$$(AR) $$@ $$<) + @$$(BUILD_CMD) + $1/force: $1/cflags.txt: $1/force @@ -346,7 +366,7 @@ $(MASTER_OUTPUT)/ldflags.txt: $(MASTER_OUTPUT)/force # We have to use static rules for the .d files for some reason -DEPS = $(patsubst %.o,%.d,$(OBJ)) +DEPS = $(patsubst %.o,%.d,$(patsubst %.a,%.o,$(OBJ))) # Keep the .d files .PRECIOUS: $(DEPS) # Empty rule to force recompilation if the .d file is missing @@ -391,7 +411,7 @@ $(shell mkdir -p $(BUILD_DIR) 2>/dev/null) $(eval $(foreach OUTPUT,$(OUTPUTS),$(shell mkdir -p $(OUTPUT) 2>/dev/null))) # Include the dependency files. --include $(patsubst %.o,%.d,$(OBJ)) +-include $(patsubst %.o,%.d,$(patsubst %.a,%.o,$(OBJ))) # Listing of phony targets. From 45591ee443f57000bf5ad39f45bfa5d44f43dce0 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 14 Dec 2018 21:36:03 -0800 Subject: [PATCH 30/38] Keyboard: Chimera Ortho refactor (#4652) * Layout macro refactor - Renamed KC_KEYMAP to LAYOUT_kc - Renamed KEYMAP to LAYOUT - moved LAYOUT above LAYOUT_kc (Hoping this encourages users to use LAYOUT.) - updated layout macro name in info.json - white space changes for readability * Keymap refactor: default Default keymap now uses `#include QMK_KEYBOARD_H` and LAYOUT macro (from KC_KEYMAP/LAYOUT_kc). Keymap was also refactored to use process_record_user function instead of deprecated action_get_macro from TMK. Also moved LONGPRESS_DELAY and LAYER_TOGGLE_DELAY definitions to config.h. * Keymap refactor: dcompact - Changed chimera_ortho.h include for QMK_KEYBOARD_H - Updated layout name on keymap layers * Coding conventions fix in default keymap * Keymap refactor: gordon - Changed chimera_ortho.h include for QMK_KEYBOARD_H - Removed redundant includes of action_layer.h and process_tap_dance.h (superseded by QMK_KEYBOARD_H) - Removed redundant definitions for KC_NO and KC_TRNS - Updated layout name on keymap layers --- keyboards/chimera_ortho/chimera_ortho.h | 33 ++- keyboards/chimera_ortho/info.json | 280 +++--------------- .../chimera_ortho/keymaps/dcompact/keymap.c | 12 +- .../chimera_ortho/keymaps/default/config.h | 5 + .../chimera_ortho/keymaps/default/keymap.c | 218 +++++++------- .../chimera_ortho/keymaps/gordon/keymap.c | 58 ++-- 6 files changed, 206 insertions(+), 400 deletions(-) create mode 100644 keyboards/chimera_ortho/keymaps/default/config.h diff --git a/keyboards/chimera_ortho/chimera_ortho.h b/keyboards/chimera_ortho/chimera_ortho.h index 3b7690d43a..5981252751 100644 --- a/keyboards/chimera_ortho/chimera_ortho.h +++ b/keyboards/chimera_ortho/chimera_ortho.h @@ -49,31 +49,32 @@ // This a shortcut to help you visually see your layout. // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array -#define KC_KEYMAP( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \ k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, \ - k28, k29, k31, k32, k33, k34, k35, k36, k37, k38, k41, k42, k43, k44,\ - k45, k46, k47, k48 \ + k28, k29, k31, k32, k33, k34, k35, k36, k37, k38, k41, k42, k43, k44, \ + k45, k46, k47, k48 \ ) \ { \ - { KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k08, KC_##k09, KC_##k10, KC_##k11, KC_##k12 }, \ - { KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26 }, \ - { KC_##k29, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k37, KC_##k38, KC_##k41, KC_##k42, KC_##k43 }, \ - { KC_NO, KC_##k06, KC_##k20, KC_##k35, KC_##k46, KC_##k47, KC_##k36, KC_##k21, KC_##k07, KC_NO }, \ - { KC_NO, KC_##k28, KC_##k14, KC_##k00, KC_##k45, KC_##k48, KC_##k13, KC_##k27, KC_##k44, KC_NO }, \ + { k01, k02, k03, k04, k05, k08, k09, k10, k11, k12 }, \ + { k15, k16, k17, k18, k19, k22, k23, k24, k25, k26 }, \ + { k29, k31, k32, k33, k34, k37, k38, k41, k42, k43 }, \ + { KC_NO, k06, k20, k35, k46, k47, k36, k21, k07, KC_NO }, \ + { KC_NO, k28, k14, k00, k45, k48, k13, k27, k44, KC_NO } \ } -#define KEYMAP( \ +#define LAYOUT_kc( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \ k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, \ - k28, k29, k31, k32, k33, k34, k35, k36, k37, k38, k41, k42, k43, k44,\ - k45, k46, k47, k48 \ + k28, k29, k31, k32, k33, k34, k35, k36, k37, k38, k41, k42, k43, k44, \ + k45, k46, k47, k48 \ ) \ { \ - { k01, k02, k03, k04, k05, k08, k09, k10, k11, k12 }, \ - { k15, k16, k17, k18, k19, k22, k23, k24, k25, k26 }, \ - { k29, k31, k32, k33, k34, k37, k38, k41, k42, k43 }, \ - { KC_NO, k06, k20, k35, k46, k47, k36, k21, k07, KC_NO }, \ - { KC_NO, k28, k14, k00, k45, k48, k13, k27, k44, KC_NO }, \ + { KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k08, KC_##k09, KC_##k10, KC_##k11, KC_##k12 }, \ + { KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26 }, \ + { KC_##k29, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k37, KC_##k38, KC_##k41, KC_##k42, KC_##k43 }, \ + { KC_NO, KC_##k06, KC_##k20, KC_##k35, KC_##k46, KC_##k47, KC_##k36, KC_##k21, KC_##k07, KC_NO }, \ + { KC_NO, KC_##k28, KC_##k14, KC_##k00, KC_##k45, KC_##k48, KC_##k13, KC_##k27, KC_##k44, KC_NO } \ } + #endif diff --git a/keyboards/chimera_ortho/info.json b/keyboards/chimera_ortho/info.json index b1384379ce..3f8481be4b 100644 --- a/keyboards/chimera_ortho/info.json +++ b/keyboards/chimera_ortho/info.json @@ -1,240 +1,58 @@ { + "keyboard_name": "Chimera Ortho", + "keyboard_folder": "chimera_ortho", "maintainer": "qmk", "width": 15.5, "height": 4.25, "layouts": { - "KEYMAP": { + "LAYOUT": { "layout": [ - { - "label": "Esc", - "x": 0, - "y": 0 - }, - { - "label": "Q", - "x": 1, - "y": 0 - }, - { - "label": "W", - "x": 2, - "y": 0 - }, - { - "label": "E", - "x": 3, - "y": 0 - }, - { - "label": "R", - "x": 4, - "y": 0 - }, - { - "label": "T", - "x": 5, - "y": 0 - }, - { - "label": "{", - "x": 6, - "y": 0 - }, - { - "label": "}", - "x": 8.5, - "y": 0 - }, - { - "label": "Y", - "x": 9.5, - "y": 0 - }, - { - "label": "U", - "x": 10.5, - "y": 0 - }, - { - "label": "I", - "x": 11.5, - "y": 0 - }, - { - "label": "O", - "x": 12.5, - "y": 0 - }, - { - "label": "P", - "x": 13.5, - "y": 0 - }, - { - "label": "\"", - "x": 14.5, - "y": 0 - }, - { - "label": "Tab", - "x": 0, - "y": 1 - }, - { - "label": "A", - "x": 1, - "y": 1 - }, - { - "label": "S", - "x": 2, - "y": 1 - }, - { - "label": "D", - "x": 3, - "y": 1 - }, - { - "label": "F", - "x": 4, - "y": 1 - }, - { - "label": "G", - "x": 5, - "y": 1 - }, - { - "label": "-", - "x": 6, - "y": 1 - }, - { - "label": "1", - "x": 8.5, - "y": 1 - }, - { - "label": "H", - "x": 9.5, - "y": 1 - }, - { - "label": "J", - "x": 10.5, - "y": 1 - }, - { - "label": "K", - "x": 11.5, - "y": 1 - }, - { - "label": "L", - "x": 12.5, - "y": 1 - }, - { - "label": ";", - "x": 13.5, - "y": 1 - }, - { - "label": "Enter", - "x": 14.5, - "y": 1 - }, - { - "label": "(", - "x": 0, - "y": 2 - }, - { - "label": "Z", - "x": 1, - "y": 2 - }, - { - "label": "X", - "x": 2, - "y": 2 - }, - { - "label": "C", - "x": 3, - "y": 2 - }, - { - "label": "V", - "x": 4, - "y": 2 - }, - { - "label": "B", - "x": 5, - "y": 2 - }, - { - "label": "=", - "x": 6, - "y": 2 - }, - { - "label": "8", - "x": 8.5, - "y": 2 - }, - { - "label": "N", - "x": 9.5, - "y": 2 - }, - { - "label": "M", - "x": 10.5, - "y": 2 - }, - { - "label": ",", - "x": 11.5, - "y": 2 - }, - { - "label": ".", - "x": 12.5, - "y": 2 - }, - { - "label": "/", - "x": 13.5, - "y": 2 - }, - { - "label": ")", - "x": 14.5, - "y": 2 - }, - { - "label": "Num Layer", - "x": 4, - "y": 3.25 - }, - { - "label": "Back Space", - "x": 5, - "y": 3.25 - }, - { - "label": "Space", - "x": 9.5, - "y": 3.25 - }, - { - "label": "Symbol Layer", - "x": 10.5, - "y": 3.25 - } + {"label": "Esc", "x": 0, "y": 0}, + {"label": "Q", "x": 1, "y": 0}, + {"label": "W", "x": 2, "y": 0}, + {"label": "E", "x": 3, "y": 0}, + {"label": "R", "x": 4, "y": 0}, + {"label": "T", "x": 5, "y": 0}, + {"label": "{", "x": 6, "y": 0}, + {"label": "}", "x": 8.5, "y": 0}, + {"label": "Y", "x": 9.5, "y": 0}, + {"label": "U", "x": 10.5, "y": 0}, + {"label": "I", "x": 11.5, "y": 0}, + {"label": "O", "x": 12.5, "y": 0}, + {"label": "P", "x": 13.5, "y": 0}, + {"label": "\"", "x": 14.5, "y": 0}, + {"label": "Tab", "x": 0, "y": 1}, + {"label": "A", "x": 1, "y": 1}, + {"label": "S", "x": 2, "y": 1}, + {"label": "D", "x": 3, "y": 1}, + {"label": "F", "x": 4, "y": 1}, + {"label": "G", "x": 5, "y": 1}, + {"label": "-", "x": 6, "y": 1}, + {"label": "1", "x": 8.5, "y": 1}, + {"label": "H", "x": 9.5, "y": 1}, + {"label": "J", "x": 10.5, "y": 1}, + {"label": "K", "x": 11.5, "y": 1}, + {"label": "L", "x": 12.5, "y": 1}, + {"label": ";", "x": 13.5, "y": 1}, + {"label": "Enter", "x": 14.5, "y": 1}, + {"label": "(", "x": 0, "y": 2}, + {"label": "Z", "x": 1, "y": 2}, + {"label": "X", "x": 2, "y": 2}, + {"label": "C", "x": 3, "y": 2}, + {"label": "V", "x": 4, "y": 2}, + {"label": "B", "x": 5, "y": 2}, + {"label": "=", "x": 6, "y": 2}, + {"label": "8", "x": 8.5, "y": 2}, + {"label": "N", "x": 9.5, "y": 2}, + {"label": "M", "x": 10.5, "y": 2}, + {"label": ", ", "x": 11.5, "y": 2}, + {"label": ".", "x": 12.5, "y": 2}, + {"label": "/", "x": 13.5, "y": 2}, + {"label": ")", "x": 14.5, "y": 2}, + {"label": "Num Layer", "x": 4, "y": 3.25}, + {"label": "Back Space", "x": 5, "y": 3.25}, + {"label": "Space", "x": 9.5, "y": 3.25}, + {"label": "Symbol Layer", "x": 10.5, "y": 3.25} ] } } diff --git a/keyboards/chimera_ortho/keymaps/dcompact/keymap.c b/keyboards/chimera_ortho/keymaps/dcompact/keymap.c index 74c3a25cda..1c6ef7d6f9 100644 --- a/keyboards/chimera_ortho/keymaps/dcompact/keymap.c +++ b/keyboards/chimera_ortho/keymaps/dcompact/keymap.c @@ -1,4 +1,4 @@ -#include "chimera_ortho.h" +#include QMK_KEYBOARD_H enum chimera_ortho_layers { @@ -34,7 +34,7 @@ enum chimera_ortho_layers const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = KC_KEYMAP( + [_BASE] = LAYOUT_kc( //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. LALT ,TAB ,QUOT ,COMM ,DOT ,P ,Y ,F ,G ,C ,R ,L ,SLSH ,FUNC //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ ), - [_NAV] = KC_KEYMAP( + [_NAV] = LAYOUT_kc( //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. , , , , , , , ,HOME ,PGDOWN ,PGUP ,END , , //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ ), - [_SYM] = KC_KEYMAP( + [_SYM] = LAYOUT_kc( //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. ,QUAKE ,GRAVE ,TILDE ,BSLASH ,PIPE ,LPRN ,RPRN ,7 ,8 ,9 ,SLSH ,EQUAL , //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ ), - [_FUNC] = KC_KEYMAP( + [_FUNC] = LAYOUT_kc( //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. ,RESET ,SLEP ,MRWD ,MPLY ,MFFD , , ,F9 ,F10 ,F11 ,F12 , , //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ ), - [_MOUSE] = KC_KEYMAP( + [_MOUSE] = LAYOUT_kc( //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. , , , , , , , , , , , , , //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| diff --git a/keyboards/chimera_ortho/keymaps/default/config.h b/keyboards/chimera_ortho/keymaps/default/config.h new file mode 100644 index 0000000000..bdfd4db80f --- /dev/null +++ b/keyboards/chimera_ortho/keymaps/default/config.h @@ -0,0 +1,5 @@ +#pragma once + +// place overrides here +#define LONGPRESS_DELAY 150 +//#define LAYER_TOGGLE_DELAY 300 diff --git a/keyboards/chimera_ortho/keymaps/default/keymap.c b/keyboards/chimera_ortho/keymaps/default/keymap.c index 6201eebac8..6a676493dd 100644 --- a/keyboards/chimera_ortho/keymaps/default/keymap.c +++ b/keyboards/chimera_ortho/keymaps/default/keymap.c @@ -1,20 +1,19 @@ // this is the style you want to emulate. // This is the canonical layout file for the Quantum project. If you want to add another keyboard, -#include "chimera_ortho.h" +#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 chimera_ortho_layers -{ - _QWERTY, - _CAPS, - _NUMPAD, - _SYMBOLS, - _MACROS, - _NAV +enum chimera_ortho_layers { + _QWERTY, + _CAPS, + _NUMPAD, + _SYMBOLS, + _MACROS, + _NAV }; #define KC_NMPD TG(_NUMPAD) @@ -27,153 +26,140 @@ enum chimera_ortho_layers #define KC_GBRC MT(MOD_RGUI, KC_8) #define KC_GQOT MT(MOD_LGUI, KC_QUOT) #define KC_MESC LT(_MACROS, KC_ESC) -#define KC_INCL M(0) -#define KC_PULL M(1) -#define KC_PUSH M(2) -#define KC_SCAP M(3) -#define KC_SCOF M(4) #define KC_CAD LALT(LCTL(KC_DEL)) -#define LONGPRESS_DELAY 150 -//#define LAYER_TOGGLE_DELAY 300 - -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO -#define KC_ KC_TRNS +enum custom_keycodes { + KC_INCL = SAFE_RANGE, + KC_PULL, + KC_PUSH, + KC_SCAP, + KC_SCOF +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - MESC, Q , W , E , R , T ,SCTL, SCTR, Y , U , I , O , P ,QUOT, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - TAB , A , S , D , F , G ,SPLT, SPRT, H , J , K , L ,SCLN,ENT , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - LSPO, Z , X , C , V , B ,SPFN, GBRC, N , M ,COMM,DOT ,SLSH,RSPC, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - NMPD,BSPC, SPC ,SYMB - // \------------------+----+----+---/ \---+----+----+-------------------/ + [_QWERTY] = LAYOUT( + //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. + KC_MESC, KC_Q , KC_W , KC_E , KC_R , KC_T ,KC_SCTL, KC_SCTR, KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_QUOT, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G ,KC_SPLT, KC_SPRT, KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_ENT , + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_SPFN, KC_GBRC, KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSPC, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + KC_NMPD,KC_BSPC, KC_SPC ,KC_SYMB + // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/ ), - [_CAPS] = KC_KEYMAP( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - , , , , , , , , , , , , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , ,UNDS, , , , , ,COLN, , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - SCOF, , , , , , , , , , , , ,SCOF, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , - // \------------------+----+----+---/ \---+----+----+-------------------/ + [_CAPS] = LAYOUT( + //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. + _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,KC_UNDS, _______,_______,_______,_______,_______,KC_COLN,_______, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + KC_SCOF,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,KC_SCOF, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______, _______,_______ + // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/ ), - [_NUMPAD] = KC_KEYMAP( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - , ,COLN , , , , , , , 7 , 8 , 9 ,ASTR,MINS, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , ,DOT , , , , , , , 4 , 5 , 6 ,PLUS, , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , , 1 , 2 , 3 ,SLSH, , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , 0 - // \------------------+----+----+---/ \---+----+----+-------------------/ + [_NUMPAD] = LAYOUT( + //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. + _______,_______,KC_COLN,_______,_______,_______,_______, _______,_______, KC_7 , KC_8 , KC_9 ,KC_ASTR,KC_MINS, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,KC_DOT ,_______,_______,_______,_______, _______,_______, KC_4 , KC_5 , KC_6 ,KC_PLUS,_______, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,_______, KC_1 , KC_2 , KC_3 ,KC_SLSH,_______, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______, _______, KC_0 + // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/ ), - [_SYMBOLS] = KC_KEYMAP( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - ,EXLM, AT ,HASH,DLR ,PERC, , ,CIRC,AMPR,ASTR,LPRN,RPRN,BSLS, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , F1 , F2 , F3 , F4 , F5 , , ,TILD,COLN,UNDS,LCBR,RCBR, , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , F6 , F7 , F8 , F9 ,F10 , , ,GRV ,SCLN,MINS,LBRC,RBRC, , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - PIPE, , , - // \------------------+----+----+---/ \---+----+----+-------------------/ + [_SYMBOLS] = LAYOUT( + //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. + _______,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC,_______, _______,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSLS, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 ,_______, _______,KC_TILD,KC_COLN,KC_UNDS,KC_LCBR,KC_RCBR,_______, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,_______, _______,KC_GRV ,KC_SCLN,KC_MINS,KC_LBRC,KC_RBRC,_______, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + KC_PIPE,_______, _______,_______ + // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/ ), - [_NAV] = KC_KEYMAP( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - , , , , , , , , , , UP , ,PSCR, , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , ,LEFT,DOWN,RGHT, , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , ,PGUP,PGDN, , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - ,DEL , , - // \------------------+----+----+---/ \---+----+----+-------------------/ + [_NAV] = LAYOUT( + //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. + _______,_______,_______,_______,_______,_______,_______, _______,_______,_______, KC_UP ,_______,KC_PSCR,_______, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,_______,_______,_______,_______, _______,_______,KC_PGUP,KC_PGDN,_______,_______,_______, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,KC_DEL , _______,_______ + // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/ ), - [_MACROS] = KC_KEYMAP( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - , , , , , , , , , ,INCL, , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , ,CAD , , , , , , , , , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - SCAP, , , , , , , , , ,PULL,PUSH, ,SCAP, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , - // \------------------+----+----+---/ \---+----+----+-------------------/ + [_MACROS] = LAYOUT( + //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. + _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,KC_INCL,_______,_______,_______, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______,_______,KC_CAD ,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + KC_SCAP,_______,_______,_______,_______,_______,_______, _______,_______,_______,KC_PULL,KC_PUSH,_______,KC_SCAP, + //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| + _______,_______, _______,_______ + // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/ ) }; -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { /* include some kind of library or header */ - case 0: + case KC_INCL: if (record->event.pressed) { - SEND_STRING("#include <>"); - return MACRO( T(LEFT), END); + SEND_STRING("#include <>" SS_TAP(X_LEFT)); } - break; - case 1: + return false; + case KC_PULL: if (record->event.pressed) { - SEND_STRING("git pull"); - return MACRO( T(ENT), END ); + SEND_STRING("git pull" SS_TAP(X_ENTER)); } - break; - case 2: + return false; + case KC_PUSH: if (record->event.pressed){ - SEND_STRING("git push"); - return MACRO( T(ENT), END ); + SEND_STRING("git push" SS_TAP(X_ENTER)); } - break; - case 3: + return false; + case KC_SCAP: if (record->event.pressed){ layer_on(_CAPS); register_code(KC_CAPSLOCK); unregister_code(KC_CAPSLOCK); } - break; - case 4: + return false; + case KC_SCOF: if (record->event.pressed){ layer_off(_CAPS); register_code(KC_CAPSLOCK); unregister_code(KC_CAPSLOCK); } - break; + return false; } - return MACRO_NONE; + return true; }; - + void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); - + switch (layer) { - case _QWERTY: - set_led_green; - break; + case _QWERTY: + set_led_green; + break; case _CAPS: - set_led_white; - break; + set_led_white; + break; case _NUMPAD: set_led_blue; break; @@ -181,11 +167,11 @@ void matrix_scan_user(void) { set_led_red; break; case _NAV: - set_led_magenta; - break; + set_led_magenta; + break; case _MACROS: - set_led_cyan; - break; + set_led_cyan; + break; default: set_led_green; break; diff --git a/keyboards/chimera_ortho/keymaps/gordon/keymap.c b/keyboards/chimera_ortho/keymaps/gordon/keymap.c index c6d668f8f8..c6766bed3a 100644 --- a/keyboards/chimera_ortho/keymaps/gordon/keymap.c +++ b/keyboards/chimera_ortho/keymaps/gordon/keymap.c @@ -1,10 +1,8 @@ // this is the style you want to emulate. // This is the canonical layout file for the Quantum project. If you want to add another keyboard, -#include "chimera_ortho.h" -#include "action_layer.h" +#include QMK_KEYBOARD_H #include "version.h" -#include "process_keycode/process_tap_dance.h" #include "gordon.h" // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -83,11 +81,9 @@ //#define LAYER_TOGGLE_DELAY 300 // Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO -#define KC_ KC_TRNS +#define KC_ KC_TRNS -/* TODO: +/* TODO: * * DONE: RESET and CAD into macro layer. * DONE: WINUP AND WINDOWN in NAV layer @@ -113,7 +109,7 @@ * Russain layer * Hebrew layer * Get rid of stupid git pull and push macros. - * + * */ //Tap dance enums @@ -127,14 +123,14 @@ enum { CALC_PRINTSCREEN }; -static xtap ttt_state = { +static xtap ttt_state = { .is_press_action = true, .state = 0 }; //Already exists in gordon.c, shouldn't need this anymore -/*// To activate SINGLE_HOLD, you will need to hold for 200ms first. +/*// To activate SINGLE_HOLD, you will need to hold for 200ms first. // This tap dance favors keys that are used frequently in typing like 'f' int cur_dance (qk_tap_dance_state_t *state) { if (state->count == 1) { @@ -151,8 +147,8 @@ int cur_dance (qk_tap_dance_state_t *state) { else if (state->count == 2) { if (state->interrupted) return DOUBLE_SINGLE_TAP; else if (state->pressed) return DOUBLE_HOLD; - else return DOUBLE_TAP; - } + else return DOUBLE_TAP; + } else if ((state->count == 3) && ((state->interrupted) || (!state->pressed))) return TRIPLE_TAP; else if (state->count == 3) return TRIPLE_HOLD; else return 8; //magic number. At some point this method will expand to work for more presses @@ -194,7 +190,7 @@ void TTT_reset (qk_tap_dance_state_t *state, void *user_data) { qk_tap_dance_action_t tap_dance_actions[] = { // simple tap dance - [F12ETAPS] = ACTION_TAP_DANCE_DOUBLE(KC_F12,LSFT(LCTL(KC_F10))), + [F12ETAPS] = ACTION_TAP_DANCE_DOUBLE(KC_F12,LSFT(LCTL(KC_F10))), [CALCCOMP] = ACTION_TAP_DANCE_DOUBLE(KC_CALCULATOR, KC_MY_COMPUTER), [CALC_PRINTSCREEN] = ACTION_TAP_DANCE_DOUBLE(KC_CALCULATOR, KC_PSCR), [ALTF4] = ACTION_TAP_DANCE_DOUBLE(KC_F4,LALT(KC_F4)), @@ -206,7 +202,7 @@ qk_tap_dance_action_t tap_dance_actions[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. MESC, Q ,CSHW,ENAV, R , T ,SPC , CLPS, Y , U ,INAV, O , P ,TTT, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -218,7 +214,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // \------------------+----+----+---/ \---+----+----+-------------------/ ), - [_NUMPAD] = KC_KEYMAP( + [_NUMPAD] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. , , , ,ASTR, , , , , 7 , 8 , 9 ,ASTR,/**/, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -226,11 +222,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| , , , ,SLSH, , , , , 1 , 2 , 3 ,SLSH, , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , 0 + , , , 0 // \------------------+----+----+---/ \---+----+----+-------------------/ ), - [_SYMBOLS] = KC_KEYMAP( + [_SYMBOLS] = LAYOUT_kc( //,----+----+-----+----+----+----+----. ,----+----+----+----+----+----+----. ,EXLM, AT ,LCBR,RCBR,HASH, , ,CIRC,AMPR,ASTR,LPRN,RPRN,/**/, //|----+----+-----+----+----+----+----| |----+----+----+----+----+----+----| @@ -242,7 +238,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // \-------------------+----+----+---/ \---+----+----+-------------------/ ), - [_FUNCTION] = KC_KEYMAP( + [_FUNCTION] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. F6F7 ,F1 ,F2 ,F3 ,ALF4,F5 ,F6 , F7 ,F8 ,F9 ,F10 ,F11 ,F12 ,/**/, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -250,11 +246,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| , , , , , , , , , , , , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , + , , , // \------------------+----+----+---/ \---+----+----+-------------------/ ), - [_NAV] = KC_KEYMAP( + [_NAV] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. , ,SNAPLEFT,/**/,SNAPRIGHT,, , , , , UP , , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -262,11 +258,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| , ,WORKLEFT, ,WORKRIGHT,, , , ,PGUP,PGDN, , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - CDEL ,DEL, , + CDEL ,DEL, , // \------------------+----+----+---/ \---+----+----+-------------------/ ), - [_TEXTNAV] = KC_KEYMAP( + [_TEXTNAV] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. , , , , , , , , , ,/**/, , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -274,11 +270,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| , , , , , , , , , , , , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , + , , , // \------------------+----+----+---/ \---+----+----+-------------------/ ), - [_MOUSE] = KC_KEYMAP( + [_MOUSE] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. , , ,MS_UP, , , , , , , UP , , , ,/**/ //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -286,12 +282,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| , , , , , , , , , , , , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - ,MS_BTN1 ,MS_BTN2 , + ,MS_BTN1 ,MS_BTN2 , // \------------------+----+----+---/ \---+----+----+-------------------/ - ), + ), - [_MACROS] = KC_KEYMAP( + [_MACROS] = LAYOUT_kc( //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. /**/,RESET,SECRET_2,SECRET_3, , , ,SYSTEM_SLEEP, , ,INCL, , , , //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| @@ -299,7 +295,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| SCAP, , , , , , , , , , , , ,SCAP, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , + , , , // \------------------+----+----+---/ \---+----+----+-------------------/ ) @@ -349,11 +345,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } return MACRO_NONE; }; - + void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); - + switch (layer) { case _QWERTY: set_led_green; @@ -381,7 +377,7 @@ void matrix_scan_user(void) { _delay_ms(45); set_led_blue; _delay_ms(45); - break; + break; default: set_led_green; break; From 2527fe879f7c5249bbd35488cc6e889e518a6d56 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 14 Dec 2018 22:58:30 -0800 Subject: [PATCH 31/38] converter/ibm_5291: Configurator support and readme cleanup (#4654) * converter/ibm_5291: Configurator support - added layout data to info.json file - corrected keyboard_folder value * converter/ibm_5291: readme cleanup - Fixed "image" url (target of link was a web page; changed markdown formatting to text link) - Sentence capitalization fixes - markdown formatting fixes for readability --- keyboards/converter/ibm_5291/info.json | 95 +++++++++++++++++++++++++- keyboards/converter/ibm_5291/readme.md | 12 ++-- 2 files changed, 100 insertions(+), 7 deletions(-) diff --git a/keyboards/converter/ibm_5291/info.json b/keyboards/converter/ibm_5291/info.json index 48d835f338..2cb3b76c20 100644 --- a/keyboards/converter/ibm_5291/info.json +++ b/keyboards/converter/ibm_5291/info.json @@ -1,6 +1,97 @@ { "keyboard_name": "IBM 5291", - "keyboard_folder": "converter/5291", + "keyboard_folder": "converter/ibm_5291", "url": "https://deskthority.net/wiki/IBM_Model_F#IBM_5291_Keyboard", - "maintainer": "listofoptions" + "maintainer": "listofoptions", + "width": 21, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Sys Req", "x":0, "y":0}, + {"label":"Cmd", "x":1, "y":0}, + {"label":"`", "x":2.25, "y":0}, + {"label":"1", "x":3.25, "y":0}, + {"label":"2", "x":4.25, "y":0}, + {"label":"3", "x":5.25, "y":0}, + {"label":"4", "x":6.25, "y":0}, + {"label":"5", "x":7.25, "y":0}, + {"label":"6", "x":8.25, "y":0}, + {"label":"7", "x":9.25, "y":0}, + {"label":"8", "x":10.25, "y":0}, + {"label":"9", "x":11.25, "y":0}, + {"label":"0", "x":12.25, "y":0}, + {"label":"-", "x":13.25, "y":0}, + {"label":"=", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0, "w":1.75}, + {"label":"Reverse Tab", "x":17, "y":0, "w":2}, + {"label":"Dup", "x":19, "y":0, "w":2}, + {"label":"Del", "x":0, "y":1}, + {"label":"Erase Input", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"¢", "x":13.75, "y":1}, + {"label":"\\", "x":14.75, "y":1, "w":1.25}, + {"label":"7", "x":17, "y":1}, + {"label":"8", "x":18, "y":1}, + {"label":"9", "x":19, "y":1}, + {"label":"Field -", "x":20, "y":1}, + {"label":"Print", "x":0, "y":2}, + {"label":"Help", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":";", "x":13, "y":2}, + {"label":"'", "x":14, "y":2}, + {"label":"{", "x":15, "y":2}, + {"label":"Field Exit", "x":16, "y":1, "h":2}, + {"label":"4", "x":17, "y":2}, + {"label":"5", "x":18, "y":2}, + {"label":"6", "x":19, "y":2}, + {"label":"Roll Up", "x":0, "y":3}, + {"label":"Roll Down", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":1.25}, + {"label":"<", "x":3.5, "y":3}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":",", "x":11.5, "y":3}, + {"label":".", "x":12.5, "y":3}, + {"label":"/", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.5}, + {"label":"Return", "x":16, "y":3}, + {"label":"1", "x":17, "y":3}, + {"label":"2", "x":18, "y":3}, + {"label":"3", "x":19, "y":3}, + {"label":"Field +", "x":20, "y":2, "h":3}, + {"label":"Left", "x":0, "y":4}, + {"label":"Right", "x":1, "y":4}, + {"label":"Error Reset", "x":2.25, "y":4, "w":2}, + {"label":"Space", "x":4.25, "y":4, "w":9.75}, + {"label":"Enter Rec Adv", "x":14, "y":4, "w":2}, + {"label":"0", "x":16, "y":4, "w":2}, + {"label":".", "x":18, "y":4, "w":2} + ] + } + } } diff --git a/keyboards/converter/ibm_5291/readme.md b/keyboards/converter/ibm_5291/readme.md index 06ae2e994e..03406d3f9d 100644 --- a/keyboards/converter/ibm_5291/readme.md +++ b/keyboards/converter/ibm_5291/readme.md @@ -1,6 +1,6 @@ # IBM 5291 keyboard converter -![5291](https://deskthority.net/wiki/IBM_Model_F#IBM_5291_Keyboard) +[IBM 5291](https://deskthority.net/wiki/IBM_Model_F#IBM_5291_Keyboard) A converter for the eponymous keyboard. @@ -14,7 +14,7 @@ Make example for this keyboard (after setting up your build environment): See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). -the pinout is as follows: +The pinout is as follows: IBM−5291−Cable to Pinhead−14 @@ -35,7 +35,8 @@ IBM−5291−Cable to Pinhead−14 13| Strobe 14| Out -the pins on this connector are organized ![here](https://geekhack.org/index.php?action=dlattach;topic=48950.0;attach=36759;image) +The pins on this connector are organized +![here](https://geekhack.org/index.php?action=dlattach;topic=48950.0;attach=36759;image) IBM−5291−2 Cable with DB15M connector @@ -55,10 +56,11 @@ IBM−5291−2 Cable with DB15M connector |14 | PE |15 | NC -the above connector is actually numbered so it should be easier to determine +The above connector is actually numbered so it should be easier to determine where the needed connections are. -to connect to the teensy, the following are pins are needed (if you should choose not set your own): +To connect to the teensy, the following are pins are needed (if you should choose not set your own): + * PB0 -> PB6 are connected to D0 -> D6 * +5V is connected to the corresponding teensy pin * gnd is as well, only one of the gnd pins needs to be connected though. From ff5fcedb10310538ff8fda7b2bb620966e069b2a Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 14 Dec 2018 22:58:57 -0800 Subject: [PATCH 32/38] converter/palm_usb/stowaway: Configurator support (#4655) --- .../converter/palm_usb/stowaway/info.json | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 keyboards/converter/palm_usb/stowaway/info.json diff --git a/keyboards/converter/palm_usb/stowaway/info.json b/keyboards/converter/palm_usb/stowaway/info.json new file mode 100644 index 0000000000..8188d14bd8 --- /dev/null +++ b/keyboards/converter/palm_usb/stowaway/info.json @@ -0,0 +1,83 @@ +{ + "keyboard_name": "Palm Stowaway Serial", + "keyboard_folder": "converter/palm_usb/stowaway", + "url": "", + "maintainer": "qmk", + "width": 15.25, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"1", "x":0.5, "y":0}, + {"label":"2", "x":1.5, "y":0}, + {"label":"3", "x":2.5, "y":0}, + {"label":"4", "x":3.5, "y":0}, + {"label":"5", "x":4.5, "y":0}, + {"label":"6", "x":5.5, "y":0}, + {"label":"7", "x":6.5, "y":0}, + {"label":"8", "x":7.5, "y":0}, + {"label":"9", "x":8.5, "y":0}, + {"label":"0", "x":9.5, "y":0}, + {"label":"MINS", "x":10.5, "y":0}, + {"label":"EQL", "x":11.5, "y":0}, + {"label":"BACK", "x":12.5, "y":0, "w":1.5}, + {"label":"APP0", "x":14.25, "y":1, "h":0.6875}, + {"label":"TAB", "x":0, "y":1}, + {"label":"Q", "x":1, "y":1}, + {"label":"W", "x":2, "y":1}, + {"label":"E", "x":3, "y":1}, + {"label":"R", "x":4, "y":1}, + {"label":"T", "x":5, "y":1}, + {"label":"Y", "x":6, "y":1}, + {"label":"U", "x":7, "y":1}, + {"label":"I", "x":8, "y":1}, + {"label":"O", "x":9, "y":1}, + {"label":"P", "x":10, "y":1}, + {"label":"LBRC", "x":11, "y":1}, + {"label":"RBRC", "x":12, "y":1}, + {"label":"BSLS", "x":13, "y":1}, + {"label":"APP1", "x":14.25, "y":1.6875, "h":0.6875}, + {"label":"CAPS", "x":0, "y":2, "w":1.25}, + {"label":"A", "x":1.25, "y":2}, + {"label":"S", "x":2.25, "y":2}, + {"label":"D", "x":3.25, "y":2}, + {"label":"F", "x":4.25, "y":2}, + {"label":"G", "x":5.25, "y":2}, + {"label":"H", "x":6.25, "y":2}, + {"label":"J", "x":7.25, "y":2}, + {"label":"K", "x":8.25, "y":2}, + {"label":"L", "x":9.25, "y":2}, + {"label":"SCLN", "x":10.25, "y":2}, + {"label":"QUOT", "x":11.25, "y":2}, + {"label":"ENT", "x":12.25, "y":2, "w":1.75}, + {"label":"APP2", "x":14.25, "y":2.375, "h":0.6875}, + {"label":"LSFT", "x":0, "y":3, "w":1.75}, + {"label":"Z", "x":1.75, "y":3}, + {"label":"X", "x":2.75, "y":3}, + {"label":"C", "x":3.75, "y":3}, + {"label":"V", "x":4.75, "y":3}, + {"label":"B", "x":5.75, "y":3}, + {"label":"N", "x":6.75, "y":3}, + {"label":"M", "x":7.75, "y":3}, + {"label":"COMM", "x":8.75, "y":3}, + {"label":"DOT", "x":9.75, "y":3}, + {"label":"SLSH", "x":10.75, "y":3}, + {"label":"RSFT", "x":11.75, "y":3, "w":1.25}, + {"label":"UP", "x":13, "y":3}, + {"label":"APP3", "x":14.25, "y":3.0625, "h":0.6875}, + {"label":"LCTL", "x":0, "y":4, "w":1.25}, + {"label":"FN", "x":1.25, "y":4}, + {"label":"LALT", "x":2.25, "y":4}, + {"label":"CMD", "x":3.25, "y":4}, + {"label":"SPACE", "x":4.25, "y":4, "w":3.5}, + {"label":"SPACE/New", "x":7.75, "y":4}, + {"label":"GRAVE", "x":8.75, "y":4}, + {"label":"DONE", "x":9.75, "y":4}, + {"label":"DEL", "x":10.75, "y":4, "w":1.25}, + {"label":"LEFT", "x":12, "y":4}, + {"label":"DOWN", "x":13, "y":4}, + {"label":"RIGHT", "x":14, "y":4} + ] + } + } +} From 11439c432600bae455d546fba0ad7685a2800948 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 15 Dec 2018 07:25:11 -0800 Subject: [PATCH 33/38] Configurator support for Sun Type 3 and Type 5 USB converters (#4656) * Sun Type 3 USB converter: Configurator support * Sun Type 5 USB converter: Configurator support --- keyboards/converter/sun_usb/type3/info.json | 109 ++++++ keyboards/converter/sun_usb/type5/info.json | 381 ++++++++++++++++++++ 2 files changed, 490 insertions(+) create mode 100644 keyboards/converter/sun_usb/type3/info.json create mode 100644 keyboards/converter/sun_usb/type5/info.json diff --git a/keyboards/converter/sun_usb/type3/info.json b/keyboards/converter/sun_usb/type3/info.json new file mode 100644 index 0000000000..f8525b15cb --- /dev/null +++ b/keyboards/converter/sun_usb/type3/info.json @@ -0,0 +1,109 @@ +{ + "keyboard_name": "Sun Type 3", + "keyboard_folder": "converter/sun_usb/type3", + "url": "", + "maintainer": "qmk", + "width": 21, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"STOP", "x":0, "y":0}, + {"label":"AGAIN", "x":1, "y":0}, + {"label":"CAPS LOCK", "x":2.5, "y":0}, + {"label":"F2", "x":3.5, "y":0}, + {"label":"F3", "x":4.5, "y":0, "w":2}, + {"label":"F4", "x":6.5, "y":0, "w":2}, + {"label":"F5", "x":8.5, "y":0, "w":2}, + {"label":"F6", "x":10.5, "y":0, "w":2}, + {"label":"F7", "x":12.5, "y":0, "w":2}, + {"label":"F8", "x":14.5, "y":0}, + {"label":"F9", "x":15.5, "y":0}, + {"label":"BACKSPACE", "x":16.5, "y":0}, + {"label":"R1", "x":18, "y":0}, + {"label":"R2", "x":19, "y":0}, + {"label":"R3", "x":20, "y":0}, + {"label":"PROPS", "x":0, "y":1}, + {"label":"UNDO", "x":1, "y":1}, + {"label":"ESC", "x":2.5, "y":1}, + {"label":"1", "x":3.5, "y":1}, + {"label":"2", "x":4.5, "y":1}, + {"label":"3", "x":5.5, "y":1}, + {"label":"4", "x":6.5, "y":1}, + {"label":"5", "x":7.5, "y":1}, + {"label":"6", "x":8.5, "y":1}, + {"label":"7", "x":9.5, "y":1}, + {"label":"8", "x":10.5, "y":1}, + {"label":"9", "x":11.5, "y":1}, + {"label":"0", "x":12.5, "y":1}, + {"label":"MINUS", "x":13.5, "y":1}, + {"label":"EQUAL", "x":14.5, "y":1}, + {"label":"BACKSLASH", "x":15.5, "y":1}, + {"label":"GRAVE", "x":16.5, "y":1}, + {"label":"R4", "x":18, "y":1}, + {"label":"R5", "x":19, "y":1}, + {"label":"R6", "x":20, "y":1}, + {"label":"FRONT", "x":0, "y":2}, + {"label":"COPY", "x":1, "y":2}, + {"label":"TAB", "x":2.5, "y":2, "w":1.5}, + {"label":"Q", "x":4, "y":2}, + {"label":"W", "x":5, "y":2}, + {"label":"E", "x":6, "y":2}, + {"label":"R", "x":7, "y":2}, + {"label":"T", "x":8, "y":2}, + {"label":"Y", "x":9, "y":2}, + {"label":"U", "x":10, "y":2}, + {"label":"I", "x":11, "y":2}, + {"label":"O", "x":12, "y":2}, + {"label":"P", "x":13, "y":2}, + {"label":"LBRACKET", "x":14, "y":2}, + {"label":"RBRACKET", "x":15, "y":2}, + {"label":"DELETE", "x":16, "y":2, "w":1.5}, + {"label":"R7", "x":18, "y":2}, + {"label":"R8", "x":19, "y":2}, + {"label":"R9", "x":20, "y":2}, + {"label":"OPEN", "x":0, "y":3}, + {"label":"PASTE", "x":1, "y":3}, + {"label":"CONTROL", "x":2.5, "y":3, "w":1.75}, + {"label":"A", "x":4.25, "y":3}, + {"label":"S", "x":5.25, "y":3}, + {"label":"D", "x":6.25, "y":3}, + {"label":"F", "x":7.25, "y":3}, + {"label":"G", "x":8.25, "y":3}, + {"label":"H", "x":9.25, "y":3}, + {"label":"J", "x":10.25, "y":3}, + {"label":"K", "x":11.25, "y":3}, + {"label":"L", "x":12.25, "y":3}, + {"label":"SEMICOLON", "x":13.25, "y":3}, + {"label":"QUOTE", "x":14.25, "y":3}, + {"label":"RETURN", "x":15.25, "y":3, "w":2.25}, + {"label":"R10", "x":18, "y":3}, + {"label":"R11", "x":19, "y":3}, + {"label":"R12", "x":20, "y":3}, + {"label":"FIND", "x":0, "y":4}, + {"label":"CUT", "x":1, "y":4}, + {"label":"LSHIFT", "x":2.5, "y":4, "w":2.25}, + {"label":"Z", "x":4.75, "y":4}, + {"label":"X", "x":5.75, "y":4}, + {"label":"C", "x":6.75, "y":4}, + {"label":"V", "x":7.75, "y":4}, + {"label":"B", "x":8.75, "y":4}, + {"label":"N", "x":9.75, "y":4}, + {"label":"M", "x":10.75, "y":4}, + {"label":"COMMA", "x":11.75, "y":4}, + {"label":"PERIOD", "x":12.75, "y":4}, + {"label":"SLASH", "x":13.75, "y":4}, + {"label":"RSHIFT", "x":14.75, "y":4, "w":1.75}, + {"label":"LINE FEED", "x":16.5, "y":4}, + {"label":"R13", "x":18, "y":4}, + {"label":"R14", "x":19, "y":4}, + {"label":"R15", "x":20, "y":4}, + {"label":"CAPS", "x":2.5, "y":5, "w":1.25}, + {"label":"LEFT", "x":3.75, "y":5, "w":1.5}, + {"label":"SPACE", "x":5.25, "y":5, "w":9}, + {"label":"RIGHT", "x":14.25, "y":5, "w":1.5}, + {"label":"ALTERNATE", "x":15.75, "y":5, "w":1.75} + ] + } + } +} diff --git a/keyboards/converter/sun_usb/type5/info.json b/keyboards/converter/sun_usb/type5/info.json new file mode 100644 index 0000000000..6785bbc076 --- /dev/null +++ b/keyboards/converter/sun_usb/type5/info.json @@ -0,0 +1,381 @@ +{ + "keyboard_name": "Sun Type 5", + "keyboard_folder": "converter/sun_usb/type5", + "url": "", + "maintainer": "qmk", + "width": 24.75, + "height": 7, + "layouts": { + "LAYOUT_jp_unix": { + "layout": [ + {"label":"HELP", "x":0, "y":0, "w":2}, + {"label":"NO", "x":2.25, "y":0}, + {"label":"F1", "x":4.25, "y":0}, + {"label":"F2", "x":5.25, "y":0}, + {"label":"F3", "x":6.25, "y":0}, + {"label":"F4", "x":7.25, "y":0}, + {"label":"F5", "x":8.75, "y":0}, + {"label":"F6", "x":9.75, "y":0}, + {"label":"F7", "x":10.75, "y":0}, + {"label":"F8", "x":11.75, "y":0}, + {"label":"F9", "x":13.25, "y":0}, + {"label":"F10", "x":14.25, "y":0}, + {"label":"F11", "x":15.25, "y":0}, + {"label":"F12", "x":16.25, "y":0}, + {"label":"PRINT SCREEN", "x":17.5, "y":0}, + {"label":"SCROLL LOCK", "x":18.5, "y":0}, + {"label":"PAUSE", "x":19.5, "y":0}, + {"label":"MUTE", "x":20.75, "y":0}, + {"label":"VOLD", "x":21.75, "y":0}, + {"label":"VOLU", "x":22.75, "y":0}, + {"label":"PWR", "x":23.75, "y":0}, + {"label":"STOP", "x":0, "y":2}, + {"label":"AGAIN", "x":1, "y":2}, + {"label":"ESC", "x":2.25, "y":2}, + {"label":"1", "x":3.25, "y":2}, + {"label":"2", "x":4.25, "y":2}, + {"label":"3", "x":5.25, "y":2}, + {"label":"4", "x":6.25, "y":2}, + {"label":"5", "x":7.25, "y":2}, + {"label":"6", "x":8.25, "y":2}, + {"label":"7", "x":9.25, "y":2}, + {"label":"8", "x":10.25, "y":2}, + {"label":"9", "x":11.25, "y":2}, + {"label":"0", "x":12.25, "y":2}, + {"label":"MINUS", "x":13.25, "y":2}, + {"label":"EQUAL", "x":14.25, "y":2}, + {"label":"BACKSLASH", "x":15.25, "y":2}, + {"label":"GRAVE", "x":16.25, "y":2}, + {"label":"INSERT", "x":17.5, "y":2}, + {"label":"HOME", "x":18.5, "y":2}, + {"label":"PAGE UP", "x":19.5, "y":2}, + {"label":"NUM LOCK", "x":20.75, "y":2}, + {"label":"PSLASH", "x":21.75, "y":2}, + {"label":"PASTERISK", "x":22.75, "y":2}, + {"label":"PMINUS", "x":23.75, "y":2}, + {"label":"MENU", "x":0, "y":3}, + {"label":"UNDO", "x":1, "y":3}, + {"label":"TAB", "x":2.25, "y":3, "w":1.5}, + {"label":"Q", "x":3.75, "y":3}, + {"label":"W", "x":4.75, "y":3}, + {"label":"E", "x":5.75, "y":3}, + {"label":"R", "x":6.75, "y":3}, + {"label":"T", "x":7.75, "y":3}, + {"label":"Y", "x":8.75, "y":3}, + {"label":"U", "x":9.75, "y":3}, + {"label":"I", "x":10.75, "y":3}, + {"label":"O", "x":11.75, "y":3}, + {"label":"P", "x":12.75, "y":3}, + {"label":"LBRACKET", "x":13.75, "y":3}, + {"label":"RBRACKET", "x":14.75, "y":3}, + {"label":"BACKSPACE", "x":15.75, "y":3, "w":1.5}, + {"label":"DELETE", "x":17.5, "y":3}, + {"label":"END", "x":18.5, "y":3}, + {"label":"PAGE DOWN", "x":19.5, "y":3}, + {"label":"P7", "x":20.75, "y":3}, + {"label":"P8", "x":21.75, "y":3}, + {"label":"P9", "x":22.75, "y":3}, + {"label":"PPLUS", "x":23.75, "y":3, "h":2}, + {"label":"SELECT", "x":0, "y":4}, + {"label":"COPY", "x":1, "y":4}, + {"label":"LCTRL", "x":2.25, "y":4, "w":1.75}, + {"label":"A", "x":4, "y":4}, + {"label":"S", "x":5, "y":4}, + {"label":"D", "x":6, "y":4}, + {"label":"F", "x":7, "y":4}, + {"label":"G", "x":8, "y":4}, + {"label":"H", "x":9, "y":4}, + {"label":"J", "x":10, "y":4}, + {"label":"K", "x":11, "y":4}, + {"label":"L", "x":12, "y":4}, + {"label":"SEMICOLON", "x":13, "y":4}, + {"label":"QUOTE", "x":14, "y":4}, + {"label":"ENTER", "x":15, "y":4, "w":2.25}, + {"label":"P4", "x":20.75, "y":4}, + {"label":"P5", "x":21.75, "y":4}, + {"label":"P6", "x":22.75, "y":4}, + {"label":"EXECUTE", "x":0, "y":5}, + {"label":"PASTE", "x":1, "y":5}, + {"label":"LSHIFT", "x":2.25, "y":5, "w":2.25}, + {"label":"Z", "x":4.5, "y":5}, + {"label":"X", "x":5.5, "y":5}, + {"label":"C", "x":6.5, "y":5}, + {"label":"V", "x":7.5, "y":5}, + {"label":"B", "x":8.5, "y":5}, + {"label":"N", "x":9.5, "y":5}, + {"label":"M", "x":10.5, "y":5}, + {"label":"COMMA", "x":11.5, "y":5}, + {"label":"PERIOD", "x":12.5, "y":5}, + {"label":"SLASH", "x":13.5, "y":5}, + {"label":"RSHIFT", "x":14.5, "y":5, "w":2.75}, + {"label":"UP", "x":18.5, "y":5}, + {"label":"P1", "x":20.75, "y":5}, + {"label":"P2", "x":21.75, "y":5}, + {"label":"P3", "x":22.75, "y":5}, + {"label":"PENTER", "x":23.75, "y":5, "h":2}, + {"label":"FIND", "x":0, "y":6}, + {"label":"CUT", "x":1, "y":6}, + {"label":"CAPS LOCK", "x":2.25, "y":6}, + {"label":"LALT", "x":3.25, "y":6}, + {"label":"LGUI", "x":4.25, "y":6}, + {"label":"HENKAN", "x":5.25, "y":6, "w":1.5}, + {"label":"SPACE", "x":6.75, "y":6, "w":5}, + {"label":"MUHENKAN", "x":11.75, "y":6, "w":1.5}, + {"label":"KANA", "x":13.25, "y":6}, + {"label":"RGUI", "x":14.25, "y":6}, + {"label":"APP", "x":15.25, "y":6}, + {"label":"RALT", "x":16.25, "y":6}, + {"label":"LEFT", "x":17.5, "y":6}, + {"label":"DOWN", "x":18.5, "y":6}, + {"label":"RIGHT", "x":19.5, "y":6}, + {"label":"P0", "x":20.75, "y":6, "w":2}, + {"label":"PDOT", "x":22.75, "y":6} + ] + }, + "LAYOUT_us_unix": { + "layout": [ + {"label":"HELP", "x":0, "y":0, "w":2}, + {"label":"NO", "x":2.25, "y":0}, + {"label":"F1", "x":4.25, "y":0}, + {"label":"F2", "x":5.25, "y":0}, + {"label":"F3", "x":6.25, "y":0}, + {"label":"F4", "x":7.25, "y":0}, + {"label":"F5", "x":8.75, "y":0}, + {"label":"F6", "x":9.75, "y":0}, + {"label":"F7", "x":10.75, "y":0}, + {"label":"F8", "x":11.75, "y":0}, + {"label":"F9", "x":13.25, "y":0}, + {"label":"F10", "x":14.25, "y":0}, + {"label":"F11", "x":15.25, "y":0}, + {"label":"F12", "x":16.25, "y":0}, + {"label":"PRINT SCREEN", "x":17.5, "y":0}, + {"label":"SCROLL LOCK", "x":18.5, "y":0}, + {"label":"PAUSE", "x":19.5, "y":0}, + {"label":"MUTE", "x":20.75, "y":0}, + {"label":"VOLD", "x":21.75, "y":0}, + {"label":"VOLU", "x":22.75, "y":0}, + {"label":"PWR", "x":23.75, "y":0}, + {"label":"STOP", "x":0, "y":2}, + {"label":"AGAIN", "x":1, "y":2}, + {"label":"ESC", "x":2.25, "y":2}, + {"label":"1", "x":3.25, "y":2}, + {"label":"2", "x":4.25, "y":2}, + {"label":"3", "x":5.25, "y":2}, + {"label":"4", "x":6.25, "y":2}, + {"label":"5", "x":7.25, "y":2}, + {"label":"6", "x":8.25, "y":2}, + {"label":"7", "x":9.25, "y":2}, + {"label":"8", "x":10.25, "y":2}, + {"label":"9", "x":11.25, "y":2}, + {"label":"0", "x":12.25, "y":2}, + {"label":"MINUS", "x":13.25, "y":2}, + {"label":"EQUAL", "x":14.25, "y":2}, + {"label":"BACKSLASH", "x":15.25, "y":2}, + {"label":"GRAVE", "x":16.25, "y":2}, + {"label":"INSERT", "x":17.5, "y":2}, + {"label":"HOME", "x":18.5, "y":2}, + {"label":"PAGE UP", "x":19.5, "y":2}, + {"label":"NUM LOCK", "x":20.75, "y":2}, + {"label":"PSLASH", "x":21.75, "y":2}, + {"label":"PASTERISK", "x":22.75, "y":2}, + {"label":"PMINUS", "x":23.75, "y":2}, + {"label":"MENU", "x":0, "y":3}, + {"label":"UNDO", "x":1, "y":3}, + {"label":"TAB", "x":2.25, "y":3, "w":1.5}, + {"label":"Q", "x":3.75, "y":3}, + {"label":"W", "x":4.75, "y":3}, + {"label":"E", "x":5.75, "y":3}, + {"label":"R", "x":6.75, "y":3}, + {"label":"T", "x":7.75, "y":3}, + {"label":"Y", "x":8.75, "y":3}, + {"label":"U", "x":9.75, "y":3}, + {"label":"I", "x":10.75, "y":3}, + {"label":"O", "x":11.75, "y":3}, + {"label":"P", "x":12.75, "y":3}, + {"label":"LBRACKET", "x":13.75, "y":3}, + {"label":"RBRACKET", "x":14.75, "y":3}, + {"label":"BACKSPACE", "x":15.75, "y":3, "w":1.5}, + {"label":"DELETE", "x":17.5, "y":3}, + {"label":"END", "x":18.5, "y":3}, + {"label":"PAGE DOWN", "x":19.5, "y":3}, + {"label":"P7", "x":20.75, "y":3}, + {"label":"P8", "x":21.75, "y":3}, + {"label":"P9", "x":22.75, "y":3}, + {"label":"PPLUS", "x":23.75, "y":3, "h":2}, + {"label":"SELECT", "x":0, "y":4}, + {"label":"COPY", "x":1, "y":4}, + {"label":"LCTRL", "x":2.25, "y":4, "w":1.75}, + {"label":"A", "x":4, "y":4}, + {"label":"S", "x":5, "y":4}, + {"label":"D", "x":6, "y":4}, + {"label":"F", "x":7, "y":4}, + {"label":"G", "x":8, "y":4}, + {"label":"H", "x":9, "y":4}, + {"label":"J", "x":10, "y":4}, + {"label":"K", "x":11, "y":4}, + {"label":"L", "x":12, "y":4}, + {"label":"SEMICOLON", "x":13, "y":4}, + {"label":"QUOTE", "x":14, "y":4}, + {"label":"ENTER", "x":15, "y":4, "w":2.25}, + {"label":"P4", "x":20.75, "y":4}, + {"label":"P5", "x":21.75, "y":4}, + {"label":"P6", "x":22.75, "y":4}, + {"label":"EXECUTE", "x":0, "y":5}, + {"label":"PASTE", "x":1, "y":5}, + {"label":"LSHIFT", "x":2.25, "y":5, "w":2.25}, + {"label":"Z", "x":4.5, "y":5}, + {"label":"X", "x":5.5, "y":5}, + {"label":"C", "x":6.5, "y":5}, + {"label":"V", "x":7.5, "y":5}, + {"label":"B", "x":8.5, "y":5}, + {"label":"N", "x":9.5, "y":5}, + {"label":"M", "x":10.5, "y":5}, + {"label":"COMMA", "x":11.5, "y":5}, + {"label":"PERIOD", "x":12.5, "y":5}, + {"label":"SLASH", "x":13.5, "y":5}, + {"label":"RSHIFT", "x":14.5, "y":5, "w":2.75}, + {"label":"UP", "x":18.5, "y":5}, + {"label":"P1", "x":20.75, "y":5}, + {"label":"P2", "x":21.75, "y":5}, + {"label":"P3", "x":22.75, "y":5}, + {"label":"PENTER", "x":23.75, "y":5, "h":2}, + {"label":"FIND", "x":0, "y":6}, + {"label":"CUT", "x":1, "y":6}, + {"label":"CAPS LOCK", "x":2.25, "y":6, "w":1.75}, + {"label":"LALT", "x":4, "y":6}, + {"label":"LGUI", "x":5, "y":6}, + {"label":"SPACE", "x":6, "y":6, "w":8.25}, + {"label":"RGUI", "x":14.25, "y":6}, + {"label":"APP", "x":15.25, "y":6}, + {"label":"RALT", "x":16.25, "y":6}, + {"label":"LEFT", "x":17.5, "y":6}, + {"label":"DOWN", "x":18.5, "y":6}, + {"label":"RIGHT", "x":19.5, "y":6}, + {"label":"P0", "x":20.75, "y":6, "w":2}, + {"label":"PDOT", "x":22.75, "y":6} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"label":"HELP", "x":0, "y":0, "w":2}, + {"label":"ESC", "x":2.25, "y":0}, + {"label":"F1", "x":4.25, "y":0}, + {"label":"F2", "x":5.25, "y":0}, + {"label":"F3", "x":6.25, "y":0}, + {"label":"F4", "x":7.25, "y":0}, + {"label":"F5", "x":8.75, "y":0}, + {"label":"F6", "x":9.75, "y":0}, + {"label":"F7", "x":10.75, "y":0}, + {"label":"F8", "x":11.75, "y":0}, + {"label":"F9", "x":13.25, "y":0}, + {"label":"F10", "x":14.25, "y":0}, + {"label":"F11", "x":15.25, "y":0}, + {"label":"F12", "x":16.25, "y":0}, + {"label":"PRINT SCREEN", "x":17.5, "y":0}, + {"label":"SCROLL LOCK", "x":18.5, "y":0}, + {"label":"PAUSE", "x":19.5, "y":0}, + {"label":"MUTE", "x":20.75, "y":0}, + {"label":"VOLD", "x":21.75, "y":0}, + {"label":"VOLU", "x":22.75, "y":0}, + {"label":"PWR", "x":23.75, "y":0}, + {"label":"STOP", "x":0, "y":2}, + {"label":"AGAIN", "x":1, "y":2}, + {"label":"GRAVE", "x":2.25, "y":2}, + {"label":"1", "x":3.25, "y":2}, + {"label":"2", "x":4.25, "y":2}, + {"label":"3", "x":5.25, "y":2}, + {"label":"4", "x":6.25, "y":2}, + {"label":"5", "x":7.25, "y":2}, + {"label":"6", "x":8.25, "y":2}, + {"label":"7", "x":9.25, "y":2}, + {"label":"8", "x":10.25, "y":2}, + {"label":"9", "x":11.25, "y":2}, + {"label":"0", "x":12.25, "y":2}, + {"label":"MINUS", "x":13.25, "y":2}, + {"label":"EQUAL", "x":14.25, "y":2}, + {"label":"BACKSPACE", "x":15.25, "y":2, "w":2}, + {"label":"INSERT", "x":17.5, "y":2}, + {"label":"HOME", "x":18.5, "y":2}, + {"label":"PAGE UP", "x":19.5, "y":2}, + {"label":"NUM LOCK", "x":20.75, "y":2}, + {"label":"PSLASH", "x":21.75, "y":2}, + {"label":"PASTERISK", "x":22.75, "y":2}, + {"label":"PMINUS", "x":23.75, "y":2}, + {"label":"MENU", "x":0, "y":3}, + {"label":"UNDO", "x":1, "y":3}, + {"label":"TAB", "x":2.25, "y":3, "w":1.5}, + {"label":"Q", "x":3.75, "y":3}, + {"label":"W", "x":4.75, "y":3}, + {"label":"E", "x":5.75, "y":3}, + {"label":"R", "x":6.75, "y":3}, + {"label":"T", "x":7.75, "y":3}, + {"label":"Y", "x":8.75, "y":3}, + {"label":"U", "x":9.75, "y":3}, + {"label":"I", "x":10.75, "y":3}, + {"label":"O", "x":11.75, "y":3}, + {"label":"P", "x":12.75, "y":3}, + {"label":"LBRACKET", "x":13.75, "y":3}, + {"label":"RBRACKET", "x":14.75, "y":3}, + {"label":"BACKSLASH", "x":15.75, "y":3, "w":1.5}, + {"label":"DELETE", "x":17.5, "y":3}, + {"label":"END", "x":18.5, "y":3}, + {"label":"PAGE DOWN", "x":19.5, "y":3}, + {"label":"P7", "x":20.75, "y":3}, + {"label":"P8", "x":21.75, "y":3}, + {"label":"P9", "x":22.75, "y":3}, + {"label":"PPLUS", "x":23.75, "y":3, "h":2}, + {"label":"SELECT", "x":0, "y":4}, + {"label":"COPY", "x":1, "y":4}, + {"label":"CAPS LOCK", "x":2.25, "y":4, "w":1.75}, + {"label":"A", "x":4, "y":4}, + {"label":"S", "x":5, "y":4}, + {"label":"D", "x":6, "y":4}, + {"label":"F", "x":7, "y":4}, + {"label":"G", "x":8, "y":4}, + {"label":"H", "x":9, "y":4}, + {"label":"J", "x":10, "y":4}, + {"label":"K", "x":11, "y":4}, + {"label":"L", "x":12, "y":4}, + {"label":"SEMICOLON", "x":13, "y":4}, + {"label":"QUOTE", "x":14, "y":4}, + {"label":"ENTER", "x":15, "y":4, "w":2.25}, + {"label":"P4", "x":20.75, "y":4}, + {"label":"P5", "x":21.75, "y":4}, + {"label":"P6", "x":22.75, "y":4}, + {"label":"EXECUTE", "x":0, "y":5}, + {"label":"PASTE", "x":1, "y":5}, + {"label":"LSHIFT", "x":2.25, "y":5, "w":2.25}, + {"label":"Z", "x":4.5, "y":5}, + {"label":"X", "x":5.5, "y":5}, + {"label":"C", "x":6.5, "y":5}, + {"label":"V", "x":7.5, "y":5}, + {"label":"B", "x":8.5, "y":5}, + {"label":"N", "x":9.5, "y":5}, + {"label":"M", "x":10.5, "y":5}, + {"label":"COMMA", "x":11.5, "y":5}, + {"label":"PERIOD", "x":12.5, "y":5}, + {"label":"SLASH", "x":13.5, "y":5}, + {"label":"RSHIFT", "x":14.5, "y":5, "w":2.75}, + {"label":"UP", "x":18.5, "y":5}, + {"label":"P1", "x":20.75, "y":5}, + {"label":"P2", "x":21.75, "y":5}, + {"label":"P3", "x":22.75, "y":5}, + {"label":"PENTER", "x":23.75, "y":5, "h":2}, + {"label":"FIND", "x":0, "y":6}, + {"label":"CUT", "x":1, "y":6}, + {"label":"LCTRL", "x":2.25, "y":6, "w":1.75}, + {"label":"LALT", "x":4, "y":6}, + {"label":"LGUI", "x":5, "y":6}, + {"label":"SPACE", "x":6, "y":6, "w":8.25}, + {"label":"RGUI", "x":14.25, "y":6}, + {"label":"APP", "x":15.25, "y":6}, + {"label":"RALT", "x":16.25, "y":6}, + {"label":"LEFT", "x":17.5, "y":6}, + {"label":"DOWN", "x":18.5, "y":6}, + {"label":"RIGHT", "x":19.5, "y":6}, + {"label":"P0", "x":20.75, "y":6, "w":2}, + {"label":"PDOT", "x":22.75, "y":6} + ] + } + } +} From 72bd17f2902c82ef84b9134433facb21ad696fbb Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 15 Dec 2018 07:25:29 -0800 Subject: [PATCH 34/38] converter/xt_usb: Configurator support (#4657) --- keyboards/converter/xt_usb/info.json | 229 +++++++++++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 keyboards/converter/xt_usb/info.json diff --git a/keyboards/converter/xt_usb/info.json b/keyboards/converter/xt_usb/info.json new file mode 100644 index 0000000000..1fde77d1f9 --- /dev/null +++ b/keyboards/converter/xt_usb/info.json @@ -0,0 +1,229 @@ +{ + "keyboard_name": "IBM PC XT", + "keyboard_folder": "converter/xt_usb", + "url": "", + "maintainer": "qmk", + "width": 21, + "height": 5, + "layouts": { + "LAYOUT_xt": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"Esc", "x":2.25, "y":0}, + {"label":"1", "x":3.25, "y":0}, + {"label":"2", "x":4.25, "y":0}, + {"label":"3", "x":5.25, "y":0}, + {"label":"4", "x":6.25, "y":0}, + {"label":"5", "x":7.25, "y":0}, + {"label":"6", "x":8.25, "y":0}, + {"label":"7", "x":9.25, "y":0}, + {"label":"8", "x":10.25, "y":0}, + {"label":"9", "x":11.25, "y":0}, + {"label":"0", "x":12.25, "y":0}, + {"label":"-", "x":13.25, "y":0}, + {"label":"=", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0, "w":1.75}, + {"label":"Num Lock", "x":17, "y":0, "w":2}, + {"label":"Scroll Lock", "x":19, "y":0, "w":2}, + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"[", "x":13.75, "y":1}, + {"label":"]", "x":14.75, "y":1}, + {"label":"7", "x":17, "y":1}, + {"label":"8", "x":18, "y":1}, + {"label":"9", "x":19, "y":1}, + {"label":"-", "x":20, "y":1}, + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Ctrl", "x":2.25, "y":2, "w":1.75}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":";", "x":13, "y":2}, + {"label":"'", "x":14, "y":2}, + {"label":"`", "x":15, "y":2}, + {"label":"Enter", "x":16, "y":1, "h":2}, + {"label":"4", "x":17, "y":2}, + {"label":"5", "x":18, "y":2}, + {"label":"6", "x":19, "y":2}, + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":1.25}, + {"label":"\\", "x":3.5, "y":3}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":",", "x":11.5, "y":3}, + {"label":".", "x":12.5, "y":3}, + {"label":"/", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.5}, + {"label":"Print Screen", "x":16, "y":3}, + {"label":"1", "x":17, "y":3}, + {"label":"2", "x":18, "y":3}, + {"label":"3", "x":19, "y":3}, + {"label":"+", "x":20, "y":2, "h":3}, + {"label":"F9", "x":0, "y":4}, + {"label":"F10", "x":1, "y":4}, + {"label":"Alt", "x":2.25, "y":4, "w":2}, + {"label":"Space", "x":4.25, "y":4, "w":9.75}, + {"label":"Caps Lock", "x":14, "y":4, "w":2}, + {"label":"0", "x":16, "y":4, "w":2}, + {"label":".", "x":18, "y":4, "w":2} + ] + }, + "LAYOUT": { + "layout": [ + {"label":"F13", "x":2, "y":0}, + {"label":"F14", "x":3, "y":0}, + {"label":"F15", "x":4, "y":0}, + {"label":"F16", "x":5, "y":0}, + {"label":"F17", "x":6, "y":0}, + {"label":"F18", "x":7, "y":0}, + {"label":"F19", "x":8, "y":0}, + {"label":"F20", "x":9, "y":0}, + {"label":"F21", "x":10, "y":0}, + {"label":"F22", "x":11, "y":0}, + {"label":"F23", "x":12, "y":0}, + {"label":"F24", "x":13, "y":0}, + {"label":"Esc", "x":0, "y":1}, + {"label":"F1", "x":2, "y":1}, + {"label":"F2", "x":3, "y":1}, + {"label":"F3", "x":4, "y":1}, + {"label":"F4", "x":5, "y":1}, + {"label":"F5", "x":6, "y":1}, + {"label":"F6", "x":7, "y":1}, + {"label":"F7", "x":8, "y":1}, + {"label":"F8", "x":9, "y":1}, + {"label":"F9", "x":10, "y":1}, + {"label":"F10", "x":11, "y":1}, + {"label":"F11", "x":12, "y":1}, + {"label":"F12", "x":13, "y":1}, + {"label":"Print Screen", "x":15.25, "y":1}, + {"label":"Scroll Lock", "x":16.25, "y":1}, + {"label":"Pause", "x":17.25, "y":1}, + {"label":"Volume Down", "x":19.5, "y":1}, + {"label":"Volume Up", "x":20.5, "y":1}, + {"label":"Mute", "x":21.5, "y":1}, + {"label":"`", "x":0, "y":2.5}, + {"label":"1", "x":1, "y":2.5}, + {"label":"2", "x":2, "y":2.5}, + {"label":"3", "x":3, "y":2.5}, + {"label":"4", "x":4, "y":2.5}, + {"label":"5", "x":5, "y":2.5}, + {"label":"6", "x":6, "y":2.5}, + {"label":"7", "x":7, "y":2.5}, + {"label":"8", "x":8, "y":2.5}, + {"label":"9", "x":9, "y":2.5}, + {"label":"0", "x":10, "y":2.5}, + {"label":"-", "x":11, "y":2.5}, + {"label":"=", "x":12, "y":2.5}, + {"label":"JP Yen", "x":13, "y":2.5}, + {"label":"Back Space", "x":14, "y":2.5}, + {"label":"Insert", "x":15.25, "y":2.5}, + {"label":"Home", "x":16.25, "y":2.5}, + {"label":"Page Up", "x":17.25, "y":2.5}, + {"label":"Num Lock", "x":18.5, "y":2.5}, + {"label":"KP/", "x":19.5, "y":2.5}, + {"label":"KP*", "x":20.5, "y":2.5}, + {"label":"KP-", "x":21.5, "y":2.5}, + {"label":"Tab", "x":0, "y":3.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":3.5}, + {"label":"W", "x":2.5, "y":3.5}, + {"label":"E", "x":3.5, "y":3.5}, + {"label":"R", "x":4.5, "y":3.5}, + {"label":"T", "x":5.5, "y":3.5}, + {"label":"Y", "x":6.5, "y":3.5}, + {"label":"U", "x":7.5, "y":3.5}, + {"label":"I", "x":8.5, "y":3.5}, + {"label":"O", "x":9.5, "y":3.5}, + {"label":"P", "x":10.5, "y":3.5}, + {"label":"[", "x":11.5, "y":3.5}, + {"label":"]", "x":12.5, "y":3.5}, + {"label":"\\", "x":13.5, "y":3.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":3.5}, + {"label":"End", "x":16.25, "y":3.5}, + {"label":"Page Down", "x":17.25, "y":3.5}, + {"label":"KP 7", "x":18.5, "y":3.5}, + {"label":"KP 8", "x":19.5, "y":3.5}, + {"label":"KP 9", "x":20.5, "y":3.5}, + {"label":"KP+", "x":21.5, "y":3.5}, + {"label":"Caps Lock", "x":0, "y":4.5, "w":1.75}, + {"label":"A", "x":1.75, "y":4.5}, + {"label":"S", "x":2.75, "y":4.5}, + {"label":"D", "x":3.75, "y":4.5}, + {"label":"F", "x":4.75, "y":4.5}, + {"label":"G", "x":5.75, "y":4.5}, + {"label":"H", "x":6.75, "y":4.5}, + {"label":"J", "x":7.75, "y":4.5}, + {"label":"K", "x":8.75, "y":4.5}, + {"label":"L", "x":9.75, "y":4.5}, + {"label":";", "x":10.75, "y":4.5}, + {"label":"'", "x":11.75, "y":4.5}, + {"label":"ISO #", "x":12.75, "y":4.5}, + {"label":"Enter", "x":13.75, "y":4.5, "w":1.25}, + {"label":"KP 4", "x":18.5, "y":4.5}, + {"label":"KP 5", "x":19.5, "y":4.5}, + {"label":"KP 6", "x":20.5, "y":4.5}, + {"label":"KP ,", "x":21.5, "y":4.5}, + {"label":"Shift", "x":0, "y":5.5, "w":1.25}, + {"label":"ISO \\", "x":1.25, "y":5.5}, + {"label":"Z", "x":2.25, "y":5.5}, + {"label":"X", "x":3.25, "y":5.5}, + {"label":"C", "x":4.25, "y":5.5}, + {"label":"V", "x":5.25, "y":5.5}, + {"label":"B", "x":6.25, "y":5.5}, + {"label":"N", "x":7.25, "y":5.5}, + {"label":"M", "x":8.25, "y":5.5}, + {"label":",", "x":9.25, "y":5.5}, + {"label":".", "x":10.25, "y":5.5}, + {"label":"/", "x":11.25, "y":5.5}, + {"label":"JP RO", "x":12.25, "y":5.5}, + {"label":"Shift", "x":13.25, "y":5.5, "w":1.75}, + {"label":"Up", "x":16.25, "y":5.5}, + {"label":"KP 1", "x":18.5, "y":5.5}, + {"label":"KP 2", "x":19.5, "y":5.5}, + {"label":"KP 3", "x":20.5, "y":5.5}, + {"label":"KP Enter", "x":21.5, "y":5.5}, + {"label":"Ctrl", "x":0, "y":6.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":6.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":6.5, "w":1.25}, + {"label":"Muhenkan", "x":3.75, "y":6.5, "w":1.25}, + {"label":"Space", "x":5, "y":6.5, "w":3.25}, + {"label":"Henkan", "x":8.25, "y":6.5, "w":1.25}, + {"label":"Kana", "x":9.5, "y":6.5, "w":1.25}, + {"label":"Alt", "x":10.75, "y":6.5}, + {"label":"GUI", "x":11.75, "y":6.5}, + {"label":"Menu", "x":12.75, "y":6.5}, + {"label":"Ctrl", "x":13.75, "y":6.5, "w":1.25}, + {"label":"Left", "x":15.25, "y":6.5}, + {"label":"Down", "x":16.25, "y":6.5}, + {"label":"Right", "x":17.25, "y":6.5}, + {"label":"KP 0", "x":18.5, "y":6.5, "w":2}, + {"label":"KP .", "x":20.5, "y":6.5}, + {"label":"KP =", "x":21.5, "y":6.5} + ] + } + } +} From 3ec4a00bfc090fc440480336e3273b459074aa18 Mon Sep 17 00:00:00 2001 From: Alexander Kagno Date: Sat, 15 Dec 2018 08:29:24 -0700 Subject: [PATCH 35/38] Per Key Leader Timing Option (#4026) * leader changes to enable per key timing option * Changes requested to docs for @drashna * Changes requested by @drashna --- docs/config_options.md | 6 +++++- docs/feature_leader_key.md | 23 +++++++++++++++++++++++ quantum/process_keycode/process_leader.c | 6 ++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/docs/config_options.md b/docs/config_options.md index bea4acb010..fb1655e9a3 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -143,6 +143,8 @@ If you define these options you will enable the associated feature, which may in * Breaks any Tap Toggle functionality (`TT` or the One Shot Tap Toggle) * `#define LEADER_TIMEOUT 300` * how long before the leader key times out +* `#define LEADER_PER_KEY_TIMING` + * sets the timer for leader key chords to run on each key press rather than overall * `#define ONESHOT_TIMEOUT 300` * how long before oneshot times out * `#define ONESHOT_TAP_TOGGLE 2` @@ -194,7 +196,7 @@ Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in yo * `#define SPLIT_HAND_PIN B7` * For using high/low pin to determine handedness, low = right hand, high = left hand. Replace 'B7' with the pin you are using. This is optional and you can still use the EEHANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses. - + * `#define USE_I2C` * For using I2C instead of Serial (defaults to serial) @@ -252,6 +254,8 @@ Use these to enable or disable building certain features. The more you have enab * Enable the audio subsystem. * `RGBLIGHT_ENABLE` * Enable keyboard underlight functionality +* `LEADER_ENABLE` + * Enable leader key chording * `MIDI_ENABLE` * MIDI controls * `UNICODE_ENABLE` diff --git a/docs/feature_leader_key.md b/docs/feature_leader_key.md index 92aebd463d..9b49e0fd96 100644 --- a/docs/feature_leader_key.md +++ b/docs/feature_leader_key.md @@ -47,3 +47,26 @@ To add support for Leader Key you simply need to add a single line to your keyma ``` LEADER_ENABLE = yes ``` + +## Per Key Timing on Leader keys + +Rather than relying on an incredibly high timeout for long leader key strings or those of us without 200wpm typing skills, we can enable per key timing to ensure that each key pressed provides us with more time to finish our stroke. This is incredibly helpful with leader key emulation of tap dance (read: multiple taps of the same key like C, C, C). + +In order to enable this, place this in your `config.h`: +``` +#define LEADER_PER_KEY_TIMING +``` + +After this, it's recommended that you lower your `LEADER_TIMEOUT` to something less that 300ms. + +``` +#define LEADER_TIMEOUT 250 +``` + +Now, something like this won't seem impossible to do without a 1000MS leader key timeout: + +``` +SEQ_THREE_KEYS(KC_C, KC_C, KC_C) { + SEND_STRING("Per key timing is great!!!"); +} +``` diff --git a/quantum/process_keycode/process_leader.c b/quantum/process_keycode/process_leader.c index eddbf71f70..b32fc1db6a 100644 --- a/quantum/process_keycode/process_leader.c +++ b/quantum/process_keycode/process_leader.c @@ -38,9 +38,15 @@ uint8_t leader_sequence_size = 0; bool process_leader(uint16_t keycode, keyrecord_t *record) { // Leader key set-up if (record->event.pressed) { +#ifdef LEADER_PER_KEY_TIMING + leader_time = timer_read(); +#endif if (!leading && keycode == KC_LEAD) { leader_start(); leading = true; +#ifndef LEADER_PER_KEY_TIMING + leader_time = timer_read(); +#endif leader_time = timer_read(); leader_sequence_size = 0; leader_sequence[0] = 0; From 6172e55489b225f874125e801ca4b3d5a956f781 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 15 Dec 2018 13:39:05 -0800 Subject: [PATCH 36/38] Ergo42: Configurator patch (#4664) Wasn't rendering in Configurator as intended. Updated JSON data to use alias name instead of macro name. --- keyboards/ergo42/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ergo42/info.json b/keyboards/ergo42/info.json index 6489e25a80..cac5a46a14 100644 --- a/keyboards/ergo42/info.json +++ b/keyboards/ergo42/info.json @@ -5,7 +5,7 @@ "width": 15, "height": 4, "layouts": { - "LAYOUT_ortho_4x14": { + "LAYOUT": { "key_count": 56, "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":"L06", "x":6, "y":0}, {"label":"R00", "x":8, "y":0}, {"label":"R01", "x":9, "y":0}, {"label":"R02", "x":10, "y":0}, {"label":"R03", "x":11, "y":0}, {"label":"R04", "x":12, "y":0}, {"label":"R05", "x":13, "y":0}, {"label":"R06", "x":14, "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":"L16", "x":6, "y":1}, {"label":"R10", "x":8, "y":1}, {"label":"R11", "x":9, "y":1}, {"label":"R12", "x":10, "y":1}, {"label":"R13", "x":11, "y":1}, {"label":"R14", "x":12, "y":1}, {"label":"R15", "x":13, "y":1}, {"label":"R16", "x":14, "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":"L26", "x":6, "y":2}, {"label":"R20", "x":8, "y":2}, {"label":"R21", "x":9, "y":2}, {"label":"R22", "x":10, "y":2}, {"label":"R23", "x":11, "y":2}, {"label":"R24", "x":12, "y":2}, {"label":"R25", "x":13, "y":2}, {"label":"R26", "x":14, "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":"L36", "x":6, "y":3}, {"label":"R30", "x":8, "y":3}, {"label":"R31", "x":9, "y":3}, {"label":"R32", "x":10, "y":3}, {"label":"R33", "x":11, "y":3}, {"label":"R34", "x":12, "y":3}, {"label":"R35", "x":13, "y":3}, {"label":"R36", "x":14, "y":3}] } From 5ec327ad9974145e209146825e966aaf4a15d32d Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 15 Dec 2018 13:39:34 -0800 Subject: [PATCH 37/38] Cospad Configurator and readme update (#4663) * Cospad: Configurator update - added LAYOUT_gamepad_6x4 data - renders as 4 rows by 6 columns visually - fixed LAYOUT_numpad_6x4 data - JSON objects were in the wrong order * Cospad: readme update - markdown formatting fixes - made Hardware Availability address a hyperlink - updated Docs links --- keyboards/cospad/info.json | 77 +++++++++++++++++++++++++++++++------- keyboards/cospad/readme.md | 6 +-- 2 files changed, 67 insertions(+), 16 deletions(-) diff --git a/keyboards/cospad/info.json b/keyboards/cospad/info.json index 4fd2ea087f..b34013a47a 100644 --- a/keyboards/cospad/info.json +++ b/keyboards/cospad/info.json @@ -1,16 +1,67 @@ { - "keyboard_name": "", - "url": "", - "maintainer": "qmk", - "width": 4, - "height": 6, - "layouts": { - "LAYOUT_numpad_6x4": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Tab", "x":1, "y":0}, {"label":"Fn", "x":2, "y":0}, {"label":"Back", "x":3, "y":0}, {"label":"Num Lock", "x":0, "y":1}, {"label":"/", "x":1, "y":1}, {"label":"*", "x":2, "y":1}, {"label":"-", "x":3, "y":1}, {"label":"7", "x":0, "y":2}, {"label":"8", "x":1, "y":2}, {"label":"9", "x":2, "y":2}, {"label":"+", "x":3, "y":2, "h":2}, {"label":"4", "x":0, "y":3}, {"label":"5", "x":1, "y":3}, {"label":"6", "x":2, "y":3}, {"label":"1", "x":0, "y":4}, {"label":"2", "x":1, "y":4}, {"label":"3", "x":2, "y":4}, {"label":"Enter", "x":3, "y":4, "h":2}, {"label":"0", "x":0, "y":5, "w":2}, {"label":".", "x":2, "y":5}] - }, + "keyboard_name": "Cospad", + "keyboard_folder": "cospad", + "url": "", + "maintainer": "qmk", + "width": 4, + "height": 6, + "layouts": { + "LAYOUT_numpad_6x4": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"Tab", "x":1, "y":0}, + {"label":"Fn", "x":2, "y":0}, + {"label":"Back", "x":3, "y":0}, + {"label":"Num Lock", "x":0, "y":1}, + {"label":"/", "x":1, "y":1}, + {"label":"*", "x":2, "y":1}, + {"label":"-", "x":3, "y":1}, + {"label":"7", "x":0, "y":2}, + {"label":"8", "x":1, "y":2}, + {"label":"9", "x":2, "y":2}, + {"label":"4", "x":0, "y":3}, + {"label":"5", "x":1, "y":3}, + {"label":"6", "x":2, "y":3}, + {"label":"+", "x":3, "y":2, "h":2}, + {"label":"1", "x":0, "y":4}, + {"label":"2", "x":1, "y":4}, + {"label":"3", "x":2, "y":4}, + {"label":"0", "x":0, "y":5, "w":2}, + {"label":".", "x":2, "y":5}, + {"label":"Enter", "x":3, "y":4, "h":2} + ] + }, - "LAYOUT_ortho_6x4": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Tab", "x":1, "y":0}, {"label":"Fn", "x":2, "y":0}, {"label":"Back", "x":3, "y":0}, {"label":"Num Lock", "x":0, "y":1}, {"label":"/", "x":1, "y":1}, {"label":"*", "x":2, "y":1}, {"label":"-", "x":3, "y":1}, {"label":"7", "x":0, "y":2}, {"label":"8", "x":1, "y":2}, {"label":"9", "x":2, "y":2}, {"label":"+", "x":3, "y":2}, {"label":"4", "x":0, "y":3}, {"label":"5", "x":1, "y":3}, {"label":"6", "x":2, "y":3}, {"x":3, "y":3}, {"label":"1", "x":0, "y":4}, {"label":"2", "x":1, "y":4}, {"label":"3", "x":2, "y":4}, {"label":"Enter", "x":3, "y":4}, {"label":"0", "x":0, "y":5}, {"x":1, "y":5}, {"label":".", "x":2, "y":5}, {"x":3, "y":5}] - } + "LAYOUT_gamepad_6x4": { + "layout": [ + {"label":"k00", "x":5, "y":0}, + {"label":"k01", "x":5, "y":1}, + {"label":"k02", "x":5, "y":2}, + {"label":"k03", "x":5, "y":3}, + {"label":"k10", "x":4, "y":0}, + {"label":"k11", "x":4, "y":1}, + {"label":"k12", "x":4, "y":2}, + {"label":"k13", "x":4, "y":3}, + {"label":"k20", "x":3, "y":0}, + {"label":"k21", "x":3, "y":1}, + {"label":"k22", "x":3, "y":2}, + {"label":"k30", "x":2, "y":0}, + {"label":"k31", "x":2, "y":1}, + {"label":"k32", "x":2, "y":2}, + {"label":"k23", "x":2, "y":3, "w":2}, + {"label":"k40", "x":1, "y":0}, + {"label":"k41", "x":1, "y":1}, + {"label":"k42", "x":1, "y":2}, + {"label":"k43", "x":1, "y":3}, + {"label":"k50", "x":0, "y":0}, + {"label":"k51", "x":0, "y":1}, + {"label":"k52", "x":0, "y":2}, + {"label":"k53", "x":0, "y":3} + ] + }, + + "LAYOUT_ortho_6x4": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Tab", "x":1, "y":0}, {"label":"Fn", "x":2, "y":0}, {"label":"Back", "x":3, "y":0}, {"label":"Num Lock", "x":0, "y":1}, {"label":"/", "x":1, "y":1}, {"label":"*", "x":2, "y":1}, {"label":"-", "x":3, "y":1}, {"label":"7", "x":0, "y":2}, {"label":"8", "x":1, "y":2}, {"label":"9", "x":2, "y":2}, {"label":"+", "x":3, "y":2}, {"label":"4", "x":0, "y":3}, {"label":"5", "x":1, "y":3}, {"label":"6", "x":2, "y":3}, {"x":3, "y":3}, {"label":"1", "x":0, "y":4}, {"label":"2", "x":1, "y":4}, {"label":"3", "x":2, "y":4}, {"label":"Enter", "x":3, "y":4}, {"label":"0", "x":0, "y":5}, {"x":1, "y":5}, {"label":".", "x":2, "y":5}, {"x":3, "y":5}] } -} \ No newline at end of file + } +} diff --git a/keyboards/cospad/readme.md b/keyboards/cospad/readme.md index 436b87dcee..2e9add691f 100644 --- a/keyboards/cospad/readme.md +++ b/keyboards/cospad/readme.md @@ -4,8 +4,8 @@ COSPAD A DIY Keypad Kit sold by KPRepublic, runs TKG natively. Keyboard Maintainer: QMK Community -Hardware Supported: COSPAD -Hardware Availability: https://aliexpress.com/item/cospad-Custom-Mechanical-Keyboard-Kit-up-tp-24-keys-Supports-TKG-TOOLS-Underglow-RGB-PCB-20/32818383873.html +Hardware Supported: COSPAD +Hardware Availability: [KPrepublic on Aliexpress](https://aliexpress.com/item/cospad-Custom-Mechanical-Keyboard-Kit-up-tp-24-keys-Supports-TKG-TOOLS-Underglow-RGB-PCB-20/32818383873.html) Only supports on and off for the backlight leds, as they are not connected to a PWM pin. @@ -18,4 +18,4 @@ Make example for this keyboard (after setting up your build environment): make cospad:default -See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 398204b2a03bdac68fccb6f7592ed3ea52741ce5 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Sun, 16 Dec 2018 00:40:46 -0800 Subject: [PATCH 38/38] EKeyboard: ErgoInu Configurator fix (#4665) * ErgoInu: Configurator update, part 1 Give each key its own line to make the file easier to debug. * ErgoInu: Configurator update, part 2 - converted all JSON variables to lowercase (this was the bugfix) - converted Tabs to Spaces * ErgoInu: Configurator update, part 3 - break key data into chunks * ErgoInu: Configurator update, part 4 Rebuilt the layout tree into a new file, taking the Y values from the original data. Copied relevant data from original file into the new file, and then overwrote the original file. --- keyboards/ergoinu/info.json | 83 +++++++++++++++++++++++++++++++++---- 1 file changed, 75 insertions(+), 8 deletions(-) diff --git a/keyboards/ergoinu/info.json b/keyboards/ergoinu/info.json index f85447913c..81f53fd255 100644 --- a/keyboards/ergoinu/info.json +++ b/keyboards/ergoinu/info.json @@ -2,18 +2,85 @@ "keyboard_name": "Ergoinu", "url": "", "maintainer": "hsgw", - "width": 17, - "height": 6.75, + "width": 18, + "height": 5.4, "layouts": { "LAYOUT": { "key_count": 64, "layout": [ - {"x": 0, "y": 0.6}, {"x": 1, "y": 0.4}, {"x": 2, "y": 0.4}, {"x": 3, "y": 0.25}, {"x": 4, "y": 0}, {"x": 5, "y": 0.25}, {"x": 6, "y": 0.4}, {"x": 10, "y": 0.4}, {"x": 11, "y": 0.25}, {"x": 12, "y": 0}, {"x": 13, "y": 0.25}, {"x": 14, "y": 0.4}, {"x": 15, "y": 0.4}, {"x": 16, "y": 0.6}, - {"x": 0, "y": 1.6}, {"x": 1, "y": 1.4}, {"x": 2, "y": 1.4}, {"x": 3, "y": 1.25}, {"x": 4, "y": 1}, {"x": 5, "y": 1.25}, {"x": 6, "y": 1.4}, {"x": 10, "y": 1.4}, {"x": 11, "y": 1.25}, {"x": 12, "y": 1}, {"x": 13, "y": 1.25}, {"x": 14, "y": 1.4}, {"x": 15, "y": 1.4}, {"x": 16, "y": 1.6}, - {"x": 0.25, "y": 2.6, "W":1.75}, {"x": 2, "y": 2.4}, {"x": 3, "y": 2.25}, {"x": 4, "y": 2}, {"x": 5, "y": 2.25}, {"x": 6, "y": 2.4}, {"x": 10, "y": 2.4}, {"x": 11, "y": 2.25}, {"x": 12, "y": 2}, {"x": 13, "y": 2.25}, {"x": 14, "y": 2.4}, {"x": 15, "y": 2.4}, {"x": 16, "y": 2.6}, - {"x": 0.25, "y": 3.6, "W":1.75}, {"x": 2, "y": 3.4}, {"x": 3, "y": 3.25}, {"x": 4, "y": 3}, {"x": 5, "y": 3.25}, {"x": 6, "y": 3.4}, {"x": 10, "y": 3.4}, {"x": 11, "y": 3.25}, {"x": 12, "y": 3}, {"x": 13, "y": 3.25}, {"x": 14, "y": 3.4}, {"x": 15, "y": 3.4}, {"x": 16, "y": 3.6}, - {"x": 3, "y": 4.25}, {"x": 4, "y": 4}, {"x": 5, "y": 4.25}, {"x": 6, "y": 4.4}, {"X":7.5, "Y":4.4, "H":1.25,"R":30, "RX":6, "RY":4.4}, - {"X":8.25, "Y":4.4, "H":1.25,"R":-30, "RX":11, "RY":4.4}, {"x": 10, "y": 4.4}, {"x": 11, "y": 4.25}, {"x": 12, "y": 4}, {"x": 13, "y": 4.4} + { "x": 0, "y": 0.6, "label": "ESC" }, + { "x": 1, "y": 0.4, "label": "1" }, + { "x": 2, "y": 0.4, "label": "2" }, + { "x": 3, "y": 0.25, "label": "3" }, + { "x": 4, "y": 0, "label": "4" }, + { "x": 5, "y": 0.25, "label": "5" }, + { "x": 6, "y": 0.4, "label": "6" }, + + { "x": 11, "y": 0.4, "label": "7" }, + { "x": 12, "y": 0.25, "label": "8" }, + { "x": 13, "y": 0, "label": "9" }, + { "x": 14, "y": 0.25, "label": "0" }, + { "x": 15, "y": 0.4, "label": "MINUS" }, + { "x": 16, "y": 0.4, "label": "EQUAL" }, + { "x": 17, "y": 0.6, "label": "BACKSLASH" }, + + { "x": 0, "y": 1.6, "label": "DELETE" }, + { "x": 1, "y": 1.4, "label": "TAB" }, + { "x": 2, "y": 1.4, "label": "Q" }, + { "x": 3, "y": 1.25, "label": "W" }, + { "x": 4, "y": 1, "label": "E" }, + { "x": 5, "y": 1.25, "label": "R" }, + { "x": 6, "y": 1.4, "label": "T" }, + + { "x": 11, "y": 1.4, "label": "Y" }, + { "x": 12, "y": 1.25, "label": "U" }, + { "x": 13, "y": 1, "label": "I" }, + { "x": 14, "y": 1.25, "label": "O" }, + { "x": 15, "y": 1.4, "label": "P" }, + { "x": 16, "y": 1.4, "label": "LBRACKET" }, + { "x": 17, "y": 1.6, "label": "RBRACKET" }, + + { "x": 0.25, "y": 2.6, "w": 1.75, "label": "LCTRL" }, + { "x": 2, "y": 2.4, "label": "A" }, + { "x": 3, "y": 2.25, "label": "S" }, + { "x": 4, "y": 2, "label": "D" }, + { "x": 5, "y": 2.25, "label": "F" }, + { "x": 6, "y": 2.4, "label": "G" }, + + { "x": 11, "y": 2.4, "label": "H" }, + { "x": 12, "y": 2.25, "label": "J" }, + { "x": 13, "y": 2, "label": "K" }, + { "x": 14, "y": 2.25, "label": "L" }, + { "x": 15, "y": 2.4, "label": "SEMICOLON" }, + { "x": 16, "y": 2.4, "label": "QUOTE" }, + { "x": 17, "y": 2.6, "label": "GRAVE" }, + + { "x": 0.25, "y": 3.6, "w": 1.75, "label": "LSHIFT" }, + { "x": 2, "y": 3.4, "label": "Z" }, + { "x": 3, "y": 3.25, "label": "X" }, + { "x": 4, "y": 3, "label": "C" }, + { "x": 5, "y": 3.25, "label": "V" }, + { "x": 6, "y": 3.4, "label": "B" }, + + { "x": 11, "y": 3.4, "label": "N" }, + { "x": 12, "y": 3.25, "label": "M" }, + { "x": 13, "y": 3, "label": "COMMA" }, + { "x": 14, "y": 3.25, "label": "DOT" }, + { "x": 15, "y": 3.4, "label": "SLASH" }, + { "x": 16, "y": 3.4, "label": "RSHIFT" }, + { "x": 17, "y": 3.6, "label": "RSHIFT" }, + + { "x": 3, "y": 4.25, "label": "MO(META)" }, + { "x": 4, "y": 4, "label": "LALT" }, + { "x": 5, "y": 4.25, "label": "LGUI" }, + { "x": 6, "y": 4.4, "label": "ENT" }, + { "x": 7, "y": 4.4, "w": 1.5, "label": "SPACE" }, + + { "x": 9.5, "y": 4.4, "w": 1.5, "label": "ENTER" }, + { "x": 11, "y": 4.4, "label": "BACKSPACE" }, + { "x": 12, "y": 4.25, "label": "RGUI" }, + { "x": 13, "y": 4, "label": "RALT" }, + { "x": 14, "y": 4.25, "label": "MO(META)" } ] } }