diff options
author | William Chang <william@factual.com> | 2019-07-13 10:18:33 -0700 |
---|---|---|
committer | William Chang <william@factual.com> | 2019-07-13 10:18:33 -0700 |
commit | 71493b2f9bbd5f3d18373c518fa14ccafcbf48fc (patch) | |
tree | 3bb3e5e496621535611e087720aa5c4d7a533e5e /layouts/community/ergodox | |
parent | 86ad4988fe7ff64916127509d84f44c56fa097aa (diff) | |
parent | da1f05fbc19477c05c0c01bb07fabfaf1ece9d54 (diff) |
Merge branch 'master' of https://github.com/qmk/qmk_firmware
Diffstat (limited to 'layouts/community/ergodox')
19 files changed, 1137 insertions, 1154 deletions
diff --git a/layouts/community/ergodox/333fred/keymap.c b/layouts/community/ergodox/333fred/keymap.c index c649e88dca..1345927660 100644 --- a/layouts/community/ergodox/333fred/keymap.c +++ b/layouts/community/ergodox/333fred/keymap.c @@ -4,28 +4,6 @@ #include "version.h" #include "333fred.h" -enum custom_keycodes { - PLACEHOLDER = SAFE_RANGE, // can always be here - EPRM, - VRSN, -}; - -enum custom_macros { - // Windows macros - DLEFT, - DRIGHT, - PSCREEN_APP, - LSFT_TAB, - - // KeePass macros - KEEPASS_OPEN, - KEEPASS_TYPE, - - // Terminal Copy/Paste - TERM_CP, - TERM_PT -}; - // NOTE: Cells marked with ACCESS must remain transparent, they're the keys that actually get to that layer const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -85,26 +63,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[CODEFLOW] = LAYOUT_ergodox( // layer 1 : code +[CODEFLOW] = LAYOUT_ergodox_pretty( // layer 1 : code // left hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right han - - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_F7, KC_F8, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_F7, KC_F8, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ ), /* Keymap 3: Symbol Layer * @@ -129,14 +97,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [SYMB] = LAYOUT_ergodox_pretty( // left hand - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, KC_TRNS, KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, - KC_TRNS, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, - KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - M(PSCREEN_APP), KC_TRNS, - KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, _______, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, _______, + _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, _______, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, _______, + _______, _______, _______, _______, _______, KC_0, KC_0, KC_DOT, KC_EQL, _______, + _______, _______, _______, _______, + PSCREEN_APP, _______, + _______, _______, KC_PSCR, _______, _______, _______ ), /* Keymap 3: Media and mouse keys * @@ -160,14 +128,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------' `--------------------' */ [MDIA] = LAYOUT_ergodox_pretty( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - BL_INC, BL_DEC, KC_VOLU, KC_TRNS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, KC_VOLU, _______, BL_TOGG, KC_VOLD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT + _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT ), /* Keymap 4: Movement * @@ -192,14 +160,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // MEDIA AND MOUSE [VIM] = LAYOUT_ergodox_pretty( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(KEEPASS_OPEN), M(KEEPASS_TYPE), TERM_CP, TERM_PT, KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_C), KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_V), KC_TRNS, - KC_TRNS, M(DLEFT), M(DRIGHT), KC_LCTL, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, - KC_TRNS, M(LSFT_TAB), KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_HOME, KC_END, - KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, + _______, _______, KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_HOME, KC_END, + _______, _______, + _______, _______, _______, _______, _______, _______ ), /* Keymap 1: Game Layer * @@ -226,14 +194,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [GAME] = LAYOUT_ergodox_pretty( // layer 1 : code // left hand - KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_Z, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_ENT, KC_TRNS, KC_TRNS, KC_LOCK, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_ENT, _______, _______, KC_LOCK, KC_BSPC, _______, _______, _______, _______, _______, KC_F5, KC_F6, LCTL(KC_C), LCTL(KC_V), - KC_TRNS, KC_UP, - KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, KC_TRNS, KC_TRNS + _______, KC_UP, + KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, _______, _______ ), /* Keymap 1: Game Arrow Layer * @@ -260,71 +228,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [GAME_ARROW] = LAYOUT_ergodox_pretty( // layer 1 : code // left hand - KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_Z, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_ENT, KC_TRNS, KC_TRNS, KC_LOCK, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LCTL, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_ENT, _______, _______, KC_LOCK, KC_BSPC, _______, _______, _______, _______, _______, KC_F5, KC_F6, LCTL(KC_C), LCTL(KC_V), - KC_TRNS, KC_UP, - KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, KC_TRNS, KC_TRNS + _______, KC_UP, + KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, _______, _______ ) }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case DLEFT: - if (record->event.pressed) { // Windows move desktop left - return MACRO(D(LCTL), D(LGUI), T(LEFT), U(LGUI), U(LCTL), END); - } - break; - case DRIGHT: - if (record->event.pressed) { // Windows move desktop right - return MACRO(D(LCTL), D(LGUI), T(RIGHT), U(LGUI), U(LCTL), END); - } - break; - case PSCREEN_APP: - if (record->event.pressed) { - return MACRO(D(LALT), T(PSCR), U(LALT), END); - } - break; - case LSFT_TAB: - if (record->event.pressed) { - return MACRO(D(LSFT), T(TAB), U(LSFT), END); - } - case KEEPASS_OPEN: - if (record->event.pressed) { // Keepass open application - return MACRO(D(LCTL), D(LALT), T(K), U(LALT), U(LCTL), END); - } - break; - case KEEPASS_TYPE: - if (record->event.pressed) { // Keepass autotype - return MACRO(D(LCTL), D(LALT), T(A), U(LALT), U(LCTL), END); - } - break; - case TERM_CP: - if (record->event.pressed) { // Terminal Copy - return MACRO(D(LCTL), T(INSERT), U(LCTL), END); - } - break; - case TERM_PT: - if (record->event.pressed) { // Terminal Paste - return MACRO(D(LSFT), T(INSERT), U(LSFT), END); - } - break; - } - return MACRO_NONE; -}; - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - tap_dance_process_record(keycode); + tap_dance_process_keycode(keycode); return true; } // Runs constantly in the background, in a loop. -void matrix_scan_user_keyboard(void) { +void matrix_scan_user(void) { ergodox_board_led_on(); ergodox_led_all_on(); } diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h index 7feaf6f252..821710ed8e 100644 --- a/layouts/community/ergodox/drashna/config.h +++ b/layouts/community/ergodox/drashna/config.h @@ -13,3 +13,4 @@ #define PRODUCT DrashnaDox - Hacked ErgoDox EZ Shine #undef DEBOUNCE +#define DEBOUNCE 15 diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index 3cfce966be..74382f1752 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -24,10 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. # define UC(x) KC_NO #endif -#ifdef RGB_MATRIX_ENABLE -extern bool g_suspend_state; -extern rgb_config_t rgb_matrix_config; -#endif extern userspace_config_t userspace_config; enum more_custom_keycodes { @@ -403,15 +399,6 @@ void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); } -extern led_config_t g_led_config; -void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { - if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { - rgb_matrix_set_color( i, red, green, blue ); - } - } -} - void rgb_matrix_indicators_user(void) { if ( userspace_config.rgb_layer_change && #ifdef RGB_DISABLE_WHEN_USB_SUSPENDED @@ -425,9 +412,9 @@ void rgb_matrix_indicators_user(void) { ) { switch (biton32(layer_state)) { case _MODS: - rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break; + rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break; case _GAMEPAD: - rgb_matrix_layer_helper(0xFF, 0x80, 0x00); + rgb_matrix_layer_helper(0xFF, 0x80, 0x00, LED_FLAG_MODIFIER); rgb_matrix_set_color(32, 0x00, 0xFF, 0x00); // Q rgb_matrix_set_color(31, 0x00, 0xFF, 0xFF); // W rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); // E @@ -437,37 +424,37 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(35, 0x00, 0xFF, 0xFF); // D rgb_matrix_set_color(34, 0x7A, 0x00, 0xFF); // F - rgb_matrix_set_color(27, 0xFF, 0xFF, 0xFF); // 1 - rgb_matrix_set_color(26, 0x00, 0xFF, 0x00); // 2 + rgb_matrix_set_color(userspace_config.swapped_numbers ? 27 : 26, 0xFF, 0xFF, 0xFF); // 1 + rgb_matrix_set_color(userspace_config.swapped_numbers ? 26 : 27, 0x00, 0xFF, 0x00); // 2 rgb_matrix_set_color(25, 0x7A, 0x00, 0xFF); // 3 break; case _DIABLO: - rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break; + rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break; case _RAISE: - rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break; + rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break; case _LOWER: - rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break; + rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break; case _ADJUST: - rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break; + rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break; default: switch (biton32(default_layer_state)) { case _QWERTY: - rgb_matrix_layer_helper(0x00, 0xFF, 0xFF); break; + rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_MODIFIER); break; case _COLEMAK: - rgb_matrix_layer_helper(0xFF, 0x00, 0xFF); break; + rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_MODIFIER); break; case _DVORAK: - rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break; + rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break; case _WORKMAN: - rgb_matrix_layer_helper(0xD9, 0xA5, 0x21); break; + rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_MODIFIER); break; case _NORMAN: - rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D); break; + rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_MODIFIER); break; case _MALTRON: - rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break; + rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break; case _EUCALYN: - rgb_matrix_layer_helper(0xFF, 0x80, 0xBF); break; + rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_MODIFIER); break; case _CARPLAX: - rgb_matrix_layer_helper(0x00, 0x00, 0xFF); break; + rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_MODIFIER); break; } } } diff --git a/layouts/community/ergodox/drashna_glow/config.h b/layouts/community/ergodox/drashna_glow/config.h index 5eb1c6d0f3..e6c8223e91 100644 --- a/layouts/community/ergodox/drashna_glow/config.h +++ b/layouts/community/ergodox/drashna_glow/config.h @@ -18,7 +18,9 @@ # define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON # define DISABLE_RGB_MATRIX_DUAL_BEACON # define DISABLE_RGB_MATRIX_RAINBOW_BEACON +# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS # define DISABLE_RGB_MATRIX_DIGITAL_RAIN +# define DISABLE_RGB_MATRIX_SOLID_REACTIVE # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS diff --git a/layouts/community/ergodox/erez_experimental/config.h b/layouts/community/ergodox/erez_experimental/config.h deleted file mode 100644 index 4b9c29c94e..0000000000 --- a/layouts/community/ergodox/erez_experimental/config.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include QMK_KEYBOARD_CONFIG_H - -#define ONESHOT_TAP_TOGGLE 2 -#define ONESHOT_TIMEOUT 300 - -#undef LEADER_TIMEOUT -#define LEADER_TIMEOUT 300 - - -#endif diff --git a/layouts/community/ergodox/erez_experimental/keymap.c b/layouts/community/ergodox/erez_experimental/keymap.c deleted file mode 100644 index 1270188f97..0000000000 --- a/layouts/community/ergodox/erez_experimental/keymap.c +++ /dev/null @@ -1,217 +0,0 @@ -#include <keymap_extras/keymap_colemak.h> -#include QMK_KEYBOARD_H -#include "debug.h" -#include "action_layer.h" - -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys - -enum custom_keycodes { - PLACEHOLDER = SAFE_RANGE, // can always be here - RGB_FF00BB // always start with RGB_ -}; - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 |Ctrl- | | Ctrl+| 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | S | D | F | G |------| |------| H | Alt/J| K | L |; / L2| LGui/' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * |LShift/(|Z/Ctrl| X | C | V | B | [ | | ] | N | M | , | . |//Ctrl|RShift/)| - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | -/L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Leader|------| |------| Tab/L1 |Enter | - * | | | End | | PgDn | | | - * `--------------------' `----------------------' - */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[BASE] = LAYOUT_ergodox( // layer 0 : default - // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, LCTL(KC_MINS), - KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), - KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_LBRC), - LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPC,KC_LEAD,KC_END, - // right hand - LCTL(KC_EQL), KC_6,KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT), - MEH_T(KC_RBRC),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSPC, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_MINS), - KC_LALT, CTL_T(KC_ESC), - KC_PGUP, - KC_PGDN,LT(SYMB, KC_TAB), KC_ENT - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | 1 | 2 | 3 | 4 | 5 |------| |------| & | _ | - | ; | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | 6 | 7 | 8 | 9 | 0 | | | | | | @ | = | % | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | |NxtTab|PrvTab| | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | |TOG | - * ,------|------|------| |------+------+------. - * |VAI |VAD |HUI | |SAI | |MOD | - * | | |------| |------| | | - * | | |HUD | |SAD | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = LAYOUT_ergodox( - // left hand - RGB_FF00BB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN), - KC_TRNS,KC_TRNS, - RGB_HUI, - RGB_VAI,RGB_VAD,RGB_HUD, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, - KC_AMPR, KC_UNDS, KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS, - KC_TRNS, KC_PIPE, KC_AT, KC_EQL, KC_PERC, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_TOG, KC_TRNS, - RGB_SAI, - RGB_SAD, KC_TRNS, RGB_MOD -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | PgUp | Home | End | PgDn | |------| |------| | | | | | Play | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -[MDIA] = LAYOUT_ergodox( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_PGUP, KC_HOME, KC_END, KC_PGDN, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, - KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - return MACRO_NONE; -}; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { - -}; - - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - // dynamically generate these. - case RGB_FF00BB: - if (record->event.pressed) { - #ifdef RGBLIGHT_ENABLE - rgblight_enable(); - rgblight_mode(1); - rgblight_setrgb(0xff,0x00,0xbb); - #endif - } - return false; - break; - } - return true; -} - -LEADER_EXTERNS(); - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - - uint8_t layer = biton32(layer_state); - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - // TODO: Make this relevant to the ErgoDox EZ. - case 1: - ergodox_right_led_1_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - default: - // none - break; - } - - LEADER_DICTIONARY() { - leading = false; - leader_end(); - - SEQ_ONE_KEY(KC_W) { - register_code(KC_LALT); - register_code(KC_F4); - unregister_code(KC_F4); - unregister_code(KC_LALT); - } - SEQ_ONE_KEY(KC_O) { - register_code(KC_LCTL); - register_code(KC_LSFT); - register_code(KC_O); - unregister_code(KC_O); - unregister_code(KC_LSFT); - unregister_code(KC_LCTL); - } - } -} - diff --git a/layouts/community/ergodox/erez_experimental/readme.md b/layouts/community/ergodox/erez_experimental/readme.md deleted file mode 100644 index f0738d9a70..0000000000 --- a/layouts/community/ergodox/erez_experimental/readme.md +++ /dev/null @@ -1,55 +0,0 @@ -# Erez's experimental layout - -This is my personal layout which I use to test out ideas which may or may not make it onto the default layout we ship with. It's based off the default layout, with various tweaks. - -Changelog: - -## Nov 1, 2016: - -* Adds dedicated text zooming keys in inner corners - -## May 24, 2016: - -* Implements Leader key example - * Leader, W sends Alt-F4 - * Leader, O sends Ctrl-shift-o (a shortcut I use in FrontApp) - -## May 8, 2016: - -* Makes bottom-right key send minus/underscore when tapped, L1 temporary toggle when held -* Tweaked the positions of the numbers on the symbol layer. Basically, 12345 are now directly under their number-row counterparts in layer 0. You can imagine pulling the number row down to the home row. And 67890 are directly under 12345 - so it's a matter of just adding 5 and going to the next row (1+5 = 6, 2+5 = 7 and so on). -* Tweaks media/nav layer - * Removes mouse control, as I don't use it - * Makes left home row keys PgUp, Home, End, PgDn - -## Apr 29, 2016: - -* Tweaks the Hyper and Meh key to send brackets when tapped -* Turns bottom-right key into a minus/underscore (easy to reach with the right pinky) - -## Apr 25, 2016: - -* Made it so that the right and left Shift keys send opening and closing parens ( ) when tapped - -## Feb 11, 2016: - -* Updated ASCII legend for thumb clusters -* Made it so outer left-hand thumb key is L1 momentary toggle -* Added % and @ to L1 -* Swapped positions for _ and - on L1 - -## Feb 5, 2016: - -* A whole new design for the symbol layer. Specifically: - * Put the minus, underscore, and semicolon right in the homerow for the right hand - * Parens are in better places for me - * The arrow keys now send Ctrl-PgUp and Ctrl-PgDn, for switching browser tabs with the arrows when in symbol layer - * Tab (right-hand outer thumb key) now does double duty to toggle symbol layer when held down - * Backspace (left-hand outer thumb key) now just toggles symbol layer (I wasn't using it as a backspace) - - -## Jan 19, 2016: - -* Made J into dual-action key (Alt when held down), to make Alt-tab more ergonomic. -* Made ' into dual-action key (Win/Cmd when held down). - diff --git a/layouts/community/ergodox/erez_experimental/rules.mk b/layouts/community/ergodox/erez_experimental/rules.mk deleted file mode 100644 index f68b56f872..0000000000 --- a/layouts/community/ergodox/erez_experimental/rules.mk +++ /dev/null @@ -1,6 +0,0 @@ -# Having a file like this allows you to override Makefile definitions -# for your own particular keymap - -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -COMMAND_ENABLE = no # Commands for debug and configuration -LEADER_ENABLE = yes diff --git a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..86547df98e --- /dev/null +++ b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c @@ -0,0 +1,21 @@ + +// generated from users/manna-harbour_miryoku/miryoku.org + +#define LAYOUT_miryoku(\ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ +)\ +LAYOUT_ergodox_pretty( \ +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ +KC_NO, K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09, KC_NO, \ +KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \ +KC_NO, K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29, KC_NO, \ +KC_NO, KC_NO, KC_NO, KC_NO, K32, K37, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, \ + K33, K34, KC_NO, KC_NO, K35, K36 \ +) + +#include "manna-harbour_miryoku.c" diff --git a/layouts/community/ergodox/nstickney/keymap.c b/layouts/community/ergodox/nstickney/keymap.c index dc83c2f4d7..a37bc5f964 100644 --- a/layouts/community/ergodox/nstickney/keymap.c +++ b/layouts/community/ergodox/nstickney/keymap.c @@ -1,196 +1,125 @@ -#include QMK_KEYBOARD_H +#include "nstickney.h" /* * This keymap simulates the key limitations of an Iris on an ErgoDox. See the - * matching iris layout (/keyboards/iris/keymaps/nstickney) for further + * matching iris layout (/keyboards/keebio/iris/keymaps/nstickney) for further * information. */ -// Layers -#define BASE 0 // Base layer -#define SYMB 1 // Symbols -#define SYSH 2 // Symbols, shifted -#define NUMP 4 // Numpad -#define FCTN 8 // Function - -// Tap Dancing -void dance_lock (qk_tap_dance_state_t *state, void *user_data) { - switch (state->count){ - case 1: // Press once for LGUI - tap_code(KC_LGUI); - break; - case 2: // Press twice for NUMLOCK - tap_code(KC_NLCK); - break; - case 3: // Press thrice for CAPSLOCK - tap_code(KC_CAPS); - break; - case 4: // Press four times for SCROLLOCK - tap_code(KC_SLCK); - break; - default: - break; - } -}; - -void dance_layer (qk_tap_dance_state_t *state, void *user_data) { - switch (state -> count) { - case 1: // Press once for MENU - tap_code(KC_APP); - break; - case 2: // Press twice for NUMPAD - layer_invert(NUMP); - break; - case 3: // Press thrice for SYMBOLS - layer_invert(SYMB); - break; - case 4: // Press four times for SYMBOLS, SHIFTED - layer_invert(SYSH); - break; - default: - break; - } -}; - -enum tap_dances {LOCKS = 0, LAYERS = 1}; -qk_tap_dance_action_t tap_dance_actions[] = { - [LOCKS] = ACTION_TAP_DANCE_FN(dance_lock), - [LAYERS] = ACTION_TAP_DANCE_FN(dance_layer) -}; - -// Make layering more clear -enum custom_keycodes { - __________ = KC_TRNS, - XXX = KC_NO, - CC_ESC = LCTL_T(KC_ESC), - CC_QUOT = RCTL_T(KC_QUOT), - AC_SLSH = LALT_T(KC_SLSH), - AC_EQL = RALT_T(KC_EQL), - FC_BSLS = LT(FCTN, KC_BSLS), - FC_MINS = LT(FCTN, KC_MINS), -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT_ergodox( // left hand - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, XXX, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXX, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, XXX, - XXX, XXX, XXX, XXX, AC_SLSH, - TD(LOCKS), XXX, - XXX, - FC_BSLS, KC_SPC, XXX, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AC_SLSH, + TD(LOCKS), XXXXXXX, + XXXXXXX, + FC_BSLS, KC_SPC, XXXXXXX, // right hand - XXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - XXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT, - XXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, - AC_EQL, XXX, XXX, XXX, XXX, - XXX, TD(LAYERS), - XXX, - XXX, KC_ENT, FC_MINS + XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + AC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, TD(LAYERS), + XXXXXXX, + XXXXXXX, KC_ENT, FC_MINS ), [SYMB] = LAYOUT_ergodox( // left hand - UC(0x00EF), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), __________, - __________, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), __________, - __________, UC(0x00E1), UC(0x00DF), UC(0x00F0), UC(0x00EC), UC(0x00ED), - __________, UC(0x00E6), UC(0x00E8), UC(0x00A9), UC(0x00EA), UC(0x00EB), __________, - __________, __________, __________, __________, UC(0x00BF), - __________, __________, - __________, - UC(0x00AC), __________, __________, + UC(0x00EF), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), _______, + _______, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), _______, + _______, UC(0x00E1), UC(0x00DF), UC(0x00F0), UC(0x00EC), UC(0x00ED), + _______, UC(0x00E6), UC(0x00E8), UC(0x00A9), UC(0x00EA), UC(0x00EB), _______, + _______, _______, _______, _______, UC(0x00BF), + _______, _______, + _______, + _______, UC(0x00AC), _______, // right hand - __________, UC(0x00BC), UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), __________, - __________, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), __________, + _______, UC(0x00BC), UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), _______, + _______, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), _______, UC(0x00EE), UC(0x00E0), UC(0x00E2), UC(0x00F8), UC(0x00B6), UC(0x00B4), - __________, UC(0x00F1), UC(0x00FD), UC(0x00E7), UC(0x00F4), UC(0x00BF), __________, - UC(0x00D7), __________, __________, __________, __________, - __________, __________, - __________, - __________, __________, UC(0x00B1) + _______, UC(0x00F1), UC(0x00FD), UC(0x00E7), UC(0x00F4), UC(0x00BF), _______, + UC(0x00D7), _______, _______, _______, _______, + _______, _______, + _______, + _______, UC(0x00B1), _______ ), [SYSH] = LAYOUT_ergodox( // left hand - UC(0x00CF), UC(0x00B9), UC(0x2200), UC(0x2201), UC(0x00A3), UC(0x00A5), __________, - __________, UC(0x00C4), UC(0x00C5), UC(0x00C9), UC(0x2122), UC(0x00DE), __________, - __________, UC(0x00C1), UC(0x00A7), UC(0x00D0), UC(0x00CC), UC(0x00CD), - __________, UC(0x00C6), UC(0x00C8), UC(0x00A2), UC(0x00CA), UC(0x00CB), __________, - __________, __________, __________, __________, UC(0x203D), - __________, __________, - __________, - UC(0x00A6), __________, __________, + UC(0x00CF), UC(0x00B9), UC(0x2200), UC(0x2201), UC(0x00A3), UC(0x00A5), _______, + _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), UC(0x2122), UC(0x00DE), _______, + _______, UC(0x00C1), UC(0x00A7), UC(0x00D0), UC(0x00CC), UC(0x00CD), + _______, UC(0x00C6), UC(0x00C8), UC(0x00A2), UC(0x00CA), UC(0x00CB), _______, + _______, _______, _______, _______, UC(0x203D), + _______, _______, + _______, + _______, UC(0x00A6), _______, // right hand - __________, UC(0x00B5), UC(0x00AB), UC(0x00BB), UC(0x201C), UC(0x201D), __________, - __________, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), __________, + _______, UC(0x00B5), UC(0x00AB), UC(0x00BB), UC(0x201C), UC(0x201D), _______, + _______, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), _______, UC(0x00CE), UC(0x00C1), UC(0x00C2), UC(0x00D8), UC(0x00B0), UC(0x00A8), - __________, UC(0x00D1), UC(0x00DD), UC(0x00C7), UC(0x00D4), UC(0x203D), __________, - UC(0x00F7), __________, __________, __________, __________, - __________, __________, - __________, - __________, __________, UC(0x00AA) + _______, UC(0x00D1), UC(0x00DD), UC(0x00C7), UC(0x00D4), UC(0x203D), _______, + UC(0x00F7), _______, _______, _______, _______, + _______, _______, + _______, + _______, UC(0x00AA), _______ ), [NUMP] = LAYOUT_ergodox( // left hand - __________, __________, KC_P7, KC_P8, KC_P9, KC_PSLS, __________, - __________, __________, KC_P4, KC_P5, KC_P6, KC_PAST, __________, - __________, __________, KC_P1, KC_P2, KC_P3, KC_PMNS, - __________, __________, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, __________, - __________, __________, __________, __________, __________, - __________, __________, - __________, - __________, __________, __________, + _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, + _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, + _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, + _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, + _______, _______, _______, _______, _______, + _______, _______, + _______, + _______, _______, _______, // right hand - __________, __________, KC_P7, KC_P8, KC_P9, KC_PSLS, __________, - __________, __________, KC_P4, KC_P5, KC_P6, KC_PAST, __________, - __________, KC_P1, KC_P2, KC_P3, KC_PMNS, __________, - __________, __________, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, __________, - __________, __________, __________, __________, __________, - __________, __________, - __________, - __________, KC_PENT, __________ + _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, + _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, + _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, + _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, + _______, _______, _______, _______, _______, + _______, _______, + _______, + _______, KC_PENT, _______ ), [FCTN] = LAYOUT_ergodox( // left hand - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, __________, - KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, __________, - KC_PAUS, __________, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, - __________, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, __________, - __________, __________, __________, __________, __________, - KC_F11, __________, - __________, - __________, __________, __________, + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, + KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, + KC_PAUS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, + _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, _______, + _______, _______, _______, _______, _______, + KC_F11, _______, + _______, + _______, _______, _______, // right hand - __________, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ, - __________, UC(0x2014), KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS, + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ, + _______, UC(0x2014), KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR, - __________, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, __________, - __________, __________, __________, __________, __________, - __________, KC_F12, - __________, - __________, __________, __________ + _______, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______, + _______, _______, _______, _______, _______, + _______, KC_F12, + _______, + _______, _______, _______ ), }; -void eeconfig_init_user(void) { - set_unicode_input_mode(UC_LNX); // Linux - //set_unicode_input_mode(UC_OSX); // Mac OSX - //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki) - //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki) -}; - // Runs just one time when the keyboard initializes. -void matrix_init_user(void) { +void matrix_init_user (void) { ergodox_board_led_off(); }; // Runs constantly in the background, in a loop. -void matrix_scan_user(void) { +void matrix_scan_user (void) { if (IS_LAYER_ON(SYMB) || IS_LAYER_ON(SYSH)) { ergodox_right_led_1_on(); @@ -210,4 +139,4 @@ void matrix_scan_user(void) { ergodox_right_led_3_off(); } -}; +};
\ No newline at end of file diff --git a/layouts/community/ergodox/nstickney/rules.mk b/layouts/community/ergodox/nstickney/rules.mk deleted file mode 100644 index 4a3c58621c..0000000000 --- a/layouts/community/ergodox/nstickney/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -TAP_DANCE_ENABLE=yes -LEADER_ENABLE = yes diff --git a/layouts/community/ergodox/osx_neo2/keymap.c b/layouts/community/ergodox/osx_neo2/keymap.c new file mode 100644 index 0000000000..9e379c73f5 --- /dev/null +++ b/layouts/community/ergodox/osx_neo2/keymap.c @@ -0,0 +1,694 @@ +#include QMK_KEYBOARD_H +#include "layers.h" +#include "version.h" + +// Timer to detect tap/hold on NEO_RMOD3 key +static uint16_t neo3_timer; +// State bitmap to track which key(s) enabled NEO_3 layer +static uint8_t neo3_state = 0; +// State bitmap to track key combo for CAPSLOCK +static uint8_t capslock_state = 0; + +// bitmasks for modifier keys +#define MOD_MASK_NONE 0 + +// Used to trigger macros / sequences of keypresses +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, // can always be here + US_OSX_SMALL_UE, + US_OSX_SMALL_AE, + US_OSX_SMALL_OE, + US_OSX_CAPITAL_UE, + US_OSX_CAPITAL_AE, + US_OSX_CAPITAL_OE, + NEO2_LMOD3, + NEO2_RMOD3, + NEO2_1, + NEO2_2, + NEO2_3, + NEO2_4, + NEO2_5, + NEO2_6, + NEO2_7, + NEO2_8, + NEO2_9, + NEO2_0, + NEO2_MINUS, + NEO2_UE, + NEO2_AE, + NEO2_OE, + NEO2_COMMA, + NEO2_DOT, + NEO2_SHARP_S +}; + +#define NEO2_LMOD4 TT(NEO_4) +#define NEO2_RMOD4 NEO2_LMOD4 + +// NEO_3 special characters +#define US_OSX_SUPERSCRIPT_1 KC_NO // ¹ +#define US_OSX_SUPERSCRIPT_2 KC_NO // ² +#define US_OSX_SUPERSCRIPT_3 KC_NO // ³ +#define US_OSX_RSAQUO LALT(LSFT(KC_4)) // › +#define US_OSX_LSAQUO LALT(LSFT(KC_3)) // ‹ +#define US_OSX_CENT LALT(KC_4) // ¢ +#define US_OSX_YEN LALT(KC_Y) // ¥ +#define US_OSX_SBQUO LALT(LSFT(KC_0)) // ‚ +#define US_OSX_LEFT_SINGLE_QUOTE LALT(KC_RBRACKET) // ‘ +#define US_OSX_RIGHT_SINGLE_QUOTE LALT(LSFT(KC_RBRACKET)) // ’ +#define US_OSX_ELLIPSIS LALT(KC_SCOLON) // … +#define US_OSX_UNDERSCORE LSFT(KC_MINUS) // _ +#define US_OSX_LBRACKET KC_LBRACKET // [ +#define US_OSX_RBRACKET KC_RBRACKET // ] +#define US_OSX_CIRCUMFLEX LSFT(KC_6) // ^ +#define US_OSX_EXCLAMATION LSFT(KC_1) // ! +#define US_OSX_LESSTHAN LSFT(KC_COMMA) // < +#define US_OSX_GREATERTHAN LSFT(KC_DOT) // > +#define US_OSX_EQUAL KC_EQUAL // = +#define US_OSX_AMPERSAND LSFT(KC_7) // & +#define US_OSX_SMALL_LONG_S KC_NO // ſ +#define US_OSX_BSLASH KC_BSLASH +#define US_OSX_SLASH KC_SLASH // / +#define US_OSX_CLBRACKET LSFT(KC_LBRACKET) // { +#define US_OSX_CRBRACKET LSFT(KC_RBRACKET) // } +#define US_OSX_ASTERISK LSFT(KC_8) // * +#define US_OSX_QUESTIONMARK LSFT(KC_SLASH) // ? +#define US_OSX_LPARENTHESES LSFT(KC_9) // ( +#define US_OSX_RPARENTHESES LSFT(KC_0) // ) +#define US_OSX_HYPHEN_MINUS KC_MINUS // - +#define US_OSX_COLON LSFT(KC_SCOLON) // : +#define US_OSX_AT LSFT(KC_2) // @ +#define US_OSX_HASH LSFT(KC_3) // # +#define US_OSX_PIPE LSFT(KC_BSLASH) // | +#define US_OSX_TILDE LSFT(KC_GRAVE) // ~ +#define US_OSX_BACKTICK KC_GRAVE // ` +#define US_OSX_PLUS LSFT(KC_EQUAL) // + +#define US_OSX_PERCENT LSFT(KC_5) // % +#define US_OSX_DOUBLE_QUOTE LSFT(KC_QUOTE) // " +#define US_OSX_SINGLE_QUOTE KC_QUOTE // ' +#define US_OSX_SEMICOLON KC_SCOLON // ; + +// NEO_4 special characters +#define US_OSX_FEMININE_ORDINAL LALT(KC_9) // ª +#define US_OSX_MASCULINE_ORDINAL LALT(KC_0) // º +#define US_OSX_NUMERO_SIGN KC_NO // № +#define US_OSX_MIDDLE_DOT LALT(LSFT(KC_9)) // · +#define US_OSX_BRITISH_POUND LALT(KC_3) // £ +#define US_OSX_CURRENCY_SIGN KC_NO // ¤ +#define US_OSX_INV_EXCLAMATION LALT(KC_1) // ¡ +#define US_OSX_INV_QUESTIONMARK LALT(LSFT(KC_SLASH)) // ¿ +#define US_OSX_DOLLAR KC_DOLLAR // $ +#define US_OSX_EM_DASH LALT(LSFT(KC_MINUS)) // — + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* NEO_1: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ---- | 1/° | 2/§ | 3/ | 4/» | 5/« | ESC | | US_1 | 6/$ | 7/€ | 8/„ | 9/“ | 0/” | -/— | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | X | V | L | C | W | LCTL | | RCTL | K | H | G | F | Q | ß | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | NEO_3 | U | I | A | E | O |------| |------| S | N | R | T | D | Y | + * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| + * | LSHIFT | Ü | Ö | Ä | P | Z | | | | B | M | ,/– | ./• | J | RSHIFT | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ---- | ---- | LCTL | LALT | LGUI | | RGUI | Left | Down | Up | Right| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | FKEYS| Home | | PgUp | FKEYS| + * ,------|------|------| |------+------+------. + * | Back-| | End | | PgDn | | | + * | space|Delete|------| |------| Enter|Space | + * | | | NEO_4| | NEO_4| | | + * `--------------------' `--------------------' + */ + [NEO_1] = LAYOUT_ergodox( + // left hand side - main + KC_NO /* NOOP */, NEO2_1, NEO2_2, NEO2_3, NEO2_4, NEO2_5, KC_ESCAPE, + KC_TAB, KC_X, KC_V, KC_L, KC_C, KC_W, KC_LCTRL, + NEO2_LMOD3, KC_U, KC_I, KC_A, KC_E, KC_O, /* --- */ + KC_LSHIFT, NEO2_UE, NEO2_OE, NEO2_AE, KC_P, KC_Z, KC_LALT, + KC_NO /* NOOP */, KC_NO /* NOOP */, KC_LCTRL, KC_LALT, KC_LGUI, /* --- */ /* --- */ + + // left hand side - thumb cluster + /* --- */ MO(FKEYS), KC_HOME, + /* KC_BSPACE */ /* KC_DELETE */ KC_END, + KC_BSPACE, KC_DELETE, NEO2_LMOD4, + + // right hand side - main + TO(US_1), NEO2_6, NEO2_7, NEO2_8, NEO2_9, NEO2_0, NEO2_MINUS, + KC_RCTRL, KC_K, KC_H, KC_G, KC_F, KC_Q, NEO2_SHARP_S, + /* --- */ KC_S, KC_N, KC_R, KC_T, KC_D, NEO2_RMOD3, + KC_RALT, KC_B, KC_M, NEO2_COMMA, NEO2_DOT, KC_J, KC_RSHIFT, + /* --- */ /* --- */ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, + + // right hand side - thumb cluster + KC_PGUP, MO(FKEYS), /* --- */ + KC_PGDOWN, /* --- */ /* --- */ + NEO2_RMOD4, KC_ENTER, KC_SPACE + ), + + /* NEO_3: Symbol layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ---- | ---- | ---- | ---- | › | ‹ | | | | ¢ | ¥ | ‚ | ‘ | ’ | ---- | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ---- | … | _ | [ | ] | ^ | | | | ! | < | > | = | & | ---- | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | \ | / | { | } | * |------| |------| ? | ( | ) | - | : | @ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | | | ~ | ` | | | | + | % | " | ' | ; | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + [NEO_3] = LAYOUT_ergodox( + // left hand side - main + KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, US_OSX_RSAQUO, US_OSX_LSAQUO, _______, + KC_NO /* NOOP */, US_OSX_ELLIPSIS, US_OSX_UNDERSCORE, US_OSX_LBRACKET, US_OSX_RBRACKET, US_OSX_CIRCUMFLEX, _______, + _______, US_OSX_BSLASH, US_OSX_SLASH, US_OSX_CLBRACKET, US_OSX_CRBRACKET, US_OSX_ASTERISK, /* --- */ + _______, US_OSX_HASH, US_OSX_DOLLAR, US_OSX_PIPE, US_OSX_TILDE, US_OSX_BACKTICK, _______, + _______, _______, _______, _______, _______, /* --- */ /* --- */ + + // left hand side - thumb cluster + /* --- */ _______, _______, + /* --- */ /* --- */ _______, + _______, _______, _______, + + // right hand side - main + _______, US_OSX_CENT, US_OSX_YEN, US_OSX_SBQUO, US_OSX_LEFT_SINGLE_QUOTE, US_OSX_RIGHT_SINGLE_QUOTE, KC_NO, + _______, US_OSX_EXCLAMATION, US_OSX_LESSTHAN, US_OSX_GREATERTHAN, US_OSX_EQUAL, US_OSX_AMPERSAND, US_OSX_SMALL_LONG_S, + /* --- */ US_OSX_QUESTIONMARK, US_OSX_LPARENTHESES, US_OSX_RPARENTHESES, US_OSX_HYPHEN_MINUS, US_OSX_COLON, NEO2_RMOD3, + _______, US_OSX_PLUS, US_OSX_PERCENT, US_OSX_DOUBLE_QUOTE, US_OSX_SINGLE_QUOTE, US_OSX_SEMICOLON, _______, + /* --- */ /* --- */ _______, _______, _______, _______, _______, + + // right hand side - thumb cluster + _______, _______, /* --- */ + _______, /* --- */ /* --- */ + _______, _______, _______ + ), + + /* NEO_4: Cursor & Numpad + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ---- | ª | º | ---- | · | £ | | | | ---- | Tab | / | * | - | ---- | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ---- | PgUp | ⌫ | Up | ⌦ | PgDn | | | | ¡ | 7 | 8 | 9 | + | – | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Home | Left | Down | Right| End |------| |------| ¿ | 4 | 5 | 6 | , | . | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Esc | Tab | Ins |Return| ---- | | | | : | 1 | 2 | 3 | ; | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | 0 | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + [NEO_4] = LAYOUT_ergodox( + // left hand side - main + KC_NO /* NOOP */, US_OSX_FEMININE_ORDINAL, US_OSX_MASCULINE_ORDINAL, KC_NO /* NOOP */, US_OSX_MIDDLE_DOT, US_OSX_BRITISH_POUND, _______, + _______, KC_PGUP, KC_BSPACE, KC_UP, KC_DELETE, KC_PGDOWN, _______, + _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, /* --- */ + _______, KC_ESCAPE, KC_TAB, KC_INSERT, KC_ENTER, KC_NO /* NOOP */, _______, + _______, _______, _______, _______, _______, /* --- */ /* --- */ + + // left hand side - thumb cluster + /* --- */ _______, _______, + /* --- */ /* --- */ _______, + _______, _______, _______, + + // right hand side - main + _______, US_OSX_CURRENCY_SIGN, KC_TAB, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_NO /* NOOP */, + _______, US_OSX_INV_EXCLAMATION, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, US_OSX_EM_DASH, + /* --- */ US_OSX_INV_QUESTIONMARK, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_COMMA, KC_KP_DOT, + _______, US_OSX_COLON, KC_KP_1, KC_KP_2, KC_KP_3, US_OSX_SEMICOLON, _______, + /* --- */ /* --- */ _______, KC_KP_0, _______, _______, _______, + + // right hand side - thumb cluster + _______, _______, /* --- */ + _______, /* --- */ /* --- */ + _______, _______, _______ + ), + + /* NEO_5: Greek + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + [NEO_5] = LAYOUT_ergodox( + // left hand side - main + KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______, + KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______, + _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, /* --- */ + _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______, + _______, _______, _______, _______, _______, /* --- */ /* --- */ + + // left hand side - thumb cluster + /* --- */ _______, _______, + /* --- */ /* --- */ _______, + _______, _______, _______, + + // right hand side - main + _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, + _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, + /* --- */ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, + _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______, + /* --- */ /* --- */ _______, _______, _______, _______, _______, + + // right hand side - thumb cluster + _______, _______, /* --- */ + _______, /* --- */ /* --- */ + _______, _______, _______ + ), + + /* NEO_6: Math symbols + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + [NEO_6] = LAYOUT_ergodox( + // left hand side - main + KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______, + KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______, + _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, /* --- */ + _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______, + _______, _______, _______, _______, _______, /* --- */ /* --- */ + + // left hand side - thumb cluster + /* --- */ _______, _______, + /* --- */ /* --- */ _______, + _______, _______, _______, + + // right hand side - main + _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, + _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, + /* --- */ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, + _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______, + /* --- */ /* --- */ _______, _______, _______, _______, _______, + + // right hand side - thumb cluster + _______, _______, /* --- */ + _______, /* --- */ /* --- */ + _______, _______, _______ + ), + + /* US_1: US QWERTY + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | ESC | | NEO_1| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | \ | Q | W | E | R | T | ---- | | [ | Y | U | I | O | P | ] | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | TAB | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| ---- | | ---- |------+------+------+------+------+--------| + * | LSHIFT | Z | X | C | V | B | | | | N | M | , | . | / | RSHIFT | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | LGUI | ` | ---- | ---- | FKEYS| | Left | Down | Up | Right| RGUI | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LCTRL| LALT | | RALT | RCTRL| + * ,------|------|------| |------+------+------. + * | | | HOME | | PGUP | | | + * | BKSP | DEL |------| |------| ENTR | SPCE | + * | | | END | | PGDN | | | + * `--------------------' `--------------------' + */ + [US_1] = LAYOUT_ergodox( + // left hand side - main + KC_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESCAPE, + KC_BSLASH, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO /* NOOP */, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, /* --- */ + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO /* NOOP */, + KC_LGUI, KC_GRAVE, KC_NO, KC_NO, MO(FKEYS), /* --- */ /* --- */ + + // left hand side - thumb cluster + /* --- */ KC_LCTRL, KC_LALT, + /* --- */ /* --- */ KC_HOME, + KC_BSPACE, KC_DELETE, KC_END, + + // right hand side - main + TO(NEO_1), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_LBRACKET, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET, + /* --- */ KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, + KC_NO /* NOOP */, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, + /* --- */ /* --- */ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_RGUI, + + // right hand side - thumb cluster + KC_RALT, KC_RCTRL, /* --- */ + KC_PGUP, /* --- */ /* --- */ + KC_PGDOWN, KC_ENTER, KC_SPACE + ), + + /* FKEYS: Function keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Prev | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | VolUp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Play | | | | | | | | | | | | | | VolDn | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Next | | | | | |------| |------| | | | | | Mute | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + [FKEYS] = LAYOUT_ergodox( + // left hand side - main + KC_MEDIA_REWIND, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, + KC_MEDIA_PLAY_PAUSE, _______, _______, _______, _______, _______, _______, + KC_MEDIA_FAST_FORWARD, _______, _______, _______, _______, _______, /* --- */ + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, /* --- */ /* --- */ + + // left hand side - thumb cluster + /* --- */ _______, _______, + /* --- */ /* --- */ _______, + _______, _______, _______, + + // right hand side - main + KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_AUDIO_VOL_UP, + _______, _______, _______, _______, _______, _______, KC_AUDIO_VOL_DOWN, + /* --- */ _______, _______, _______, _______, _______, KC_AUDIO_MUTE, + _______, _______, _______, _______, _______, _______, _______, + /* --- */ /* --- */ _______, _______, _______, _______, _______, + + // right hand side - thumb cluster + _______, _______, /* --- */ + _______, /* --- */ /* --- */ + _______, _______, _______ + ), +}; + +// Send a key tap with a optional set of modifiers. +void tap_with_modifiers(uint16_t keycode, uint8_t force_modifiers) { + uint8_t active_modifiers = get_mods(); + + if ((force_modifiers & MOD_MASK_SHIFT) && !(active_modifiers & MOD_MASK_SHIFT)) register_code(KC_LSFT); + if ((force_modifiers & MOD_MASK_CTRL) && !(active_modifiers & MOD_MASK_CTRL)) register_code(KC_LCTRL); + if ((force_modifiers & MOD_MASK_ALT) && !(active_modifiers & MOD_MASK_ALT)) register_code(KC_LALT); + if ((force_modifiers & MOD_MASK_GUI) && !(active_modifiers & MOD_MASK_GUI)) register_code(KC_LGUI); + + register_code(keycode); + unregister_code(keycode); + + if ((force_modifiers & MOD_MASK_SHIFT) && !(active_modifiers & MOD_MASK_SHIFT)) unregister_code(KC_LSFT); + if ((force_modifiers & MOD_MASK_CTRL) && !(active_modifiers & MOD_MASK_CTRL)) unregister_code(KC_LCTRL); + if ((force_modifiers & MOD_MASK_ALT) && !(active_modifiers & MOD_MASK_ALT)) unregister_code(KC_LALT); + if ((force_modifiers & MOD_MASK_GUI) && !(active_modifiers & MOD_MASK_GUI)) unregister_code(KC_LGUI); +} + +// Special remapping for keys with different keycodes/macros when used with shift modifiers. +bool process_record_user_shifted(uint16_t keycode, keyrecord_t *record) { + uint8_t active_modifiers = get_mods(); + uint8_t shifted = active_modifiers & MOD_MASK_SHIFT; + + // Early return on key release + if (!record->event.pressed) { + return true; + } + + if (shifted) { + clear_mods(); + + switch (keycode) { + case NEO2_1: + // degree symbol + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_8) SS_UP(X_LSHIFT) SS_UP(X_LALT)); + break; + case NEO2_2: + // section symbol + SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_6) SS_UP(X_LALT)); + break; + case NEO2_3: + // There is no OSX key combination for the script small l character + break; + case NEO2_4: + // right angled quote + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_BSLASH) SS_UP(X_LSHIFT) SS_UP(X_LALT)); + break; + case NEO2_5: + // left angled quote + SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_BSLASH) SS_UP(X_LALT)); + break; + case NEO2_6: + // dollar sign + SEND_STRING(SS_DOWN(X_LSHIFT) SS_TAP(X_4) SS_UP(X_LSHIFT)); + break; + case NEO2_7: + // euro sign + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_2) SS_UP(X_LSHIFT) SS_UP(X_LALT)); + break; + case NEO2_8: + // low9 double quote + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_W) SS_UP(X_LSHIFT) SS_UP(X_LALT)); + break; + case NEO2_9: + // left double quote + SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_LBRACKET) SS_UP(X_LALT)); + break; + case NEO2_0: + // right double quote + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_LBRACKET) SS_UP(X_LSHIFT) SS_UP(X_LALT)); + break; + case NEO2_MINUS: + // em dash + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_MINUS) SS_UP(X_LSHIFT) SS_UP(X_LALT)); + break; + case NEO2_COMMA: + // en dash + SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_MINUS) SS_UP(X_LALT)); + break; + case NEO2_DOT: + // bullet + SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_8) SS_UP(X_LALT)); + break; + case NEO2_SHARP_S: + // german sharp s + SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_S) SS_UP(X_LALT)); + break; + case NEO2_UE: + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_U) SS_UP(X_LSHIFT)); + break; + case NEO2_OE: + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_O) SS_UP(X_LSHIFT)); + break; + case NEO2_AE: + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_DOWN(X_LSHIFT) SS_TAP(X_A) SS_UP(X_LSHIFT)); + break; + default: + set_mods(active_modifiers); + return true; + } + + set_mods(active_modifiers); + return false; + } else { + switch (keycode) { + case NEO2_1: + SEND_STRING(SS_TAP(X_1)); + break; + case NEO2_2: + SEND_STRING(SS_TAP(X_2)); + break; + case NEO2_3: + SEND_STRING(SS_TAP(X_3)); + break; + case NEO2_4: + SEND_STRING(SS_TAP(X_4)); + break; + case NEO2_5: + SEND_STRING(SS_TAP(X_5)); + break; + case NEO2_6: + SEND_STRING(SS_TAP(X_6)); + break; + case NEO2_7: + SEND_STRING(SS_TAP(X_7)); + break; + case NEO2_8: + SEND_STRING(SS_TAP(X_8)); + break; + case NEO2_9: + SEND_STRING(SS_TAP(X_9)); + break; + case NEO2_0: + SEND_STRING(SS_TAP(X_0)); + break; + case NEO2_MINUS: + SEND_STRING(SS_TAP(X_MINUS)); + break; + case NEO2_COMMA: + SEND_STRING(SS_TAP(X_COMMA)); + break; + case NEO2_DOT: + SEND_STRING(SS_TAP(X_DOT)); + break; + case NEO2_SHARP_S: + // german sharp s + SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_S) SS_UP(X_LALT)); + break; + case NEO2_UE: + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_TAP(X_U)); + break; + case NEO2_OE: + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_TAP(X_O)); + break; + case NEO2_AE: + SEND_STRING(SS_DOWN(X_LALT) SS_DOWN(X_U) SS_UP(X_U) SS_UP(X_LALT) SS_TAP(X_A)); + break; + default: + return true; + } + + return false; + } +} + +// Runs for each key down or up event. +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_LSHIFT: + if (record->event.pressed) { + capslock_state |= (MOD_BIT(KC_LSHIFT)); + } else { + capslock_state &= ~(MOD_BIT(KC_LSHIFT)); + } + break; + case KC_RSHIFT: + if (record->event.pressed) { + capslock_state |= MOD_BIT(KC_RSHIFT); + } else { + capslock_state &= ~(MOD_BIT(KC_RSHIFT)); + } + break; + case NEO2_LMOD3: + if (record->event.pressed) { + layer_on(NEO_3); + neo3_state |= (1 << 1); + } else { + // Turn off NEO_3 layer unless it's enabled through NEO2_RMOD3 as well. + if ((neo3_state & ~(1 << 1)) == 0) { + layer_off(NEO_3); + } + neo3_state &= ~(1 << 1); + } + break; + case NEO2_RMOD3: + if (record->event.pressed) { + neo3_timer = timer_read(); + neo3_state |= (1 << 2); + layer_on(NEO_3); + } else { + // Turn off NEO_3 layer unless it's enabled through NEO2_LMOD3 as well. + if ((neo3_state & ~(1 << 2)) == 0) { + layer_off(NEO_3); + } + neo3_state &= ~(1 << 2); + + // Was the NEO2_RMOD3 key TAPPED? + if (timer_elapsed(neo3_timer) <= 150) { + if (neo3_state > 0) { + // We are still in NEO_3 layer, send keycode and modifiers for @ + tap_with_modifiers(KC_2, MOD_MASK_SHIFT); + return false; + } else { + // Do the normal key processing, send y + tap_with_modifiers(KC_Y, MOD_MASK_NONE); + return false; + } + } + } + break; + } + + if ((capslock_state & MOD_MASK_SHIFT) == MOD_MASK_SHIFT) { + // CAPSLOCK is currently active, disable it + if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { + unregister_code(KC_LOCKING_CAPS); + } else { + register_code(KC_LOCKING_CAPS); + } + return false; + } + + return process_record_user_shifted(keycode, record); +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void){ + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } +}; diff --git a/layouts/community/ergodox/osx_neo2/layers.h b/layouts/community/ergodox/osx_neo2/layers.h new file mode 100644 index 0000000000..a5e0cba00d --- /dev/null +++ b/layouts/community/ergodox/osx_neo2/layers.h @@ -0,0 +1,9 @@ +enum layers { + NEO_1, // layer_0 + NEO_3, // layer_1 + NEO_4, // layer_2 + NEO_5, // layer_3 + NEO_6, // layer_4 + US_1, // layer_5 + FKEYS // layer_6 +};
\ No newline at end of file diff --git a/layouts/community/ergodox/osx_neo2/readme.md b/layouts/community/ergodox/osx_neo2/readme.md new file mode 100644 index 0000000000..cab4dfe709 --- /dev/null +++ b/layouts/community/ergodox/osx_neo2/readme.md @@ -0,0 +1,219 @@ +# Neo 2 for ErgoDox on QWERTY + +# Description + +The Neo layout is an optimized German keyboard layout developed by the +Neo Users Group, supporting many Latin-based alphabets. The positions +of the letters are not only optimized for German letter frequency, +but also for typical groups of two or three letters. English is +considered a primary target as well. + +The design tries to enforce the alternating usage of both hands to +increase typing speed and incorporates ideas from de-ergo and other +ergonomic layouts. High frequency keys are placed in the home row. +The current layout Neo 2.0 has unique features making it suited for +many target groups such as programmers, mathematicians, scientists or +LaTeX authors. + +Neo is grouped into six layers, each dedicated to a special purpose. + +# Layers + +At the core this is a Neo 2.0 layout adjusted for the Ergodox Infinity. +The keymap is laid out expecting a macOs using the US QWERTY or ABC +Extended layout. + +[Layer 1](#layer-1) Lowercase, upppercase and typographical characters + +[Layer 2](#layer-2) Special characters for programming + +[Layer 3](#layer-3) WASD-like movement keys and number block + +[Layer 4](#layer-4) Greek characters + +[Layer 5](#layer-5) Mathematical symbols and Greek uppercase characters + +[Layer 6](#layer-6) Ergodox Infinity US QWERTY layout + +[Layer 7](#layer-7) Function keys + +## Legend + + * Keys marked with `----` are dead keys. + * Blank keys are transparent and fall through to lower levels. + +## Layer 1 + +This layer implements NEO layers 1 and 2. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ---- | 1/° | 2/§ | 3/ | 4/» | 5/« | ESC | | US_1 | 6/$ | 7/€ | 8/„ | 9/“ | 0/” | -/— | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| TAB | X | V | L | C | W | LCTL | | RCTL | K | H | G | F | Q | ß | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| NEO_3 | U | I | A | E | O |------| |------| S | N | R | T | D | Y | +|--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| +| LSHIFT | Ü | Ö | Ä | P | Z | | | | B | M | ,/– | ./• | J | RSHIFT | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | ---- | ---- | LCTL | LALT | LGUI | | RGUI | Left | Down | Up | Right| + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | FKEYS| Home | | PgUp | FKEYS| + ,------|------|------| |------+------+------. + | Back-| | End | | PgDn | | | + | space|Delete|------| |------| Enter|Space | + | | | NEO_4| | NEO_4| | | + `--------------------' `--------------------' +``` + +## Layer 2 + +This layer implements NEO layer 3. + + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ---- | ---- | ---- | ---- | › | ‹ | | | | ¢ | ¥ | ‚ | ‘ | ’ | ---- | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| ---- | … | _ | [ | ] | ^ | | | | ! | < | > | = | & | ---- | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | \ | / | { | } | * |------| |------| ? | ( | ) | - | : | @ | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | # | $ | | | ~ | ` | | | | + | % | " | ' | ; | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` + +## Layer 3 + +This layer implements NEO layer 4. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ---- | ª | º | ---- | · | £ | | | | ---- | Tab | / | * | - | ---- | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| ---- | PgUp | ⌫ | Up | ⌦ | PgDn | | | | ¡ | 7 | 8 | 9 | + | – | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | Home | Left | Down | Right| End |------| |------| ¿ | 4 | 5 | 6 | , | . | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | Esc | Tab | Ins |Return| ---- | | | | : | 1 | 2 | 3 | ; | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | 0 | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` + +## Layer 4 + +This layer is currently empty/reserved for NEO layer 5. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` + +## Layer 5 + +This layer is currently empty/reserved for NEO layer 6. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` + +## Layer 6 + +A bare bones implementation of the default Ergodox Infinity layout. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| = | 1 | 2 | 3 | 4 | 5 | ESC | | NEO_1| 6 | 7 | 8 | 9 | 0 | - | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| \ | Q | W | E | R | T | ---- | | [ | Y | U | I | O | P | ] | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| TAB | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | +|--------+------+------+------+------+------| ---- | | ---- |------+------+------+------+------+--------| +| LSHIFT | Z | X | V | B | M | | | | N | M | , | . | / | RSHIFT | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | LGUI | ` | ---- | ---- | FKEYS| | Left | Down | Up | Right| RGUI | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | LCTRL| LALT | | RALT | RCTRL| + ,------|------|------| |------+------+------. + | | | HOME | | PGUP | | | + | BKSP | DEL |------| |------| ENTR | SPCE | + | | | END | | PGDN | | | + `--------------------' `--------------------' +``` + +## Layer 7 + +This layer implements function and multimedia keys. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| Prev | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | VolUp | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Play | | | | | | | | | | | | | | VolDn | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| Next | | | | | |------| |------| | | | | | Mute | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | | | | | | | | | | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` diff --git a/layouts/community/ergodox/osx_neo2/visualizer.c b/layouts/community/ergodox/osx_neo2/visualizer.c new file mode 100644 index 0000000000..653201bb8a --- /dev/null +++ b/layouts/community/ergodox/osx_neo2/visualizer.c @@ -0,0 +1,47 @@ +#include "layers.h" +#include "simple_visualizer.h" +#include "util.h" + +static void get_visualizer_layer_and_color(visualizer_state_t *state) { + uint8_t layer = biton32(state->status.layer); + + // Go from highest to lowest layer to get the right text/color combination. + switch (layer) { + // #AEB2F4 / hsv(65.71%, 28.69%, 95.69%) + case FKEYS: + // #F4AEDC / hsv(89.05%, 28.69%, 95.69%) + state->layer_text = "FUNCTION KEYS"; + state->target_lcd_color = LCD_COLOR(228, 73, 245); + break; + case US_1: + // #F4B993 / hsv(6.53%, 39.75%, 95.69%) + state->layer_text = "QWERTY"; + state->target_lcd_color = LCD_COLOR(17, 102, 245); + break; + case NEO_6: + // #F4E393 / hsv(13.75%, 39.75%, 95.69%) + state->layer_text = "NEO: 6"; + state->target_lcd_color = LCD_COLOR(35, 102, 245); + break; + case NEO_5: + // #C6F493 / hsv(24.57%, 39.75%, 95.69%) + state->layer_text = "NEO: 5"; + state->target_lcd_color = LCD_COLOR(63, 102, 245); + break; + case NEO_4: + // #8EEBC9 / hsv(43.91%, 39.57%, 92.16%) + state->layer_text = "NEO: 4"; + state->target_lcd_color = LCD_COLOR(112, 101, 189); + break; + case NEO_3: + // #93D2F4 / hsv(55.84%, 39.75%, 95.69%) + state->layer_text = "NEO: 3"; + state->target_lcd_color = LCD_COLOR(143, 102, 245); + break; + default: + // #EEEEEE / hsv(0%, 0%, 93%) + state->layer_text = "NEO: 1"; + state->target_lcd_color = LCD_COLOR(0, 0, 255); + break; + } +} diff --git a/layouts/community/ergodox/pvinis/Changelog.md b/layouts/community/ergodox/pvinis/Changelog.md deleted file mode 100644 index e5816200b8..0000000000 --- a/layouts/community/ergodox/pvinis/Changelog.md +++ /dev/null @@ -1,7 +0,0 @@ -## v0.3 - -*2016-10-11* - -### Starting point - -* The starting point of this keymap. A beginner layout, and a couple placeholders. diff --git a/layouts/community/ergodox/pvinis/Readme.md b/layouts/community/ergodox/pvinis/Readme.md deleted file mode 100644 index af27210541..0000000000 --- a/layouts/community/ergodox/pvinis/Readme.md +++ /dev/null @@ -1,65 +0,0 @@ -pvinis' keymap -============== - -This is a getting-used-to keymap for the [ErgoDox EZ][ez]. It's very much a work in progress. - -[ez]: https://ergodox-ez.com/ - -## Table of Contents - -* [Todo](#todo) -* [Layouts](#layouts) - - [Base layer](#base-layer) - - [Beginner layer](#beginner-layer) - - [QWERTY layer](#qwerty-layer) - - [CARPALX layer](#carpalx-layer) - - [System Control layer](#system-control-layer) - - [Template layers](#template-layers) -* [Building](#building) - -# Todo - -- [ ] Generate images from keymap -- [ ] Implement algernon's heatmap -- [ ] Implement `KC_POP` - -# Layouts - -## Base layer - -This is the base layer that contains the common buttons of all keymaps. Right now, it has the top left button as a `flash` button when it's tapped 4 times, and the two thumb islands. The islands contain the `space` and `enter` keys on the right, the `backspace` and `shift` on the left, and all the 1x1 keys are just layer switches. -Every time I connect the keyboard, I press the `BEGIN` layer switch, and then start typing. -Recently, I added a few application "shortcuts", that basically call `ctrl`+`alt`+`cmd`+`<key>`, and `<key>` is `S` for Slack, `X` for Xcode, `M` for Messenger. Using [Hammerspoon][hammerspoon], I show/hide the application. - -[hammerspoon]: http://www.hammerspoon.org/ - -## Beginner layer - -This is a basic keymap I use right now until I'm comfortable typing on the Ergodox. Currently uses a QWERTY layout, and the `([{}])` on the middle keys. Not a perfect layout, and its going to go away at some point, but for now thats my daily driver. - -## QWERTY layer - -This is basically the same as the `BEGIN` layer, but it might go away. I'm not using it, but I should have a QWERTY layout on the keyboard, in case someone else wants to try it out, or if I completely forget how keyboards work! At some point, this and the `BEGIN` layer will become one. - -## CARPALX layer - -This is here as a placeholder. I want to transition to [Carpalx QGMLWY][carpalx] or [White][white] at some point. They both look very interesting and more comfortable to type on, but after I'm confident with typing on the Ergodox. - -[carpalx]: http://mkweb.bcgsc.ca/carpalx/?full_optimization -[white]: https://github.com/mw8/white_keyboard_layout - -## System Control layer - -This one is a layer that, in time, will have controls like mouse movement, volume up/down, mute, sleep, restart, shutdown, etc. - -## Template layers - -I have two commented out layers that are just templates, so I can easily create a new layer. - -# Building - -``` -$ git clone https://github.com/qmk/qmk_firmware.git -$ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis -$ make -``` diff --git a/layouts/community/ergodox/pvinis/keymap.c b/layouts/community/ergodox/pvinis/keymap.c deleted file mode 100644 index 1bca0398dc..0000000000 --- a/layouts/community/ergodox/pvinis/keymap.c +++ /dev/null @@ -1,475 +0,0 @@ -// pvinis' ergodox keymap - -#include QMK_KEYBOARD_H -#include "mousekey.h" - -// easier name for left ctrl-alt-gui -#define ALLM(kc) LCAG(kc) - -// layers -enum { - BASE = 0, - BEGIN, - QWERTY, - CARPALX, - SYSCTL, - MOUSE, -}; - -// extra keys -enum { - NONE = 0, - - // tap dance - TD_FLSH, // flash keyboard - TD_LAYR, // SYSCTL and MOUSE layer switch -}; - -// application selection -// this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon -#define AP_SLCK ALLM(KC_S) -#define AP_XCOD ALLM(KC_X) -#define AP_MSGR ALLM(KC_M) - -// keymaps -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* BASE - * the base of the keyboard. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * |4x FLASH| | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | |SYSCTL| | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * |BEGIN |QWERTY| | | | - * ,------|------|------| |------+--------+------. - * | | |CARPAL| |Slack | | | - * |Backsp|LShift|------| |------| Enter |Space | - * | | |SYSCTL| |Msngr | | | - * `--------------------' `----------------------' - */ -[BASE] = LAYOUT_ergodox( - TD(TD_FLSH) ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,TG(BEGIN) ,TD(TD_LAYR) - ,TG(MOUSE) - ,KC_BSPC ,KC_LSFT ,TD(TD_LAYR) - - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,MO(SYSCTL) ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,TG(SYSCTL) ,KC_NO - ,AP_SLCK - ,AP_MSGR ,KC_ENT ,KC_SPC -), - -/* BEGIN - * a beginner's keymap i currently use. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | 1 | 2 | 3 | 4 | 5 | opt | | 6 | 7 | 8 | 9 | 0 | - | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | - * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | ` | Cmd | | Cmd | | | | | ' | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+--------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `----------------------' - */ -[BEGIN] = LAYOUT_ergodox( - KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_LALT -,KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC -,CTL_T(KC_ESC) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G -,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LPRN -,KC_TRNS ,KC_GRV ,KC_LGUI ,KC_LEFT ,KC_RIGHT - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS - - ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS ,KC_EQL - ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS - ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_ENT - ,KC_RPRN ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT - ,KC_TRNS ,KC_DOWN ,KC_TRNS ,KC_QUOT ,KC_TRNS - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS -), - -/* QWERTY - * the default qwerty keymap. not really used, but i'll keep it here for now. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | Q | W | E | R | T | | | | Y | U | I | O | P | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | A | S | D | F | G |------| |------| H | J | K | L | ; | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | Z | X | C | V | B | | | | N | M | , | . | / | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+--------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `----------------------' - */ -[QWERTY] = LAYOUT_ergodox( - KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS -,KC_TRNS ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_TRNS -,KC_TRNS ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G -,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS - - ,KC_TRNS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS - ,KC_TRNS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_TRNS - ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_TRNS - ,KC_TRNS ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS -), - -/* CARPALX - * the keymap i would like to transition to. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | 1 | 2 | 3 | 4 | 5 | | | RIGHT| 6 | 7 | 8 | 9 | 0 | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | Q | G | M | L | W | | | L1 | Y | F | U | B | ; | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | D | S | T | N | R |------| |------| I | A | E | O | H | | - * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------| - * | | Z | X | C | V | J | | | | K | P | , | . | / | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | Up | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[CARPALX] = LAYOUT_ergodox( - KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS -,KC_TRNS ,KC_Q ,KC_G ,KC_M ,KC_L ,KC_W ,KC_TRNS -,KC_TRNS ,KC_D ,KC_S ,KC_T ,KC_N ,KC_R -,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_J ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS - - ,KC_TRNS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS - ,KC_TRNS ,KC_Y ,KC_F ,KC_U ,KC_B ,KC_SCLN ,KC_TRNS - ,KC_I ,KC_A ,KC_E ,KC_O ,KC_H ,KC_TRNS - ,KC_TRNS ,KC_K ,KC_P ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS -), - -/* SYSCTL - * a keymap to control my system. - * - * ,--------------------------------------------------. ,------------------------------------------------------. - * | ^ | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+----------+------+------+--------| - * | | | | | | | | | | Mute | Home | Up | End | | | - * |--------+------+------+------+------+------| | | |------+------+----------+------+------+--------| - * | | | | | | |------| |------|VolUp | Left | Down |Right | | Lock | - * |--------+------+------+------+------+------| | | |------+------+----------+------+------+--------| - * | | | | | | | | | |VolDn | Prev |Play/Pause| Next | | Sleep | - * `--------+------+------+------+------+-------------' `-------------+------+----------+------+------+--------' - * | | | | | | | | | | | Power| - * `----------------------------------' `--------------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | ^ | | | | | - * `--------------------' `--------------------' - */ -[SYSCTL] = LAYOUT_ergodox( - KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_TRNS - - /*,KC_POP /// */,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - /* /// ,KC_PTRN*/,KC_NO ,KC_MUTE ,KC_HOME ,KC_UP ,KC_END ,KC_NO ,KC_NO - ,KC_VOLU ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_NO ,LCTL(LSFT(KC_PWR)) - ,KC_NO ,KC_VOLD ,KC_MPRV ,KC_MPLY ,KC_MNXT ,KC_NO ,KC_SLEP - ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_PWR - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_NO -), - -/* MOUSE - * a keymap to control my system. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ^ | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | MsUp | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | |MidClk| - * ,------|------|------| |------+------+------. - * | | | | | |Left |Right | - * | | |------| |------| Click| Click| - * | | | ^ | | | | | - * `--------------------' `--------------------' - */ -[MOUSE] = LAYOUT_ergodox( - KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_TRNS - - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_NO -), - -/* TEMPLATE - * keymap template with transparent and non-transparent keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+--------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `----------------------' - */ -/* -[TEMPLATE] = LAYOUT_ergodox( - KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS - - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS -), -[TEMPLATE] = LAYOUT_ergodox( - KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_NO -), -*/ -}; - -// keyboard initialization -void matrix_init_user() { - ergodox_led_all_on(); - for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { - ergodox_led_all_set(i); - wait_ms(5); - } - wait_ms(1000); - for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { - ergodox_led_all_set(i); - wait_ms(10); - } - ergodox_led_all_off(); -} - -// light up leds based on the layer -void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); - - switch(layer) { - case SYSCTL: - ergodox_right_led_3_on(); - break; - case MOUSE: - ergodox_right_led_2_on(); - break; - default: - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - break; - } -} - -// extra keys -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch (id) { - } - return MACRO_NONE; -} - -// tap dances - -// flash keyboard on 4x tap, with leds -void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) { - switch (state->count) { - case 1: - ergodox_right_led_3_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - case 3: - ergodox_right_led_1_on(); - break; - case 4: - ergodox_right_led_3_off(); - wait_ms(50); - ergodox_right_led_2_off(); - wait_ms(50); - ergodox_right_led_1_off(); - break; - } -} - -void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) { - if (state->count >= 4) { - reset_keyboard(); - reset_tap_dance(state); - } -} - -void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) { - ergodox_right_led_1_off(); - wait_ms(50); - ergodox_right_led_2_off(); - wait_ms(50); - ergodox_right_led_3_off(); -} - -// SYSCTL on first tap, MOUSE ON second tap -void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) { - uint8_t layer = biton32(layer_state); - - switch(state->count) { - case 1: - switch(layer) { - case SYSCTL: - layer_off(SYSCTL); - break; - case MOUSE: - layer_off(MOUSE); - break; - default: - layer_on(SYSCTL); - break; - } - break; - case 2: - layer_on(MOUSE); - break; - } -} - -qk_tap_dance_action_t tap_dance_actions[] = { - [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ), - [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ), -}; diff --git a/layouts/community/ergodox/pvinis/rules.mk b/layouts/community/ergodox/pvinis/rules.mk deleted file mode 100644 index 87cbd93c2b..0000000000 --- a/layouts/community/ergodox/pvinis/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -CONSOLE_ENABLE = no # for debugging - -SLEEP_LED_ENABLE = no # no led blinking while sleeping -NKRO_ENABLE = yes # disable for windows -TAP_DANCE_ENABLE = yes # tap-tap-tap - - |