summaryrefslogtreecommitdiff
path: root/layouts/community/ergodox
diff options
context:
space:
mode:
authorWilliam Chang <william@factual.com>2019-07-13 10:18:33 -0700
committerWilliam Chang <william@factual.com>2019-07-13 10:18:33 -0700
commit71493b2f9bbd5f3d18373c518fa14ccafcbf48fc (patch)
tree3bb3e5e496621535611e087720aa5c4d7a533e5e /layouts/community/ergodox
parent86ad4988fe7ff64916127509d84f44c56fa097aa (diff)
parentda1f05fbc19477c05c0c01bb07fabfaf1ece9d54 (diff)
Merge branch 'master' of https://github.com/qmk/qmk_firmware
Diffstat (limited to 'layouts/community/ergodox')
-rw-r--r--layouts/community/ergodox/333fred/keymap.c175
-rw-r--r--layouts/community/ergodox/drashna/config.h1
-rw-r--r--layouts/community/ergodox/drashna/keymap.c45
-rw-r--r--layouts/community/ergodox/drashna_glow/config.h2
-rw-r--r--layouts/community/ergodox/erez_experimental/config.h13
-rw-r--r--layouts/community/ergodox/erez_experimental/keymap.c217
-rw-r--r--layouts/community/ergodox/erez_experimental/readme.md55
-rw-r--r--layouts/community/ergodox/erez_experimental/rules.mk6
-rw-r--r--layouts/community/ergodox/manna-harbour_miryoku/keymap.c21
-rw-r--r--layouts/community/ergodox/nstickney/keymap.c231
-rw-r--r--layouts/community/ergodox/nstickney/rules.mk2
-rw-r--r--layouts/community/ergodox/osx_neo2/keymap.c694
-rw-r--r--layouts/community/ergodox/osx_neo2/layers.h9
-rw-r--r--layouts/community/ergodox/osx_neo2/readme.md219
-rw-r--r--layouts/community/ergodox/osx_neo2/visualizer.c47
-rw-r--r--layouts/community/ergodox/pvinis/Changelog.md7
-rw-r--r--layouts/community/ergodox/pvinis/Readme.md65
-rw-r--r--layouts/community/ergodox/pvinis/keymap.c475
-rw-r--r--layouts/community/ergodox/pvinis/rules.mk7
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
-
-