From 1af8f1f201ab9a7f8d749e240f9da278974357ba Mon Sep 17 00:00:00 2001 From: ChrissiQ Date: Fri, 16 Feb 2018 00:23:19 -0700 Subject: [PATCH 01/12] Let's Split: Minor keymap fixes --- keyboards/lets_split/keymaps/default/keymap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c index bf3ae4551..492d5cd5c 100644 --- a/keyboards/lets_split/keymaps/default/keymap.c +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ - KC_LCTRL,KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + KC_LCTRL,KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), /* Colemak @@ -88,9 +88,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -108,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -211,4 +211,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} From b0e8de1c977dba81508e1f756c6659a0a3b2ab95 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 16 Feb 2018 09:00:39 -0800 Subject: [PATCH 02/12] Fix EE HANDS on splits losing handedness if RGB is enabled (#2399) * Fix EE HANDS on splits losing handedness if RGB is enabled * Because I'm an idiot and did a bad cut/paste job --- keyboards/deltasplit75/split_util.h | 5 +---- keyboards/helix/rev1/split_util.h | 6 +----- keyboards/helix/rev2/split_util.h | 6 +----- keyboards/nyquist/split_util.h | 6 +----- keyboards/orthodox/split_util.h | 5 +---- keyboards/viterbi/split_util.h | 5 +---- 6 files changed, 6 insertions(+), 27 deletions(-) diff --git a/keyboards/deltasplit75/split_util.h b/keyboards/deltasplit75/split_util.h index 6b896679c..1c9235213 100644 --- a/keyboards/deltasplit75/split_util.h +++ b/keyboards/deltasplit75/split_util.h @@ -2,11 +2,8 @@ #define SPLIT_KEYBOARD_UTIL_H #include +#include "eeconfig.h" -#ifdef EE_HANDS - #define EECONFIG_BOOTMAGIC_END (uint8_t *)10 - #define EECONFIG_HANDEDNESS EECONFIG_BOOTMAGIC_END -#endif #define SLAVE_I2C_ADDRESS 0x32 diff --git a/keyboards/helix/rev1/split_util.h b/keyboards/helix/rev1/split_util.h index 3ae76c209..595a0659e 100644 --- a/keyboards/helix/rev1/split_util.h +++ b/keyboards/helix/rev1/split_util.h @@ -2,11 +2,7 @@ #define SPLIT_KEYBOARD_UTIL_H #include - -#ifdef EE_HANDS - #define EECONFIG_BOOTMAGIC_END (uint8_t *)10 - #define EECONFIG_HANDEDNESS EECONFIG_BOOTMAGIC_END -#endif +#include "eeconfig.h" #define SLAVE_I2C_ADDRESS 0x32 diff --git a/keyboards/helix/rev2/split_util.h b/keyboards/helix/rev2/split_util.h index 757e934c7..687ca19bd 100644 --- a/keyboards/helix/rev2/split_util.h +++ b/keyboards/helix/rev2/split_util.h @@ -2,11 +2,7 @@ #define SPLIT_KEYBOARD_UTIL_H #include - -#ifdef EE_HANDS - #define EECONFIG_BOOTMAGIC_END (uint8_t *)10 - #define EECONFIG_HANDEDNESS EECONFIG_BOOTMAGIC_END -#endif +#include "eeconfig.h" #define SLAVE_I2C_ADDRESS 0x32 diff --git a/keyboards/nyquist/split_util.h b/keyboards/nyquist/split_util.h index 3ae76c209..595a0659e 100644 --- a/keyboards/nyquist/split_util.h +++ b/keyboards/nyquist/split_util.h @@ -2,11 +2,7 @@ #define SPLIT_KEYBOARD_UTIL_H #include - -#ifdef EE_HANDS - #define EECONFIG_BOOTMAGIC_END (uint8_t *)10 - #define EECONFIG_HANDEDNESS EECONFIG_BOOTMAGIC_END -#endif +#include "eeconfig.h" #define SLAVE_I2C_ADDRESS 0x32 diff --git a/keyboards/orthodox/split_util.h b/keyboards/orthodox/split_util.h index 3ae76c209..a0a8dd3bf 100644 --- a/keyboards/orthodox/split_util.h +++ b/keyboards/orthodox/split_util.h @@ -2,11 +2,8 @@ #define SPLIT_KEYBOARD_UTIL_H #include +#include "eeconfig.h" -#ifdef EE_HANDS - #define EECONFIG_BOOTMAGIC_END (uint8_t *)10 - #define EECONFIG_HANDEDNESS EECONFIG_BOOTMAGIC_END -#endif #define SLAVE_I2C_ADDRESS 0x32 diff --git a/keyboards/viterbi/split_util.h b/keyboards/viterbi/split_util.h index 3ae76c209..a0a8dd3bf 100644 --- a/keyboards/viterbi/split_util.h +++ b/keyboards/viterbi/split_util.h @@ -2,11 +2,8 @@ #define SPLIT_KEYBOARD_UTIL_H #include +#include "eeconfig.h" -#ifdef EE_HANDS - #define EECONFIG_BOOTMAGIC_END (uint8_t *)10 - #define EECONFIG_HANDEDNESS EECONFIG_BOOTMAGIC_END -#endif #define SLAVE_I2C_ADDRESS 0x32 From 4f55a7aca16f27d9f79019cf44d256dd98f71033 Mon Sep 17 00:00:00 2001 From: tameone Date: Fri, 16 Feb 2018 12:01:51 -0500 Subject: [PATCH 03/12] Iris: Create info.json (#2396) * Create info.json * Update info.json --- keyboards/iris/info.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 keyboards/iris/info.json diff --git a/keyboards/iris/info.json b/keyboards/iris/info.json new file mode 100644 index 000000000..cf8655ff4 --- /dev/null +++ b/keyboards/iris/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Iris", + "manufacturer": "Keebio", + "identifier": "0x1256", + "url": "Keeb.io", + "maintainer": "qmk", + "processor": "atmega32u4", + "bootloader": "", + "width": 14.5, + "height": 5, + "layouts": { + "KEYMAP": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":8.5, "y":2}, {"x":9.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7.5, "y":3}, {"x":8.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7.5, "y":4}, {"x":8.5, "y":4}, {"x":9.5, "y":4}] + } + } +} From 7b5c6a895e998870d3a898847f89e78d9ae71224 Mon Sep 17 00:00:00 2001 From: Pittyolo Date: Tue, 13 Feb 2018 12:04:27 +0100 Subject: [PATCH 04/12] Update keymap.c --- keyboards/nyquist/keymaps/pitty/keymap.c | 42 ++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/keyboards/nyquist/keymaps/pitty/keymap.c b/keyboards/nyquist/keymaps/pitty/keymap.c index 89f915192..fcdbc946d 100644 --- a/keyboards/nyquist/keymaps/pitty/keymap.c +++ b/keyboards/nyquist/keymaps/pitty/keymap.c @@ -131,3 +131,45 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { return MACRO_NONE; } +#ifdef RGBLIGHT_ENABLE +bool rgb_layer_change = true; +#endif + +#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF); +#define rgblight_set_red rgblight_sethsv (0x00, 0xFF, 0xFF); +#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF); +#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF); +#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF); +#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF); +#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF); +#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF); +#define rgblight_set_white rgblight_sethsv (0x00, 0x00, 0xFF); +#define rgblight_set_black rgblight_sethsv (0x00, 0x00, 0x00); + +uint32_t layer_state_set_user(uint32_t state) { +#ifdef RGBLIGHT_ENABLE + uint8_t default_layer = eeconfig_read_default_layer(); + if (rgb_layer_change) { + switch (biton32(state)) { + case _LOWER: + rgblight_set_purple; + rgblight_mode(5); + break; + case _VIM: + rgblight_set_green; + rgblight_mode(23); + break; + case _GAME: + rgblight_mode(8); + break; + default: + if (default_layer & (1UL << _GAME)) { + } + else + rgblight_mode(14); + break; + } + } +#endif + return state; +} From bfc2b1205a724c4562d893a17200fffcef8b7fcf Mon Sep 17 00:00:00 2001 From: Yan-Fa li Date: Sun, 10 Dec 2017 22:16:31 -0800 Subject: [PATCH 05/12] u/yanfali custom keymap for Iris Based heavily on the keymap by hexwire. 1. Moved LALT to LCTL; I don't need CTL because of ESCC. 1. Moved RAISE to old LALT. 1. Moved ENTER to old RAISE. 1. Move QUOTE to old ENTER. 1. Moved PLUS to old QUOTE. 1. replaced music next and volume up with browser forward and back through history --- keyboards/iris/keymaps/yanfali/config.h | 43 +++++++ keyboards/iris/keymaps/yanfali/keymap.c | 145 +++++++++++++++++++++++ keyboards/iris/keymaps/yanfali/readme.md | 17 +++ keyboards/iris/keymaps/yanfali/rules.mk | 6 + 4 files changed, 211 insertions(+) create mode 100644 keyboards/iris/keymaps/yanfali/config.h create mode 100644 keyboards/iris/keymaps/yanfali/keymap.c create mode 100644 keyboards/iris/keymaps/yanfali/readme.md create mode 100644 keyboards/iris/keymaps/yanfali/rules.mk diff --git a/keyboards/iris/keymaps/yanfali/config.h b/keyboards/iris/keymaps/yanfali/config.h new file mode 100644 index 000000000..81df2e916 --- /dev/null +++ b/keyboards/iris/keymaps/yanfali/config.h @@ -0,0 +1,43 @@ +/* +Copyright 2017 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define TAPPING_TERM 150 + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#endif diff --git a/keyboards/iris/keymaps/yanfali/keymap.c b/keyboards/iris/keymaps/yanfali/keymap.c new file mode 100644 index 000000000..370db668d --- /dev/null +++ b/keyboards/iris/keymaps/yanfali/keymap.c @@ -0,0 +1,145 @@ +#include "iris.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _LOWER 1 +#define _RAISE 2 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, +}; + +#define KC_ KC_TRNS +#define _______ KC_TRNS + +#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen +#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen +#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen +#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen +#define KC_ESCC MT(MOD_LCTL, KC_ESC) // Control (hold), Escape (tap) +#define KC_BACK LGUI(KC_LEFT) // Browser Back +#define KC_FORW LGUI(KC_RIGHT) // Browser Forward +#define KC_LOWR LOWER +#define KC_RASE RAISE +#define KC_RST RESET +#define KC_BL_S BL_STEP +#define KC_ENTS MT(MOD_LSFT, KC_ENT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + TAB , Q , W , E , R , T , Y , U , I , O , P ,PLUS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ESCC, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + LSFT, Z , X , C , V , B ,SPC , LALT, N , M ,COMM,DOT ,SLSH,DEL , + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + LGUI,LOWR,SPC , BSPC,ENTS,RASE + // `----+----+----' `----+----+----' + ), + + [_LOWER] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + RST , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + DEL ,CAPP,LEFT,RGHT, UP ,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + BL_S,CPYP, , ,DOWN,LCBR,LPRN, RPRN,RCBR, P1 , P2 , P3 ,MINS, , + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + , ,DEL , DEL , , P0 + // `----+----+----' `----+----+----' + ), + + [_RAISE] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + DEL ,MPRV,BACK,FORW,PGUP,UNDS, EQL ,HOME, , , ,BSLS, + //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + MUTE,MSTP,MPLY,VOLD,PGDN,MINS, , ,PLUS,END , , , , , + //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + , , , , , + // `----+----+----' `----+----+----' + ), + + [_ADJUST] = KEYMAP( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RESET , DEBUG , RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + _______, _______, _______, _______, _______, _______ + // `--------+--------+--------' `--------+--------+--------' + ) + +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +#endif + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + 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; +} diff --git a/keyboards/iris/keymaps/yanfali/readme.md b/keyboards/iris/keymaps/yanfali/readme.md new file mode 100644 index 000000000..f72e88e51 --- /dev/null +++ b/keyboards/iris/keymaps/yanfali/readme.md @@ -0,0 +1,17 @@ +## u/yanfali keymap for Iris + +Based heavily off Hexwire's configuration. Differs in following ways: + + 1. Moved LALT to LCTL; I don't need CTL because of ESCC. + 1. Moved RAISE to old LALT. + 1. Moved ENTER to old RAISE. + 1. Move QUOTE to old ENTER. + 1. Moved PLUS to old QUOTE. + 1. replaced music next and volume up with browser forward and back + through history + +This configuration lets me use my thumbs for enter and backspace. +It turns out I need `+` a lot for programming so I moved it logically +below `-`. I also added a couple of web specific short cuts for +navigating previous and next in web history on OSX Chrome. + diff --git a/keyboards/iris/keymaps/yanfali/rules.mk b/keyboards/iris/keymaps/yanfali/rules.mk new file mode 100644 index 000000000..22b6ec476 --- /dev/null +++ b/keyboards/iris/keymaps/yanfali/rules.mk @@ -0,0 +1,6 @@ +RGBLIGHT_ENABLE = yes +BACKLIGHT_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif From d1ea398fb9c4848b74fc3eca40d6078bb529bf0a Mon Sep 17 00:00:00 2001 From: GlenPickle Date: Fri, 16 Feb 2018 11:03:53 -0600 Subject: [PATCH 06/12] Added Chimera LS and Chimera Ergo (#2335) * Added Chimera Ortho keymap * added readme * fixed hardware link * Added KC_KEYMAP * resolving conflict * Added Chimera LS and Chimera Ergo * Added rules file * fixed rule files * Added Chimera Ortho keymap * Added KC_KEYMAP * Added Chimera LS and Chimera Ergo * fixed rule files * fixed rule files * fixed image links * Added KC_KEYMAP * Added Chimera LS and Chimera Ergo * Added Chimera Ortho keymap * fixed rule files * fixed rule files * fixed image links * Fixed KEYMAP vs KC_KEYMAP --- keyboards/chimera_ergo/chimera_ergo.c | 31 +++ keyboards/chimera_ergo/chimera_ergo.h | 82 +++++++ keyboards/chimera_ergo/config.h | 87 ++++++++ .../chimera_ergo/keymaps/default/keymap.c | 206 ++++++++++++++++++ keyboards/chimera_ergo/matrix.c | 164 ++++++++++++++ keyboards/chimera_ergo/readme.md | 19 ++ keyboards/chimera_ergo/rules.mk | 82 +++++++ keyboards/chimera_ls/chimera_ls.c | 31 +++ keyboards/chimera_ls/chimera_ls.h | 82 +++++++ keyboards/chimera_ls/config.h | 87 ++++++++ keyboards/chimera_ls/keymaps/default/keymap.c | 191 ++++++++++++++++ keyboards/chimera_ls/matrix.c | 168 ++++++++++++++ keyboards/chimera_ls/readme.md | 19 ++ keyboards/chimera_ls/rules.mk | 82 +++++++ keyboards/chimera_ortho/chimera_ortho.h | 15 +- .../chimera_ortho/keymaps/default/keymap.c | 12 +- .../chimera_ortho/keymaps/gordon/keymap.c | 16 +- 17 files changed, 1359 insertions(+), 15 deletions(-) create mode 100644 keyboards/chimera_ergo/chimera_ergo.c create mode 100644 keyboards/chimera_ergo/chimera_ergo.h create mode 100644 keyboards/chimera_ergo/config.h create mode 100644 keyboards/chimera_ergo/keymaps/default/keymap.c create mode 100644 keyboards/chimera_ergo/matrix.c create mode 100644 keyboards/chimera_ergo/readme.md create mode 100644 keyboards/chimera_ergo/rules.mk create mode 100644 keyboards/chimera_ls/chimera_ls.c create mode 100644 keyboards/chimera_ls/chimera_ls.h create mode 100644 keyboards/chimera_ls/config.h create mode 100644 keyboards/chimera_ls/keymaps/default/keymap.c create mode 100644 keyboards/chimera_ls/matrix.c create mode 100644 keyboards/chimera_ls/readme.md create mode 100644 keyboards/chimera_ls/rules.mk diff --git a/keyboards/chimera_ergo/chimera_ergo.c b/keyboards/chimera_ergo/chimera_ergo.c new file mode 100644 index 000000000..29470f908 --- /dev/null +++ b/keyboards/chimera_ergo/chimera_ergo.c @@ -0,0 +1,31 @@ +#include "chimera_ergo.h" + +void uart_init(void) { + SERIAL_UART_INIT(); +} + +void led_init(void) { + DDRD |= (1<<1); + PORTD |= (1<<1); + DDRF |= (1<<4) | (1<<5); + PORTF |= (1<<4) | (1<<5); +} + + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + matrix_init_user(); + uart_init(); + led_init(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + matrix_scan_user(); +} + +void led_set_kb(uint8_t usb_led) { + +} diff --git a/keyboards/chimera_ergo/chimera_ergo.h b/keyboards/chimera_ergo/chimera_ergo.h new file mode 100644 index 000000000..36525ac00 --- /dev/null +++ b/keyboards/chimera_ergo/chimera_ergo.h @@ -0,0 +1,82 @@ +#ifndef CHIMERA_ERGO_H +#define CHIMERA_ERGO_H + +#include "quantum.h" +#include "matrix.h" +#include "backlight.h" +#include + +#define red_led_off PORTF |= (1<<5) +#define red_led_on PORTF &= ~(1<<5) +#define blu_led_off PORTF |= (1<<4) +#define blu_led_on PORTF &= ~(1<<4) +#define grn_led_off PORTD |= (1<<1) +#define grn_led_on PORTD &= ~(1<<1) + +#define set_led_off red_led_off; grn_led_off; blu_led_off +#define set_led_red red_led_on; grn_led_off; blu_led_off +#define set_led_blue red_led_off; grn_led_off; blu_led_on +#define set_led_green red_led_off; grn_led_on; blu_led_off +#define set_led_yellow red_led_on; grn_led_on; blu_led_off +#define set_led_magenta red_led_on; grn_led_off; blu_led_on +#define set_led_cyan red_led_off; grn_led_on; blu_led_on +#define set_led_white red_led_on; grn_led_on; blu_led_on + +/* +#define LED_B 5 +#define LED_R 6 +#define LED_G 7 + +#define all_leds_off PORTF &= ~(1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER unknown +#define PRODUCT Chimera Ergo +#define DESCRIPTION q.m.k. keyboard firmware for Chimera Ergo + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 12 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +//#define BACKLIGHT_LEVELS 3 + +#define ONESHOT_TIMEOUT 500 + + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +#define PREVENT_STUCK_MODIFIERS + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +//UART settings for communication with the RF microcontroller +#define SERIAL_UART_BAUD 1000000 +#define SERIAL_UART_DATA UDR1 +#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) +#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) +#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) +#define SERIAL_UART_INIT() do { \ + /* baud rate */ \ + UBRR1L = SERIAL_UART_UBRR; \ + /* baud rate */ \ + UBRR1H = SERIAL_UART_UBRR >> 8; \ + /* enable TX and RX */ \ + UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ + /* 8-bit data */ \ + UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ + } while(0) + +#endif diff --git a/keyboards/chimera_ergo/keymaps/default/keymap.c b/keyboards/chimera_ergo/keymaps/default/keymap.c new file mode 100644 index 000000000..0479fa419 --- /dev/null +++ b/keyboards/chimera_ergo/keymaps/default/keymap.c @@ -0,0 +1,206 @@ +// 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_ergo.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_ergo_layers +{ + _QWERTY, + _CAPS, + _NUMPAD, + _SYMBOLS, + _MACROS, + _NAV +}; + +#define KC_NMPD TG(_NUMPAD) +#define KC_SYMB TG(_SYMBOLS) +#define KC_SPFN LT(_NAV,KC_EQL) +#define KC_SCTL MT(MOD_LCTL, KC_LBRC) +#define KC_SCTR MT(MOD_LCTL, KC_RBRC) +#define KC_SPLT MT(MOD_LALT, KC_MINS) +#define KC_SPRT MT(MOD_LALT, KC_1) +#define KC_GBRC MT(MOD_RGUI, KC_RBRC) +#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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + LBRC, 1 ,SCTL,SPLT,SPFN, 5 , 6 ,GBRC,SPRT,SCTR, 0 ,RBRC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + MESC, Q , W , E , R , T , Y , U , I , O , P ,QUOT, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + TAB , A , S , D , F , G , H , J , K , L ,SCLN,ENT , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LSPO, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,RSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + NMPD,BSPC, SPC ,SYMB + // \------------------+----+----/ \---+----+----+--------------/ + ), + + [_CAPS] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + ,UNDS, , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , ,COLN, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + SCOF, , , , , , , , , , ,SCOF, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , + // \------------------+----+----/ \---+----+----+--------------/ + ), + + [_NUMPAD] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + , , , , , , , , , ,MINS, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , ,COLN, , , , , 7 , 8 , 9 ,ASTR, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , ,DOT , , , , , 4 , 5 , 6 ,PLUS, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , 1 , 2 , 3 ,SLSH, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , 0 + // \------------------+----+----/ \---+----+----+--------------/ + ), + + [_SYMBOLS] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSLS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + F1 , F2 , F3 , F4 , F5 , F6 , TILD,EQL ,UNDS,LCBR,RCBR, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + F7 , F8 , F9 ,F10 ,F11 ,F12 , GRV ,PLUS,MINS,LBRC,RBRC, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + PIPE, , , + // \------------------+----+----/ \---+----+----+--------------/ + ), + + [_MACROS] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , ,INCL, , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , ,CAD , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + SCAP, , , , , , , ,PULL,PUSH, , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , + // \------------------+----+----/ \---+----+----+--------------/ + ), + + [_NAV] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , ,PGUP, UP ,PGDN,PSCR, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , ,LEFT,DOWN,RGHT, , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,DEL , , + // \------------------+----+----/ \---+----+----+--------------/ + ), + + +}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + /* include some kind of library or header */ + case 0: + if (record->event.pressed) { + SEND_STRING("#include <>"); + return MACRO( T(LEFT), END); + } + break; + case 1: + if (record->event.pressed) { + SEND_STRING("git pull"); + return MACRO( T(ENT), END ); + } + break; + case 2: + if (record->event.pressed){ + SEND_STRING("git push"); + return MACRO( T(ENT), END ); + } + break; + case 3: + if (record->event.pressed){ + layer_on(_CAPS); + register_code(KC_CAPSLOCK); + unregister_code(KC_CAPSLOCK); + } + break; + case 4: + if (record->event.pressed){ + layer_off(_CAPS); + register_code(KC_CAPSLOCK); + unregister_code(KC_CAPSLOCK); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + switch (layer) { + case _QWERTY: + set_led_green; + break; + case _CAPS: + set_led_white; + break; + case _NUMPAD: + set_led_blue; + break; + case _SYMBOLS: + set_led_red; + break; + case _NAV: + set_led_magenta; + break; + case _MACROS: + set_led_cyan; + break; + default: + set_led_green; + break; + } +}; diff --git a/keyboards/chimera_ergo/matrix.c b/keyboards/chimera_ergo/matrix.c new file mode 100644 index 000000000..21d46ef9b --- /dev/null +++ b/keyboards/chimera_ergo/matrix.c @@ -0,0 +1,164 @@ +/* +Copyright 2012 Jun Wako +Copyright 2014 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include +#include +#if defined(__AVR__) +#include +#endif +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "timer.h" + +#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) +#elif (MATRIX_COLS <= 16) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop16(matrix[i]) +# define ROW_SHIFTER ((uint16_t)1) +#elif (MATRIX_COLS <= 32) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop32(matrix[i]) +# define ROW_SHIFTER ((uint32_t)1) +#endif + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; + +__attribute__ ((weak)) +void matrix_init_quantum(void) { + matrix_init_kb(); +} + +__attribute__ ((weak)) +void matrix_scan_quantum(void) { + matrix_scan_kb(); +} + +__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) { + + matrix_init_quantum(); +} + +uint8_t matrix_scan(void) +{ + SERIAL_UART_INIT(); + + uint32_t timeout = 0; + + //the s character requests the RF slave to send the matrix + SERIAL_UART_DATA = 's'; + + //trust the external keystates entirely, erase the last data + uint8_t uart_data[14] = {0}; + + //there are 10 bytes corresponding to 10 columns, and an end byte + for (uint8_t i = 0; i < 14; i++) { + //wait for the serial data, timeout if it's been too long + //this only happened in testing with a loose wire, but does no + //harm to leave it in here + while(!SERIAL_UART_RXD_PRESENT){ + timeout++; + if (timeout > 10000){ + break; + } + } + uart_data[i] = SERIAL_UART_DATA; + } + + //check for the end packet, the key state bytes use the LSBs, so 0xE0 + //will only show up here if the correct bytes were recieved + if (uart_data[10] == 0xE0) + { + //shifting and transferring the keystates to the QMK matrix variable + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = (uint16_t) uart_data[i*2] | (uint16_t) uart_data[i*2+1] << 6; + } + } + + + matrix_scan_quantum(); + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1 + +#define red_led_off PORTF |= (1<<5) +#define red_led_on PORTF &= ~(1<<5) +#define blu_led_off PORTF |= (1<<4) +#define blu_led_on PORTF &= ~(1<<4) +#define grn_led_off PORTD |= (1<<1) +#define grn_led_on PORTD &= ~(1<<1) + +#define set_led_off red_led_off; grn_led_off; blu_led_off +#define set_led_red red_led_on; grn_led_off; blu_led_off +#define set_led_blue red_led_off; grn_led_off; blu_led_on +#define set_led_green red_led_off; grn_led_on; blu_led_off +#define set_led_yellow red_led_on; grn_led_on; blu_led_off +#define set_led_magenta red_led_on; grn_led_off; blu_led_on +#define set_led_cyan red_led_off; grn_led_on; blu_led_on +#define set_led_white red_led_on; grn_led_on; blu_led_on + +/* +#define LED_B 5 +#define LED_R 6 +#define LED_G 7 + +#define all_leds_off PORTF &= ~(1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER unknown +#define PRODUCT Chimera Lets Split +#define DESCRIPTION q.m.k. keyboard firmware for Chimera Lets Split + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +//#define BACKLIGHT_LEVELS 3 + +#define ONESHOT_TIMEOUT 500 + + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +#define PREVENT_STUCK_MODIFIERS + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +//UART settings for communication with the RF microcontroller +#define SERIAL_UART_BAUD 1000000 +#define SERIAL_UART_DATA UDR1 +#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) +#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) +#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) +#define SERIAL_UART_INIT() do { \ + /* baud rate */ \ + UBRR1L = SERIAL_UART_UBRR; \ + /* baud rate */ \ + UBRR1H = SERIAL_UART_UBRR >> 8; \ + /* enable TX and RX */ \ + UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ + /* 8-bit data */ \ + UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ + } while(0) + +#endif diff --git a/keyboards/chimera_ls/keymaps/default/keymap.c b/keyboards/chimera_ls/keymaps/default/keymap.c new file mode 100644 index 000000000..493b8eee1 --- /dev/null +++ b/keyboards/chimera_ls/keymaps/default/keymap.c @@ -0,0 +1,191 @@ +// 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_ls.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_lets_split_layers +{ + _QWERTY, + _CAPS, + _NUMPAD, + _SYMBOLS, + _MACROS, + _NAV +}; + +#define KC_NMPD TG(_NUMPAD) +#define KC_SYMB TG(_SYMBOLS) +#define KC_SPFN LT(_NAV,KC_EQL) +#define KC_SCTL MT(MOD_LCTL, KC_BSLS) +#define KC_SCTR MT(MOD_LCTL, KC_RBRC) +#define KC_SPLT MT(MOD_LALT, KC_MINS) +#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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + MESC, Q , W , E , R , T , Y , U , I , O , P ,BSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + TAB , A , S , D , F , G , H , J , K , L ,SCLN, ENT, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LSPO, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,RSPC, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + SCTL,SPFN,SPLT,AMPR,NMPD,SPC , SPC ,SYMB,ASTR,EXLM,LBRC,SCTR + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_CAPS] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , ,COLN, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , ,UNDS, , , , , , , , , + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + + [_NUMPAD] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + , , , , , , , 7 , 8 , 9 ,MINS,QUOT, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , 4 , 5 , 6 ,PLUS, ENT, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT, , , , , , , 1 , 2 , 3 ,ASTR, EQL, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , ,BSPC, SPC , 0 , 0 , DOT,SLSH, + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_SYMBOLS] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,QUOT, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + F1 , F2 , F3 , F4 , F5 , F6 , TILD,EQL ,UNDS,LCBR,RCBR,PIPE, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + F7 , F8 , F9 , F10, F11, F12, GRV ,PLUS,MINS,LBRC,RBRC,BSLS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , NO ,BSPC, SPC , , , , , + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_NAV] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + , , , , DEL,BSPC, ,HOME, UP , END, INS,PSCR, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , ,LSFT,LCTL, ENT, ,LEFT,DOWN,RGHT, DEL, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , ,PGUP,PGDN, , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , ,DEL , , , , , , + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_MACROS] = KC_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + , , , , , , , ,INCL, , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , ,CAD , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + SCAP, , , , , , , ,PULL,PUSH, ,SCAP, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + +}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + /* include some kind of library or header */ + case 0: + if (record->event.pressed) { + SEND_STRING("#include <>"); + return MACRO( T(LEFT), END); + } + break; + case 1: + if (record->event.pressed) { + SEND_STRING("git pull"); + return MACRO( T(ENT), END ); + } + break; + case 2: + if (record->event.pressed){ + SEND_STRING("git push"); + return MACRO( T(ENT), END ); + } + break; + case 3: + if (record->event.pressed){ + layer_on(_CAPS); + register_code(KC_CAPSLOCK); + unregister_code(KC_CAPSLOCK); + } + break; + case 4: + if (record->event.pressed){ + layer_off(_CAPS); + register_code(KC_CAPSLOCK); + unregister_code(KC_CAPSLOCK); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + switch (layer) { + case _QWERTY: + set_led_green; + break; + case _CAPS: + set_led_white; + break; + case _NUMPAD: + set_led_blue; + break; + case _SYMBOLS: + set_led_red; + break; + case _NAV: + set_led_magenta; + break; + case _MACROS: + set_led_cyan; + break; + default: + set_led_green; + break; + } +}; diff --git a/keyboards/chimera_ls/matrix.c b/keyboards/chimera_ls/matrix.c new file mode 100644 index 000000000..665d0d357 --- /dev/null +++ b/keyboards/chimera_ls/matrix.c @@ -0,0 +1,168 @@ +/* +Copyright 2012 Jun Wako +Copyright 2014 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include +#include +#if defined(__AVR__) +#include +#endif +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "timer.h" + +#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) +#elif (MATRIX_COLS <= 16) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop16(matrix[i]) +# define ROW_SHIFTER ((uint16_t)1) +#elif (MATRIX_COLS <= 32) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop32(matrix[i]) +# define ROW_SHIFTER ((uint32_t)1) +#elif (MATRIX_COLS <= 64) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse64(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop64(matrix[i]) +# define ROW_SHIFTER ((uint64_t)1) +#endif + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; + +__attribute__ ((weak)) +void matrix_init_quantum(void) { + matrix_init_kb(); +} + +__attribute__ ((weak)) +void matrix_scan_quantum(void) { + matrix_scan_kb(); +} + +__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) { + matrix_init_quantum(); +} + +uint8_t matrix_scan(void) +{ + SERIAL_UART_INIT(); + + uint32_t timeout = 0; + + //the s character requests the RF slave to send the matrix + SERIAL_UART_DATA = 's'; + + //trust the external keystates entirely, erase the last data + uint8_t uart_data[11] = {0}; + + //there are 10 bytes corresponding to 10 columns, and an end byte + for (uint8_t i = 0; i < 11; i++) { + //wait for the serial data, timeout if it's been too long + //this only happened in testing with a loose wire, but does no + //harm to leave it in here + while(!SERIAL_UART_RXD_PRESENT){ + timeout++; + if (timeout > 10000){ + break; + } + } + uart_data[i] = SERIAL_UART_DATA; + } + + //check for the end packet, the key state bytes use the LSBs, so 0xE0 + //will only show up here if the correct bytes were recieved + if (uart_data[10] == 0xE0) + { + //shifting and transferring the keystates to the QMK matrix variable + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = (uint16_t) uart_data[i*2] | (uint16_t) uart_data[i*2+1] << 5; + } + } + + + matrix_scan_quantum(); + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1 Date: Fri, 16 Feb 2018 22:13:28 -0500 Subject: [PATCH 07/12] Add Dilly keyboard --- keyboards/dilly/README.md | 14 ++++ keyboards/dilly/config.h | 62 ++++++++++++++ keyboards/dilly/dilly.c | 1 + keyboards/dilly/dilly.h | 31 +++++++ keyboards/dilly/keymaps/default/config.h | 6 ++ keyboards/dilly/keymaps/default/keymap.c | 101 +++++++++++++++++++++++ keyboards/dilly/keymaps/default/rules.mk | 1 + keyboards/dilly/rules.mk | 56 +++++++++++++ 8 files changed, 272 insertions(+) create mode 100644 keyboards/dilly/README.md create mode 100644 keyboards/dilly/config.h create mode 100644 keyboards/dilly/dilly.c create mode 100644 keyboards/dilly/dilly.h create mode 100644 keyboards/dilly/keymaps/default/config.h create mode 100644 keyboards/dilly/keymaps/default/keymap.c create mode 100644 keyboards/dilly/keymaps/default/rules.mk create mode 100644 keyboards/dilly/rules.mk diff --git a/keyboards/dilly/README.md b/keyboards/dilly/README.md new file mode 100644 index 000000000..866d07ccb --- /dev/null +++ b/keyboards/dilly/README.md @@ -0,0 +1,14 @@ +Dilly +===== + +A 3x10 ortholinear keyboard using Kailh PG1350 Lower Profile Choc switches. + +Keyboard Maintainer: Keebio +Hardware Supported: Dilly PCB, Arduino Pro Micro +Hardware Availability: [Keebio](https://keeb.io) + +Make example for this keyboard (after setting up your build environment): + + make dilly: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. diff --git a/keyboards/dilly/config.h b/keyboards/dilly/config.h new file mode 100644 index 000000000..97a6e533b --- /dev/null +++ b/keyboards/dilly/config.h @@ -0,0 +1,62 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCB10 +#define PRODUCT_ID 0x113a +#define DEVICE_VER 0x0100 +#define MANUFACTURER Keebio +#define PRODUCT Dilly +#define DESCRIPTION 30 percent ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 5 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D7, E6, B4, B1, B3, B2 } +#define MATRIX_COL_PINS { D2, D4, C6, F6, F5 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#define BACKLIGHT_PIN B5 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + + +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif +#define RGB_DI_PIN D3 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 10 +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD + +#endif \ No newline at end of file diff --git a/keyboards/dilly/dilly.c b/keyboards/dilly/dilly.c new file mode 100644 index 000000000..89affe850 --- /dev/null +++ b/keyboards/dilly/dilly.c @@ -0,0 +1 @@ +#include "dilly.h" diff --git a/keyboards/dilly/dilly.h b/keyboards/dilly/dilly.h new file mode 100644 index 000000000..ca75704bf --- /dev/null +++ b/keyboards/dilly/dilly.h @@ -0,0 +1,31 @@ +#ifndef DILLY_H +#define DILLY_H + +#include "quantum.h" + +#define KEYMAP( \ + A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, \ + B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, \ + C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 \ +) { \ + { A1, A2, A3, A4, A5 }, \ + { B1, B2, B3, B4, B5 }, \ + { C1, C2, C3, C4, C5 }, \ + { A10, A9, A8, A7, A6 }, \ + { B10, B9, B8, B7, B6 }, \ + { C10, C9, C8, C7, C6 } \ +} + +// Used to create a keymap using only KC_ prefixed keys +#define KC_KEYMAP( \ + A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, \ + B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, \ + C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 \ +) \ + KEYMAP( \ + KC_##A1, KC_##A2, KC_##A3, KC_##A4, KC_##A5, KC_##A6, KC_##A7, KC_##A8, KC_##A9, KC_##A10, \ + KC_##B1, KC_##B2, KC_##B3, KC_##B4, KC_##B5, KC_##B6, KC_##B7, KC_##B8, KC_##B9, KC_##B10, \ + KC_##C1, KC_##C2, KC_##C3, KC_##C4, KC_##C5, KC_##C6, KC_##C7, KC_##C8, KC_##C9, KC_##C10 \ + ) + +#endif diff --git a/keyboards/dilly/keymaps/default/config.h b/keyboards/dilly/keymaps/default/config.h new file mode 100644 index 000000000..7fa3bf328 --- /dev/null +++ b/keyboards/dilly/keymaps/default/config.h @@ -0,0 +1,6 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#endif diff --git a/keyboards/dilly/keymaps/default/keymap.c b/keyboards/dilly/keymaps/default/keymap.c new file mode 100644 index 000000000..56e1ef4c7 --- /dev/null +++ b/keyboards/dilly/keymaps/default/keymap.c @@ -0,0 +1,101 @@ +#include "dilly.h" +#include "action_layer.h" + +extern keymap_config_t keymap_config; + +#define _BASE 0 +#define _FN1 1 +#define _FN2 2 +#define _FN3 3 +#define _FN4 4 +#define _FN5 5 + +#define KC_ KC_TRNS +#define _______ KC_TRNS + +#define KC_ZCTL MT(MOD_LCTL, KC_Z) +#define KC_XALT MT(MOD_LALT, KC_X) +#define KC_C_L3 LT(_FN3, KC_C) +#define KC_V_L4 LT(_FN4, KC_V) +#define KC_SPL2 LT(_FN2, KC_SPC) +#define KC_BSL1 LT(_FN1, KC_BSPC) +#define KC_B_L5 LT(_FN5, KC_B) +#define KC_NALT MT(MOD_RALT, KC_N) +#define KC_MCTL MT(MOD_RCTL, KC_M) +#define KC_ENTS MT(MOD_RSFT, KC_ENT) + +#define KC_RST RESET +#define KC_BL_S BL_STEP +#define KC_DBUG DEBUG +#define KC_RTOG RGB_TOG +#define KC_RMOD RGB_MOD +#define KC_RHUI RGB_HUI +#define KC_RHUD RGB_HUD +#define KC_RSAI RGB_SAI +#define KC_RSAD RGB_SAD +#define KC_RVAI RGB_VAI +#define KC_RVAD RGB_VAD + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + Q , W , E , R , T , Y , U , I , O , P , + //|----+----+----+----+----+----+----+----+----+----| + A , S , D , F , G , H , J , K , L ,ESC , + //|----+----+----+----+----+----+----+----+----+----| + ZCTL,XALT,C_L3,V_L4,SPL2,BSL1,B_L5,NALT,MCTL,ENTS + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN1] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , + //|----+----+----+----+----+----+----+----+----+----| + F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , + //|----+----+----+----+----+----+----+----+----+----| + , , , , ,DEL , , , , + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN2] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN, + //|----+----+----+----+----+----+----+----+----+----| + F11 ,F12 , , , , , , , ,GRV , + //|----+----+----+----+----+----+----+----+----+----| + , , , , , , , , , + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN3] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + , , , , ,MINS,EQL ,LBRC,RBRC,BSLS, + //|----+----+----+----+----+----+----+----+----+----| + TAB , , , , ,COMM,DOT ,SLSH,SCLN,QUOT, + //|----+----+----+----+----+----+----+----+----+----| + , , , , , ,LEFT,DOWN, UP ,RGHT + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN4] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + , , , , ,UNDS,PLUS,LCBR,RCBR,PIPE, + //|----+----+----+----+----+----+----+----+----+----| + TAB , , , , , LT , GT ,QUES,COLN,DQUO, + //|----+----+----+----+----+----+----+----+----+----| + , , , , , ,HOME,PGDN,PGUP,END + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN5] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + RTOG,RMOD, ,RST ,RHUI,RSAI,RVAI, , , , + //|----+----+----+----+----+----+----+----+----+----| + , ,DBUG, ,RHUD,RSAD,RVAD, , , , + //|----+----+----+----+----+----+----+----+----+----| + BL_S, , , , , , , , , + //`----+----+----+----+----+----+----+----+----+----' + ) + +}; diff --git a/keyboards/dilly/keymaps/default/rules.mk b/keyboards/dilly/keymaps/default/rules.mk new file mode 100644 index 000000000..1e3cebb14 --- /dev/null +++ b/keyboards/dilly/keymaps/default/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/dilly/rules.mk b/keyboards/dilly/rules.mk new file mode 100644 index 000000000..9c4082da2 --- /dev/null +++ b/keyboards/dilly/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes \ No newline at end of file From f67c59aa7bb35fc370023a1b0b0633d3aff26eb7 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Fri, 16 Feb 2018 18:27:50 -0500 Subject: [PATCH 08/12] Move hexwire layout into 4x12 layout folder --- keyboards/lets_split/keymaps/hexwire/config.h | 26 --- keyboards/lets_split/keymaps/hexwire/rules.mk | 5 - keyboards/levinson/keymaps/hexwire/README.md | 108 --------- keyboards/levinson/keymaps/hexwire/keymap.c | 206 ------------------ keyboards/levinson/keymaps/hexwire/rules.mk | 5 - keyboards/planck/planck.h | 15 ++ .../community/ortho_4x12/bakingpy}/config.h | 2 +- .../community/ortho_4x12/bakingpy}/keymap.c | 52 +++-- .../community/ortho_4x12/bakingpy/readme.md | 22 +- .../community/ortho_4x12/bakingpy/rules.mk | 4 + 10 files changed, 56 insertions(+), 389 deletions(-) delete mode 100644 keyboards/lets_split/keymaps/hexwire/config.h delete mode 100644 keyboards/lets_split/keymaps/hexwire/rules.mk delete mode 100644 keyboards/levinson/keymaps/hexwire/README.md delete mode 100644 keyboards/levinson/keymaps/hexwire/keymap.c delete mode 100644 keyboards/levinson/keymaps/hexwire/rules.mk rename {keyboards/levinson/keymaps/hexwire => layouts/community/ortho_4x12/bakingpy}/config.h (92%) rename {keyboards/lets_split/keymaps/hexwire => layouts/community/ortho_4x12/bakingpy}/keymap.c (88%) rename keyboards/lets_split/keymaps/hexwire/README.md => layouts/community/ortho_4x12/bakingpy/readme.md (85%) create mode 100644 layouts/community/ortho_4x12/bakingpy/rules.mk diff --git a/keyboards/lets_split/keymaps/hexwire/config.h b/keyboards/lets_split/keymaps/hexwire/config.h deleted file mode 100644 index 30348f1c3..000000000 --- a/keyboards/lets_split/keymaps/hexwire/config.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -/* Use I2C or Serial, not both */ - -#define USE_SERIAL -// #define USE_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define TAPPING_TERM 150 - -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -#endif diff --git a/keyboards/lets_split/keymaps/hexwire/rules.mk b/keyboards/lets_split/keymaps/hexwire/rules.mk deleted file mode 100644 index 1e5761278..000000000 --- a/keyboards/lets_split/keymaps/hexwire/rules.mk +++ /dev/null @@ -1,5 +0,0 @@ -RGBLIGHT_ENABLE = yes - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/levinson/keymaps/hexwire/README.md b/keyboards/levinson/keymaps/hexwire/README.md deleted file mode 100644 index edf2b6627..000000000 --- a/keyboards/levinson/keymaps/hexwire/README.md +++ /dev/null @@ -1,108 +0,0 @@ -Hexwire's Let's Split Layout -============================ - -### Changes from default layout - -- Main layer - - The right space bar key has been changed to backspace, as I only hit space with my left thumb - - Backtick is at the lower right and also serves goes to the 3rd function layer when held - - Enter key acts as shift when held - - Escape key acts as control when held - - Minus key at upper right -- Lower layer - - Numbers are on the lower layer, to make it easier to use a numpad on the right hand - - Arrow keys - - Straight and curly brackets in the middle two columns - - Screenshot keys for MacOS -- Upper layer - - Symbols are on the upper layer - - Media keys - - Page Up/Down, Home/End -- 3rd function layer - - Function keys - -## Layouts - -### Qwerty - -``` -,----+----+----+----+----+----. ,----+----+----+----+----+----. - TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS, -|----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, -|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, X4 , -|----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT -`----+----+----+----+----+----' `----+----+----+----+----+----' -``` - -### Colemak - -``` -,----+----+----+----+----+----. ,----+----+----+----+----+----. - TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS, -|----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , R , S , T , D , H , N , E , I , O ,QUOT, -|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH, X4 , -|----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT -`----+----+----+----+----+----' `----+----+----+----+----+----' -``` - -### Dvorak - -``` -,----+----+----+----+----+----. ,----+----+----+----+----+----. - TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, -|----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , O , E , U , I , D , H , R , N , S ,SLSH, -|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT,SCLN, Q , J , K , X , B , M , W , V , Z , X4 , -|----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT -`----+----+----+----+----+----' `----+----+----+----+----+----' -``` - -### Lower - -``` -,----+----+----+----+----+----. ,----+----+----+----+----+----. - , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , -|----+----+----+----+----+----| |----+----+----+----+----+----| - DEL ,CAPP,LEFT,RGHT, UP ,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE, -|----+----+----+----+----+----| |----+----+----+----+----+----| - ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, , -|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , DEL , , P0 ,PDOT, , -`----+----+----+----+----+----' `----+----+----+----+----+----' -``` - -### Raise - -``` -,----+----+----+----+----+----. ,----+----+----+----+----+----. - ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , -|----+----+----+----+----+----| |----+----+----+----+----+----| - DEL ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS, -|----+----+----+----+----+----| |----+----+----+----+----+----| - MUTE,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , , -|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , , , , , , -`----+----+----+----+----+----' `----+----+----+----+----+----' -``` - -### 3rd function layer - -``` -,----+----+----+----+----+----. ,----+----+----+----+----+----. - F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , -|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , , , , , , , -|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , , , , , , , -|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , , , , , , -`----+----+----+----+----+----' `----+----+----+----+----+----' -``` diff --git a/keyboards/levinson/keymaps/hexwire/keymap.c b/keyboards/levinson/keymaps/hexwire/keymap.c deleted file mode 100644 index 485d83519..000000000 --- a/keyboards/levinson/keymaps/hexwire/keymap.c +++ /dev/null @@ -1,206 +0,0 @@ -#include "levinson.h" -#include "action_layer.h" -#include "eeconfig.h" - -extern keymap_config_t keymap_config; - -#define _QWERTY 0 -#define _COLEMAK 1 -#define _DVORAK 2 -#define _LOWER 3 -#define _RAISE 4 -#define _FN3 5 -#define _FN4 6 -#define _ADJUST 16 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, - RAISE, - FN3, - FN4, - ADJUST, -}; - -#define KC_ KC_TRNS -#define _______ KC_TRNS - -#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen -#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen -#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen -#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen -#define KC_X0 MT(MOD_LCTL, KC_ESC) -#define KC_X1 LOWER -#define KC_X2 RAISE -#define KC_X3 LT(_FN3, KC_GRV) -#define KC_X4 MT(MOD_LSFT, KC_ENT) -#define KC_X5 BL_STEP - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QWERTY] = KC_KEYMAP( - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, X4 , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - X5 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT - //`----+----+----+----+----+----' `----+----+----+----+----+----' - ), - - [_COLEMAK] = KC_KEYMAP( - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , R , S , T , D , H , N , E , I , O ,QUOT, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH, X4 , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT - //`----+----+----+----+----+----' `----+----+----+----+----+----' - ), - - [_DVORAK] = KC_KEYMAP( - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , O , E , U , I , D , H , T , N , S ,SLSH, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT,SCLN, Q , J , K , X , B , M , W , V , Z , X4 , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT - //`----+----+----+----+----+----' `----+----+----+----+----+----' - ), - - [_LOWER] = KC_KEYMAP( - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - DEL ,CAPP,LEFT,RGHT, UP ,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , DEL , , P0 ,PDOT, , - //`----+----+----+----+----+----' `----+----+----+----+----+----' - ), - - [_RAISE] = KC_KEYMAP( - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - DEL ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - MUTE,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , , , , , , - //`----+----+----+----+----+----' `----+----+----+----+----+----' - ), - - [_FN3] = KC_KEYMAP( - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , , , , , , , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , , , , , , , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , , , , , , - //`----+----+----+----+----+----' `----+----+----+----+----+----' - ), - -/* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ - [_ADJUST] = KEYMAP( \ - _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \ - _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ - ) - - -}; - -#ifdef AUDIO_ENABLE -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); -#endif - -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_qwerty); - #endif - persistent_default_layer_set(1UL<<_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_colemak); - #endif - persistent_default_layer_set(1UL<<_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_dvorak); - #endif - persistent_default_layer_set(1UL<<_DVORAK); - } - 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; -} diff --git a/keyboards/levinson/keymaps/hexwire/rules.mk b/keyboards/levinson/keymaps/hexwire/rules.mk deleted file mode 100644 index 1e5761278..000000000 --- a/keyboards/levinson/keymaps/hexwire/rules.mk +++ /dev/null @@ -1,5 +0,0 @@ -RGBLIGHT_ENABLE = yes - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/planck/planck.h b/keyboards/planck/planck.h index 6bc6a0320..b663ba1c7 100644 --- a/keyboards/planck/planck.h +++ b/keyboards/planck/planck.h @@ -29,7 +29,22 @@ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ } +// Used to create a keymap using only KC_ prefixed keys +#define KC_KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \ + ) \ + LAYOUT_planck_grid( \ + KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \ + KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \ + KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \ + KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \ + ) + #define KEYMAP LAYOUT_planck_grid #define LAYOUT_ortho_4x12 LAYOUT_planck_grid +#define KC_LAYOUT_ortho_4x12 KC_KEYMAP #endif diff --git a/keyboards/levinson/keymaps/hexwire/config.h b/layouts/community/ortho_4x12/bakingpy/config.h similarity index 92% rename from keyboards/levinson/keymaps/hexwire/config.h rename to layouts/community/ortho_4x12/bakingpy/config.h index 30348f1c3..28444fe47 100644 --- a/keyboards/levinson/keymaps/hexwire/config.h +++ b/layouts/community/ortho_4x12/bakingpy/config.h @@ -1,7 +1,7 @@ #ifndef CONFIG_USER_H #define CONFIG_USER_H -#include "../../config.h" +#include QMK_KEYBOARD_CONFIG_H /* Use I2C or Serial, not both */ diff --git a/keyboards/lets_split/keymaps/hexwire/keymap.c b/layouts/community/ortho_4x12/bakingpy/keymap.c similarity index 88% rename from keyboards/lets_split/keymaps/hexwire/keymap.c rename to layouts/community/ortho_4x12/bakingpy/keymap.c index 9da9e76f2..d3822bfd8 100644 --- a/keyboards/lets_split/keymaps/hexwire/keymap.c +++ b/layouts/community/ortho_4x12/bakingpy/keymap.c @@ -1,4 +1,4 @@ -#include "lets_split.h" +#include QMK_KEYBOARD_H #include "action_layer.h" #include "eeconfig.h" @@ -9,8 +9,7 @@ extern keymap_config_t keymap_config; #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _FN3 5 -#define _FN4 6 +#define _FKEYS 5 #define _ADJUST 16 enum custom_keycodes { @@ -19,8 +18,6 @@ enum custom_keycodes { DVORAK, LOWER, RAISE, - FN3, - FN4, ADJUST, }; @@ -31,51 +28,52 @@ enum custom_keycodes { #define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen #define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen #define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen -#define KC_X0 MT(MOD_LCTL, KC_ESC) -#define KC_X1 LOWER -#define KC_X2 RAISE -#define KC_X3 LT(_FN3, KC_GRV) -#define KC_X4 MT(MOD_LSFT, KC_ENT) +#define KC_ESCC MT(MOD_LCTL, KC_ESC) +#define KC_LOWR LOWER +#define KC_RASE RAISE +#define KC_GRVF LT(_FKEYS, KC_GRV) +#define KC_ENTS MT(MOD_LSFT, KC_ENT) +#define KC_BL_S BL_STEP const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = KC_KEYMAP( + [_QWERTY] = KC_LAYOUT_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, + ESCC, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, //|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, X4 , + LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,ENTS, //|----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT + GRVF,LCTL,LALT,LGUI,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_COLEMAK] = KC_KEYMAP( + [_COLEMAK] = KC_LAYOUT_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , R , S , T , D , H , N , E , I , O ,QUOT, + ESCC, A , R , S , T , D , H , N , E , I , O ,QUOT, //|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH, X4 , + LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH,ENTS, //|----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT + GRVF,LCTL,LALT,LGUI,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_DVORAK] = KC_KEYMAP( + [_DVORAK] = KC_LAYOUT_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , O , E , U , I , D , H , T , N , S ,SLSH, + ESCC, A , O , E , U , I , D , H , T , N , S ,SLSH, //|----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT,SCLN, Q , J , K , X , B , M , W , V , Z , X4 , + LSFT,SCLN, Q , J , K , X , B , M , W , V , Z ,ENTS, //|----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT + GRVF,LCTL,LALT,LGUI,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_LOWER] = KC_KEYMAP( + [_LOWER] = KC_LAYOUT_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -83,11 +81,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----| |----+----+----+----+----+----| ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, , //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , DEL , , P0 ,PDOT, , + BL_S, , , , ,DEL , DEL , , P0 ,PDOT, , //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_RAISE] = KC_KEYMAP( + [_RAISE] = KC_LAYOUT_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -99,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_FN3] = KC_KEYMAP( + [_FKEYS] = KC_LAYOUT_ortho_4x12( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -122,7 +120,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ - [_ADJUST] = KEYMAP( \ + [_ADJUST] = LAYOUT_ortho_4x12( \ _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/lets_split/keymaps/hexwire/README.md b/layouts/community/ortho_4x12/bakingpy/readme.md similarity index 85% rename from keyboards/lets_split/keymaps/hexwire/README.md rename to layouts/community/ortho_4x12/bakingpy/readme.md index edf2b6627..4d852de19 100644 --- a/keyboards/lets_split/keymaps/hexwire/README.md +++ b/layouts/community/ortho_4x12/bakingpy/readme.md @@ -1,4 +1,4 @@ -Hexwire's Let's Split Layout +Bakingpy's Let's Split Layout ============================ ### Changes from default layout @@ -29,11 +29,11 @@ Hexwire's Let's Split Layout ,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS, |----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, + ESCC, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, |----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, X4 , + LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,ENTS, |----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT + GRVF,LCTL,LALT,LGUI,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT `----+----+----+----+----+----' `----+----+----+----+----+----' ``` @@ -43,11 +43,11 @@ Hexwire's Let's Split Layout ,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS, |----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , R , S , T , D , H , N , E , I , O ,QUOT, + ESCC, A , R , S , T , D , H , N , E , I , O ,QUOT, |----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH, X4 , + LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH,ENTS, |----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT + GRVF,LCTL,LALT,LGUI,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT `----+----+----+----+----+----' `----+----+----+----+----+----' ``` @@ -57,11 +57,11 @@ Hexwire's Let's Split Layout ,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, |----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , O , E , U , I , D , H , R , N , S ,SLSH, + ESCC, A , O , E , U , I , D , H , R , N , S ,SLSH, |----+----+----+----+----+----| |----+----+----+----+----+----| - LSFT,SCLN, Q , J , K , X , B , M , W , V , Z , X4 , + LSFT,SCLN, Q , J , K , X , B , M , W , V , Z ,ENTS, |----+----+----+----+----+----| |----+----+----+----+----+----| - X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT + GRVF,LCTL,LALT,LGUI,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT `----+----+----+----+----+----' `----+----+----+----+----+----' ``` @@ -75,7 +75,7 @@ Hexwire's Let's Split Layout |----+----+----+----+----+----| |----+----+----+----+----+----| ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, , |----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , DEL , , P0 ,PDOT, , + , , , , ,DEL , DEL , , P0 ,PDOT, , `----+----+----+----+----+----' `----+----+----+----+----+----' ``` diff --git a/layouts/community/ortho_4x12/bakingpy/rules.mk b/layouts/community/ortho_4x12/bakingpy/rules.mk new file mode 100644 index 000000000..45ad26239 --- /dev/null +++ b/layouts/community/ortho_4x12/bakingpy/rules.mk @@ -0,0 +1,4 @@ +# Enable RGB if not a Planck +ifeq (,$(findstring planck,$(KEYBOARD))) + RGBLIGHT_ENABLE = yes +endif From 78f5a2a3dc73b8cf38c45c364c31fb42b6be51fc Mon Sep 17 00:00:00 2001 From: rempired <36162174+rempired@users.noreply.github.com> Date: Sat, 17 Feb 2018 23:09:40 -0800 Subject: [PATCH 09/12] 1up60rgb Keyboard Support (#2404) * Add files via upload * Update keymap.c * Update keymap.c * Update 1up60rgb.c * Tidy up the code a bit for submission into QMK Master - Create readme file - Fix compile issue with standard keymap - Create default keymap - Remove unused Makefile * Keymap Adjustments * Reworked alternate layouts * Reworked keymaps * Update keymap.c * Update readme.md Add carriage return to make README cleaner --- keyboards/1up60rgb/1up60rgb.c | 1 + keyboards/1up60rgb/1up60rgb.h | 20 ++++++ keyboards/1up60rgb/config.h | 58 +++++++++++++++++ keyboards/1up60rgb/keymaps/default/keymap.c | 72 +++++++++++++++++++++ keyboards/1up60rgb/keymaps/iso/keymap.c | 72 +++++++++++++++++++++ keyboards/1up60rgb/keymaps/tsangan/keymap.c | 72 +++++++++++++++++++++ keyboards/1up60rgb/readme.md | 13 ++++ keyboards/1up60rgb/rules.mk | 56 ++++++++++++++++ 8 files changed, 364 insertions(+) create mode 100644 keyboards/1up60rgb/1up60rgb.c create mode 100644 keyboards/1up60rgb/1up60rgb.h create mode 100644 keyboards/1up60rgb/config.h create mode 100644 keyboards/1up60rgb/keymaps/default/keymap.c create mode 100644 keyboards/1up60rgb/keymaps/iso/keymap.c create mode 100644 keyboards/1up60rgb/keymaps/tsangan/keymap.c create mode 100644 keyboards/1up60rgb/readme.md create mode 100644 keyboards/1up60rgb/rules.mk diff --git a/keyboards/1up60rgb/1up60rgb.c b/keyboards/1up60rgb/1up60rgb.c new file mode 100644 index 000000000..4ba631c79 --- /dev/null +++ b/keyboards/1up60rgb/1up60rgb.c @@ -0,0 +1 @@ +#include "1up60rgb.h" diff --git a/keyboards/1up60rgb/1up60rgb.h b/keyboards/1up60rgb/1up60rgb.h new file mode 100644 index 000000000..a3d820f80 --- /dev/null +++ b/keyboards/1up60rgb/1up60rgb.h @@ -0,0 +1,20 @@ +#ifndef KB_H +#define KB_H + +#include "quantum.h" + +#define KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K403, K406, K410, K411, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ + { K400, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413, K414 } \ +} + +#endif \ No newline at end of file diff --git a/keyboards/1up60rgb/config.h b/keyboards/1up60rgb/config.h new file mode 100644 index 000000000..2668ab21b --- /dev/null +++ b/keyboards/1up60rgb/config.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 1upkeyboards +#define PRODUCT 1UP RGB Underglow PCB +#define DESCRIPTION 60% keyboard with RGB underglow + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#define BACKLIGHT_PIN B6 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 5 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 20 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#endif diff --git a/keyboards/1up60rgb/keymaps/default/keymap.c b/keyboards/1up60rgb/keymaps/default/keymap.c new file mode 100644 index 000000000..3f0f49b72 --- /dev/null +++ b/keyboards/1up60rgb/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +#include "1up60rgb.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + ; + + switch (id) { + + } + return MACRO_NONE; +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + DDRB |= (1 << 2); PORTB &= ~(1 << 2); + } else { + DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} diff --git a/keyboards/1up60rgb/keymaps/iso/keymap.c b/keyboards/1up60rgb/keymaps/iso/keymap.c new file mode 100644 index 000000000..140ff6329 --- /dev/null +++ b/keyboards/1up60rgb/keymaps/iso/keymap.c @@ -0,0 +1,72 @@ +#include "1up60rgb.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + ; + + switch (id) { + + } + return MACRO_NONE; +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + DDRB |= (1 << 2); PORTB &= ~(1 << 2); + } else { + DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} diff --git a/keyboards/1up60rgb/keymaps/tsangan/keymap.c b/keyboards/1up60rgb/keymaps/tsangan/keymap.c new file mode 100644 index 000000000..6b47a1a35 --- /dev/null +++ b/keyboards/1up60rgb/keymaps/tsangan/keymap.c @@ -0,0 +1,72 @@ +#include "1up60rgb.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, KC_RGUI, KC_RCTL), + + KEYMAP( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, + KC_TRNS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + ; + + switch (id) { + + } + return MACRO_NONE; +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + DDRB |= (1 << 2); PORTB &= ~(1 << 2); + } else { + DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} diff --git a/keyboards/1up60rgb/readme.md b/keyboards/1up60rgb/readme.md new file mode 100644 index 000000000..0e132e44d --- /dev/null +++ b/keyboards/1up60rgb/readme.md @@ -0,0 +1,13 @@ +# 1upkeyboards 60% RGB + +Firmware for custom keyboard PCB with 60% key layout. + +Keyboard Maintainer: [rempired](https://github.com/rempired) +Hardware Supported: 1upkeyboards 60% RGB +Hardware Availability: [1upkeyboards](https://1upkeyboards.com/rgb-underglow-1up-pcb.html) + +Make example for this keyboard (after setting up your build environment): + + make 1up60rgb: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. diff --git a/keyboards/1up60rgb/rules.mk b/keyboards/1up60rgb/rules.mk new file mode 100644 index 000000000..c303af4bc --- /dev/null +++ b/keyboards/1up60rgb/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +AUDIO_ENABLE ?= no +RGBLIGHT_ENABLE ?= yes \ No newline at end of file From 3d92b21a3b12b03cd7d96e2efe9ced5b3f7e6bbe Mon Sep 17 00:00:00 2001 From: Danny Date: Mon, 19 Feb 2018 13:50:35 -0500 Subject: [PATCH 10/12] Update dilly default keymap (#2413) * Move DEL to correct layer * Move BNM to the left by one and move Backspace, add more stuff to layers --- keyboards/dilly/keymaps/default/keymap.c | 30 ++++++++++++++---------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/keyboards/dilly/keymaps/default/keymap.c b/keyboards/dilly/keymaps/default/keymap.c index 56e1ef4c7..67ace9d1d 100644 --- a/keyboards/dilly/keymaps/default/keymap.c +++ b/keyboards/dilly/keymaps/default/keymap.c @@ -13,16 +13,22 @@ extern keymap_config_t keymap_config; #define KC_ KC_TRNS #define _______ KC_TRNS +// Tap-Hold keys +#define KC_ASFT MT(MOD_LSFT, KC_A) +#define KC_F_L3 LT(_FN3, KC_F) #define KC_ZCTL MT(MOD_LCTL, KC_Z) #define KC_XALT MT(MOD_LALT, KC_X) -#define KC_C_L3 LT(_FN3, KC_C) +#define KC_CGUI MT(MOD_LGUI, KC_C) #define KC_V_L4 LT(_FN4, KC_V) #define KC_SPL2 LT(_FN2, KC_SPC) -#define KC_BSL1 LT(_FN1, KC_BSPC) -#define KC_B_L5 LT(_FN5, KC_B) -#define KC_NALT MT(MOD_RALT, KC_N) -#define KC_MCTL MT(MOD_RCTL, KC_M) +#define KC_B_L1 LT(_FN1, KC_B) +#define KC_N_L5 LT(_FN5, KC_N) +#define KC_MALT MT(MOD_RALT, KC_M) +#define KC_BSCT MT(MOD_RCTL, KC_BSPC) #define KC_ENTS MT(MOD_RSFT, KC_ENT) +#define KC_ESCS MT(MOD_RSFT, KC_ESC) + +#define KC_GUIC LGUI(KC_C) #define KC_RST RESET #define KC_BL_S BL_STEP @@ -42,9 +48,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,----+----+----+----+----+----+----+----+----+----. Q , W , E , R , T , Y , U , I , O , P , //|----+----+----+----+----+----+----+----+----+----| - A , S , D , F , G , H , J , K , L ,ESC , + ASFT, S , D ,F_L3, G , H , J , K , L ,ESCS, //|----+----+----+----+----+----+----+----+----+----| - ZCTL,XALT,C_L3,V_L4,SPL2,BSL1,B_L5,NALT,MCTL,ENTS + ZCTL,XALT,CGUI,V_L4,SPL2,B_L1,N_L5,MALT,BSCT,ENTS //`----+----+----+----+----+----+----+----+----+----' ), @@ -54,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----+----+----+----| F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , //|----+----+----+----+----+----+----+----+----+----| - , , , , ,DEL , , , , + , , , ,BSPC, , , , , //`----+----+----+----+----+----+----+----+----+----' ), @@ -64,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----+----+----+----| F11 ,F12 , , , , , , , ,GRV , //|----+----+----+----+----+----+----+----+----+----| - , , , , , , , , , + , , , , ,DEL , , , , //`----+----+----+----+----+----+----+----+----+----' ), @@ -74,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----+----+----+----| TAB , , , , ,COMM,DOT ,SLSH,SCLN,QUOT, //|----+----+----+----+----+----+----+----+----+----| - , , , , , ,LEFT,DOWN, UP ,RGHT + , , , ,BSPC, ,LEFT,DOWN, UP ,RGHT //`----+----+----+----+----+----+----+----+----+----' ), @@ -84,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----+----+----+----| TAB , , , , , LT , GT ,QUES,COLN,DQUO, //|----+----+----+----+----+----+----+----+----+----| - , , , , , ,HOME,PGDN,PGUP,END + , ,GUIC, ,BSPC, ,HOME,PGDN,PGUP,END //`----+----+----+----+----+----+----+----+----+----' ), @@ -94,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----+----+----+----+----| , ,DBUG, ,RHUD,RSAD,RVAD, , , , //|----+----+----+----+----+----+----+----+----+----| - BL_S, , , , , , , , , + BL_S, ,GUIC, , , , , , , //`----+----+----+----+----+----+----+----+----+----' ) From 0e92d99cdc2da358f14e6faf421b71edd0ef7f6c Mon Sep 17 00:00:00 2001 From: Jason Barnachea Date: Mon, 19 Feb 2018 11:07:59 -0800 Subject: [PATCH 11/12] Readme img link updates (#2410) * QMK and JC65 pcb img links updated link fixes * personal keymap updates new v32u4 keymap, updated v32a keymap * Update readme.md --- keyboards/jc65/readme.md | 5 +- keyboards/jc65/v32a/keymaps/naut/keymap.c | 49 ++++++----- keyboards/jc65/v32a/readme.md | 2 + keyboards/jc65/v32u4/keymaps/naut/keymap.c | 93 +++++++++++++++++++++ keyboards/jc65/v32u4/keymaps/naut/readme.md | 18 ++++ keyboards/jc65/v32u4/keymaps/naut/rules.mk | 2 + keyboards/jc65/v32u4/readme.md | 2 +- 7 files changed, 145 insertions(+), 26 deletions(-) create mode 100644 keyboards/jc65/v32u4/keymaps/naut/keymap.c create mode 100644 keyboards/jc65/v32u4/keymaps/naut/readme.md create mode 100644 keyboards/jc65/v32u4/keymaps/naut/rules.mk diff --git a/keyboards/jc65/readme.md b/keyboards/jc65/readme.md index c58f68dc0..3ab10b181 100644 --- a/keyboards/jc65/readme.md +++ b/keyboards/jc65/readme.md @@ -1,7 +1,8 @@ JC65 === -![JC65](https://imgur.com/a/C2oa5) +![JC65 with 32u4](https://i.imgur.com/I4hCyBI.jpg) +![JC65 with 32a](https://i.imgur.com/9cJ9UbX.jpg) The JC65 PCB actually has two revisions: A QMK native version, and a PS2AVRGB version. Jchan offered both PCBs as options during the M65-A Round 1 group buy and are now currently available on [keyclack.com](https://keyclack.com/) @@ -11,4 +12,4 @@ Make example native QMK version (after setting up your build environment): Make example ps2avrGB version (after setting up your build environment): - make jc65/v32a:default \ No newline at end of file + make jc65/v32a:default diff --git a/keyboards/jc65/v32a/keymaps/naut/keymap.c b/keyboards/jc65/v32a/keymaps/naut/keymap.c index 90c5a221b..71285c96c 100644 --- a/keyboards/jc65/v32a/keymaps/naut/keymap.c +++ b/keyboards/jc65/v32a/keymaps/naut/keymap.c @@ -9,11 +9,14 @@ // Define Macros #define M_PRTS M(0) #define M_PRTA M(1) -#define M_MSSN M(2) -#define M_APPS M(3) -#define M_SPOT M(4) -#define M_LEFT M(5) -#define M_RGHT M(6) +#define M_PRTSC M(2) +#define M_PRTAC M(3) +#define M_MSSN M(4) +#define M_APPS M(5) +#define M_SPOT M(6) +#define M_LEFT M(7) +#define M_RGHT M(8) +#define RGB_WHT M(9) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Base Layer @@ -35,15 +38,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Mac Layer [_MAC] = KEYMAP( TO(0), KC_F14, KC_F15, M_APPS, M_MSSN, KC_F11, KC_F12,KC_MRWD,KC_MPLY,KC_MFFD,KC_MUTE,KC_VOLD,KC_VOLU,KC_EJCT, KC_NO, KC_NO, - KC_TRNS, M_PRTS, M_PRTA,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, TO(0), M_MSSN,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, M_SPOT, M_SPOT, M_SPOT, KC_TRNS,KC_TRNS,KC_TRNS, M_LEFT, M_APPS, M_RGHT + KC_NO, M_PRTS, M_PRTA, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, KC_NO, + KC_NO,M_PRTSC,M_PRTAC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_NO, + KC_NO, KC_NO, KC_NO, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), M_MSSN, KC_NO, + KC_NO, KC_NO,KC_LGUI, M_SPOT, M_SPOT, M_SPOT, KC_RGUI, KC_NO, KC_NO, M_LEFT, M_APPS, M_RGHT ), // RGB and BL Layer [_RGB] = KEYMAP( TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_NO,RGB_HUD,RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,BL_TOGG, + KC_NO,RGB_HUD,RGB_HUI,RGB_WHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,BL_TOGG, KC_NO,RGB_SAD,RGB_SAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,RGB_TOG, KC_NO, KC_NO,RGB_VAD,RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,RGB_MOD,RGB_RMOD, KC_NO,RGB_M_P,RGB_M_R, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,RGB_M_G,RGB_M_SW @@ -55,25 +58,25 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { if (record->event.pressed) { switch(id) { case 0: - return MACRO(D(LGUI), D(LSFT), T(3), U(LSFT), U(LGUI), END); //Mac print screen - break; + return MACRO(D(LGUI), D(LSFT), T(3), U(LSFT), U(LGUI), END); // Mac print screen case 1: - return MACRO(D(LGUI), D(LSFT), T(4), U(LSFT), U(LGUI), END); //Mac print area - break; + return MACRO(D(LGUI), D(LSFT), T(4), U(LSFT), U(LGUI), END); // Mac print area case 2: - return MACRO(D(LCTL), T(UP), U(LCTL), END); //Mac mission control - break; + return MACRO(D(LCTL), D(LSFT), D(LGUI), T(3), D(LCTL), D(LSFT), D(LGUI), END); // Mac print screen to clipboard case 3: - return MACRO(D(LCTL), T(DOWN), U(LCTL), END); //Mac applications - break; + return MACRO(D(LCTL), D(LSFT), D(LGUI), T(4), D(LCTL), D(LSFT), D(LGUI), END); // Mac print area to clipboard case 4: - return MACRO(D(LGUI), T(SPC), U(LGUI), END); //Mac spotlight search - break; + return MACRO(D(LCTL), T(UP), U(LCTL), END); // Mac mission control case 5: - return MACRO(D(LCTL), T(LEFT), U(LCTL), END); //Mac mission left - break; + return MACRO(D(LCTL), T(DOWN), U(LCTL), END); // Mac app windows case 6: - return MACRO(D(LGUI), T(RGHT), U(LGUI), END); //Mac mission right + return MACRO(D(LGUI), T(SPC), U(LGUI), END); // Mac spotlight search + case 7: + return MACRO(D(LCTL), T(LEFT), U(LCTL), END); // Mac mission left + case 8: + return MACRO(D(LCTL), T(RGHT), U(LCTL), END); // Mac mission right + case 9: + rgblight_setrgb(0xff, 0xff, 0xff); // White rgb shortcut break; } } diff --git a/keyboards/jc65/v32a/readme.md b/keyboards/jc65/v32a/readme.md index 976217f10..84a5b962d 100644 --- a/keyboards/jc65/v32a/readme.md +++ b/keyboards/jc65/v32a/readme.md @@ -1,6 +1,8 @@ JC65 ps2avrGB ======= +![JC65](https://i.imgur.com/9cJ9UbX.jpg) + A 65% keyboard with RGB Keyboard Maintainer: [Jason Barnachea](https://github.com/nautxx) diff --git a/keyboards/jc65/v32u4/keymaps/naut/keymap.c b/keyboards/jc65/v32u4/keymaps/naut/keymap.c new file mode 100644 index 000000000..a2706d24b --- /dev/null +++ b/keyboards/jc65/v32u4/keymaps/naut/keymap.c @@ -0,0 +1,93 @@ +#include "v32u4.h" + +// Define Layers +#define _BASE 0 +#define _FNX 1 +#define _MAC 2 +#define _RGB 3 +#define _OFF 4 + +// Define Macros +#define M_PRTS M(0) +#define M_PRTA M(1) +#define M_PRTSC M(2) +#define M_PRTAC M(3) +#define M_MSSN M(4) +#define M_APPS M(5) +#define M_SPOT M(6) +#define M_LEFT M(7) +#define M_RGHT M(8) +#define RGB_WHT M(9) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Base Layer + [_BASE] = KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSLS, KC_GRV, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC, KC_BSPC, KC_DEL, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT,KC_PGUP, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP,KC_PGDN, + MO(1),KC_LALT,KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_NO,KC_RALT,KC_LEFT,KC_DOWN,KC_RGHT + ), + // Fn Layer + [_FNX] = KEYMAP( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,KC_TRNS, TG(4), TG(3), + KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, + 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(2),KC_VOLU,KC_MPLY, + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_MRWD,KC_VOLD,KC_MFFD + ), + // Mac Layer + [_MAC] = KEYMAP( + TO(0), KC_F14, KC_F15, M_APPS, M_MSSN, KC_F11, KC_F12,KC_MRWD,KC_MPLY,KC_MFFD,KC_MUTE,KC_VOLD,KC_VOLU,KC_EJCT, KC_NO, KC_NO, + KC_NO, M_PRTS, M_PRTA, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, KC_NO, + KC_NO,M_PRTSC,M_PRTAC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_NO, + KC_NO, KC_NO, KC_NO, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), M_MSSN, KC_NO, + KC_NO, KC_NO,KC_LGUI, M_SPOT, M_SPOT, M_SPOT, KC_RGUI, KC_NO, KC_NO, M_LEFT, M_APPS, M_RGHT + ), + // RGB and BL Layer + [_RGB] = KEYMAP( + TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_NO,RGB_HUD,RGB_HUI,RGB_WHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,BL_TOGG, + KC_NO,RGB_SAD,RGB_SAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,RGB_TOG, + KC_NO, KC_NO,RGB_VAD,RGB_VAI, BL_DEC, BL_INC, KC_NO, KC_NO, KC_NO, KC_NO,RGB_MOD,RGB_RMOD, KC_NO,RGB_M_P,RGB_M_R, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,RGB_M_G,RGB_M_SW + ), + // Mash Layer + [_OFF] = KEYMAP( + TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), +}; + +// The Macros +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (record->event.pressed) { + switch(id) { + case 0: + return MACRO(D(LGUI), D(LSFT), T(3), U(LSFT), U(LGUI), END); // Mac print screen + case 1: + return MACRO(D(LGUI), D(LSFT), T(4), U(LSFT), U(LGUI), END); // Mac print area + case 2: + return MACRO(D(LCTL), D(LSFT), D(LGUI), T(3), D(LCTL), D(LSFT), D(LGUI), END); // Mac print screen to clipboard + case 3: + return MACRO(D(LCTL), D(LSFT), D(LGUI), T(4), D(LCTL), D(LSFT), D(LGUI), END); // Mac print area to clipboard + case 4: + return MACRO(D(LCTL), T(UP), U(LCTL), END); // Mac mission control + case 5: + return MACRO(D(LCTL), T(DOWN), U(LCTL), END); // Mac app windows + case 6: + return MACRO(D(LGUI), T(SPC), U(LGUI), END); // Mac spotlight search + case 7: + return MACRO(D(LCTL), T(LEFT), U(LCTL), END); // Mac mission left + case 8: + return MACRO(D(LCTL), T(RGHT), U(LCTL), END); // Mac mission right + case 9: + rgblight_setrgb(0xff, 0xff, 0xff); // White rgb shortcut + break; + } + } + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboards/jc65/v32u4/keymaps/naut/readme.md b/keyboards/jc65/v32u4/keymaps/naut/readme.md new file mode 100644 index 000000000..ef5947f7c --- /dev/null +++ b/keyboards/jc65/v32u4/keymaps/naut/readme.md @@ -0,0 +1,18 @@ +Naut's Keymap +======= + +Layer 1: HHKB Split backspace, 6.25u space, control on caps, Fn on L-Ctl. + +Layer 2: F Row on numrow, caps on tab, media shortcuts on arrows + +Layer 3: Mac Media buttons on numrow + +Layer 4: RGB control + +Layer 5: Keyboard off (for mashing purposes and reset) + +Keymap Maintainer: [Jason Barnachea](https://github.com/nautxx) + +Difference from base layout: HHKBish layout. HHKB Fn layer. Mac media layer. RGB control layer. Button mashing layer. + +Intended usage: Daily driver for keyboard peacocking. diff --git a/keyboards/jc65/v32u4/keymaps/naut/rules.mk b/keyboards/jc65/v32u4/keymaps/naut/rules.mk new file mode 100644 index 000000000..d7463419b --- /dev/null +++ b/keyboards/jc65/v32u4/keymaps/naut/rules.mk @@ -0,0 +1,2 @@ +RGBLIGHT_ENABLE = yes +BACKLIGHT_ENABLE = yes diff --git a/keyboards/jc65/v32u4/readme.md b/keyboards/jc65/v32u4/readme.md index c6a2b2b8f..c85c166a2 100644 --- a/keyboards/jc65/v32u4/readme.md +++ b/keyboards/jc65/v32u4/readme.md @@ -1,7 +1,7 @@ JC65 === -![JC65](https://imgur.com/a/C2oa5) +![JC65](https://i.imgur.com/I4hCyBI.jpg) The JC65 PCB actually has two revisions: A QMK native version, and a PS2AVRGB version. Jchan offered both PCBs as options during the M65-A Round 1 group buy, and were also available choices for the 65% acrylic case group buy. In the near future both PCB versions should be available from keyclack.com when the storefront part opens. From 8df2ee4ec3758b45fe762fd8fc1840e04c8f5f73 Mon Sep 17 00:00:00 2001 From: Ben Hilburn Date: Mon, 19 Feb 2018 14:09:05 -0500 Subject: [PATCH 12/12] Minor updates to docs (#2406) * [docs/] Cleaning up some language to make it more clear. * [docs/] Adding instructions for installing deps on RH / Fedora. --- docs/faq_build.md | 45 ++++++++++++++--------------- docs/getting_started_build_tools.md | 5 +++- docs/keymap.md | 2 +- 3 files changed, 27 insertions(+), 25 deletions(-) diff --git a/docs/faq_build.md b/docs/faq_build.md index d38ca69d0..ff409f9c6 100644 --- a/docs/faq_build.md +++ b/docs/faq_build.md @@ -1,40 +1,25 @@ # Frequently Asked Build Questions -This page covers questions about building QMK. If you have not yet you should read the [Build Environment Setup](getting_started_build_tools.md) and [Make Instructions](getting_started_make_guide.md) guides. +This page covers questions about building QMK. If you haven't yet done so, you should read the [Build Environment Setup](getting_started_build_tools.md) and [Make Instructions](getting_started_make_guide.md) guides. ## Can't Program on Linux -You will need proper permission to operate a device. For Linux users see udev rules below. Easy way is to use `sudo` command, if you are not familiar with this command check its manual with `man sudo` or this page on line. +You will need proper permissions to operate a device. For Linux users, see the instructions regarding `udev` rules, below. If you have issues with `udev`, a work-around is to use the `sudo` command. If you are not familiar with this command, check its manual with `man sudo` or [see this webpage](https://linux.die.net/man/8/sudo). -In short when your controller is ATMega32u4, +An example of using `sudo`, when your controller is ATMega32u4: $ sudo dfu-programmer atmega32u4 erase --force $ sudo dfu-programmer atmega32u4 flash your.hex $ sudo dfu-programmer atmega32u4 reset -or just +or just: $ sudo make ::dfu -But to run `make` with root privilege is not good idea. Use former method if possible. - -## WINAVR is Obsolete -It is no longer recommended and may cause some problem. -See [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99). - -## USB VID and PID -You can use any ID you want with editing `config.h`. Using any presumably unused ID will be no problem in fact except for very low chance of collision with other product. - -Most boards in QMK use `0xFEED` as the vendor ID. You should look through other keyboards to make sure you pick a unique Product ID. - -Also see this. -https://github.com/tmk/tmk_keyboard/issues/150 - -You can buy a really unique VID:PID here. I don't think you need this for personal use. -- http://www.obdev.at/products/vusb/license.html -- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 +Note that running `make` with `sudo` is generally *not* a good idea, and you should use one of the former methods, if possible. ## Linux `udev` Rules -On Linux you need proper privilege to access device file of MCU, you'll have to use `sudo` when flashing firmware. You can circumvent this with placing these files in `/etc/udev/rules.d/`. +On Linux, you'll need proper privileges to access the MCU. You can either use +`sudo` when flashing firmware, or place these files in `/etc/udev/rules.d/`. **/etc/udev/rules.d/50-atmel-dfu.rules:** ``` @@ -52,6 +37,21 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", MODE:="066 SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" ``` +## WINAVR is Obsolete +It is no longer recommended and may cause some problem. +See [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99). + +## USB VID and PID +You can use any ID you want with editing `config.h`. Using any presumably unused ID will be no problem in fact except for very low chance of collision with other product. + +Most boards in QMK use `0xFEED` as the vendor ID. You should look through other keyboards to make sure you pick a unique Product ID. + +Also see this. +https://github.com/tmk/tmk_keyboard/issues/150 + +You can buy a really unique VID:PID here. I don't think you need this for personal use. +- http://www.obdev.at/products/vusb/license.html +- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 ## Cortex: `cstddef: No such file or directory` GCC 4.8 of Ubuntu 14.04 had this problem and had to update to 4.9 with this PPA. @@ -61,7 +61,6 @@ https://github.com/tmk/tmk_keyboard/issues/212 https://github.com/tmk/tmk_keyboard/wiki/mbed-cortex-porting#compile-error-cstddef https://developer.mbed.org/forum/mbed/topic/5205/ - ## `clock_prescale_set` and `clock_div_1` Not Available Your toolchain is too old to support the MCU. For example WinAVR 20100110 doesn't support ATMega32u2. diff --git a/docs/getting_started_build_tools.md b/docs/getting_started_build_tools.md index cd748dbf8..13c8def52 100644 --- a/docs/getting_started_build_tools.md +++ b/docs/getting_started_build_tools.md @@ -31,11 +31,14 @@ git Install the dependencies with your favorite package manager. -Debian/Ubuntu example: +Debian / Ubuntu example: sudo apt-get update sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi +Fedora / Red Hat example: + sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs arm-none-eabi-binutils-cs arm-none-eabi-newlib + ## Nix If you're on [NixOS](https://nixos.org/), or have Nix installed on Linux or macOS, run `nix-shell` from the repository root to get a build environment. diff --git a/docs/keymap.md b/docs/keymap.md index 8401ee148..090a92661 100644 --- a/docs/keymap.md +++ b/docs/keymap.md @@ -33,7 +33,7 @@ The state of the Keymap layer is determined by two 32 bit parameters: * **`default_layer_state`** indicates a base keymap layer (0-31) which is always valid and to be referred (the default layer). * **`layer_state`** has current on/off status of each layer in its bits. -Keymap layer '0' is usually `default_layer`, wither other layers initially off after booting up the firmware, although this can configured differently in `config.h`. It is useful to change `default_layer` when you completely switch a key layout, for example, if you want to switch to Colemak instead of Qwerty. +Keymap layer '0' is usually the `default_layer`, with other layers initially off after booting up the firmware, although this can configured differently in `config.h`. It is useful to change `default_layer` when you completely switch a key layout, for example, if you want to switch to Colemak instead of Qwerty. Initial state of Keymap Change base layout ----------------------- ------------------