diff options
Diffstat (limited to 'keyboards/ergodox_ez')
30 files changed, 1570 insertions, 172 deletions
diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index d22836bd86..e60101e5e2 100644 --- a/keyboards/ergodox_ez/config.h +++ b/keyboards/ergodox_ez/config.h @@ -40,6 +40,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 +#define DEBOUNCE 30 + #define TAPPING_TOGGLE 1 /* define if matrix has ghost */ @@ -73,17 +75,23 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* ws2812 RGB LED */ #define RGB_DI_PIN D7 #define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 15 // Number of LEDs #define RGBLIGHT_HUE_STEP 12 #define RGBLIGHT_SAT_STEP 255 #define RGBLIGHT_VAL_STEP 12 +// Pick one of the modes +// Defaults to 15 mirror, for legacy behavior + +// #define ERGODOX_LED_15 // Addresses 15 LEDs, but same position on both halves +// #define ERGODOX_LED_15_MIRROR // Addresses 15 LEDs, but are mirrored +// #define ERGODOX_LED_30 // Addresses all 30 LED individually + /* fix space cadet rollover issue */ #define DISABLE_SPACE_CADET_ROLLOVER -#define RGBW_BB_TWI +#define RGBW -#define RGBW 1 +#define RGBLIGHT_SLEEP /* * The debounce filtering reports a key/switch change directly, @@ -109,6 +117,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define DRIVER_2_LED_TOTAL 24 #define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_PROCESS_LIMIT 5 +#define RGB_MATRIX_LED_FLUSH_LIMIT 26 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED true + // #define RGBLIGHT_COLOR_LAYER_0 0x00, 0x00, 0xFF /* #define RGBLIGHT_COLOR_LAYER_1 0x00, 0x00, 0xFF */ /* #define RGBLIGHT_COLOR_LAYER_2 0xFF, 0x00, 0x00 */ diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 947a173e36..d313f7d5d9 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -22,6 +22,8 @@ extern inline void ergodox_right_led_set(uint8_t led, uint8_t n); extern inline void ergodox_led_all_set(uint8_t n); +keyboard_config_t keyboard_config; + bool i2c_initialized = 0; i2c_status_t mcp23018_status = 0x20; @@ -43,6 +45,16 @@ void matrix_init_kb(void) { PORTD |= (1<<5 | 1<<4); PORTE |= (1<<6); + keyboard_config.raw = eeconfig_read_kb(); + ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); +#ifdef RGB_MATRIX_ENABLE + if (keyboard_config.rgb_matrix_enable) { + rgb_matrix_set_flags(LED_FLAG_ALL); + } else { + rgb_matrix_set_flags(LED_FLAG_NONE); + } +#endif + ergodox_blink_all_leds(); matrix_init_user(); @@ -305,6 +317,7 @@ led_config_t g_led_config = { { } }; void suspend_power_down_kb(void) { + rgb_matrix_set_color_all(0, 0, 0); rgb_matrix_set_suspend_state(true); suspend_power_down_user(); } @@ -314,4 +327,65 @@ void suspend_power_down_kb(void) { suspend_wakeup_init_user(); } +#ifdef ORYX_CONFIGURATOR +void keyboard_post_init_kb(void) { + rgb_matrix_enable_noeeprom(); + keyboard_post_init_user(); +} #endif +#endif + +#ifdef ORYX_CONFIGURATOR +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LED_LEVEL: + if (record->event.pressed) { + keyboard_config.led_level++; + if (keyboard_config.led_level > 4) { + keyboard_config.led_level = 0; + } + ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); + eeconfig_update_kb(keyboard_config.raw); + layer_state_set_kb(layer_state); + } + break; +#ifdef RGB_MATRIX_ENABLE + case TOGGLE_LAYER_COLOR: + if (record->event.pressed) { + keyboard_config.disable_layer_led ^= 1; + if (keyboard_config.disable_layer_led) + rgb_matrix_set_color_all(0, 0, 0); + eeconfig_update_kb(keyboard_config.raw); + } + break; + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + keyboard_config.rgb_matrix_enable = false; + rgb_matrix_set_color_all(0, 0, 0); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + keyboard_config.rgb_matrix_enable = true; + } + break; + } + eeconfig_update_kb(keyboard_config.raw); + } + return false; +#endif + } + return process_record_user(keycode, record); +} +#endif + +void eeconfig_init_kb(void) { // EEPROM is getting reset! + keyboard_config.raw = 0; + keyboard_config.led_level = 4; + keyboard_config.rgb_matrix_enable = true; + eeconfig_update_kb(keyboard_config.raw); + eeconfig_init_user(); +} diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h index 383702b957..7ff62d38a1 100644 --- a/keyboards/ergodox_ez/ergodox_ez.h +++ b/keyboards/ergodox_ez/ergodox_ez.h @@ -107,6 +107,25 @@ inline void ergodox_led_all_set(uint8_t n) ergodox_right_led_3_set(n); } +#ifdef ORYX_CONFIGURATOR +enum ergodox_ez_keycodes { + LED_LEVEL = SAFE_RANGE, + TOGGLE_LAYER_COLOR, + EZ_SAFE_RANGE, +}; +#endif + +typedef union { + uint32_t raw; + struct { + uint8_t led_level :3; + bool disable_layer_led :1; + bool rgb_matrix_enable :1; + }; +} keyboard_config_t; + +extern keyboard_config_t keyboard_config; + /* * LEFT HAND: LINES 115-122 * RIGHT HAND: LINES 124-131 diff --git a/keyboards/ergodox_ez/keymaps/blakedietz/keymap.c b/keyboards/ergodox_ez/keymaps/blakedietz/keymap.c index 8facc6e925..28f45bc3c2 100644 --- a/keyboards/ergodox_ez/keymaps/blakedietz/keymap.c +++ b/keyboards/ergodox_ez/keymaps/blakedietz/keymap.c @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT_ergodox( // layer 0 : default // left hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, - KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(DEV), + KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(DEV), KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, CTL_T(KC_Z), ALT_T(KC_X), GUI_T(KC_C), KC_V, KC_B, ALL_T(KC_NO), LT(SYMB,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, diff --git a/keyboards/ergodox_ez/keymaps/colemak_es_osx/config.h b/keyboards/ergodox_ez/keymaps/colemak_es_osx/config.h new file mode 100644 index 0000000000..a1e4d79768 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_es_osx/config.h @@ -0,0 +1,20 @@ +#pragma once + +// Sets good default for the speed of the mouse. +#undef MOUSEKEY_INTERVAL +#undef MOUSEKEY_DELAY +#undef MOUSEKEY_TIME_TO_MAX +#undef MOUSEKEY_MAX_SPEED + +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 + +#undef MOUSEKEY_WHEEL_MAX_SPEED +#undef MOUSEKEY_WHEEL_TIME_TO_MAX +#undef MOUSEKEY_WHEEL_DELAY + +#define MOUSEKEY_WHEEL_MAX_SPEED 5 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 60 +#define MOUSEKEY_WHEEL_DELAY 100
\ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/colemak_es_osx/keymap.c b/keyboards/ergodox_ez/keymaps/colemak_es_osx/keymap.c new file mode 100644 index 0000000000..0abd028a01 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_es_osx/keymap.c @@ -0,0 +1,397 @@ +/* + Copyright 2019 Mario Arias <mario@marioarias.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include QMK_KEYBOARD_H +#include "version.h" + +#include "keymap_spanish.h" + +enum layers { + BASE = 0, //Colemak + QWERTY, //Qwerty + FN, //Colemak but FN1 to FN12 instead of numbers + NUM, //Numpad + MOUSE, //Mouse and media controls + IDEA //Shortcuts for IDEA / Other tools +}; + +//Special paste +#define S_PASTE LSFT(LGUI(KC_V)) +//tmux prefix +#define T_PREFIX LCTL(KC_B) +// Column mode +#define I_COLUMN ALGR(LCTL(LGUI(ES_MINS))) +// Terminal +#define I_TERM ALGR(KC_F12) +// Line comment +#define I_LN_COM LCTL(LGUI(KC_7)) +// Block comment +#define I_BK_COM LCTL(LGUI(KC_8)) +// Reformat code +#define I_REFORM LALT(LGUI(KC_L)) +// Rename +#define I_RENAME LSFT(KC_F6) +// Find usages +#define I_FUSAGE LALT(KC_F7) +// Code for Packt +#define P_CODE LCTL(ALGR(KC_X)) +// Search +#define I_SEARCH LCTL(LSFT(KC_F)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Colemak MacOS Spanish layer + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 ! | 2 " | 3 · | 4 $ | 5 % | º \ | | ¡ ¿ | 6 & | 7 / | 8 ( | 9 ) | 0 = | Backsp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | Q | W | F | P | G | Home | | End | J | L | U | Y | Ñ | ' ? | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | CAPS | A | R | S | T | D |------| |------| H | N | E | I | O | ENT | + * |--------+------+------+------+------+------| <> | | -_ |------+------+------+------+------+--------| + * | Shift | Z | X | C | V | B | | | | K | M | , ; | . : | UP | Shift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Del | PgUp |Ctl/PD|Alt/[ |Cmd/] | |Cmd/{ |Alt/} | LEFT | DOWN | RIGHT| + * `----------------------------------' `----------------------------------' + * ,--------------. ,--------------. + * | Num | Mouse | | Qwer | Ctrl | + * ,------|------|-------| |------+-------+------. + * | | | FN | |SPaste| | | + * |LShift|Backsp|-------| |------| ENT |Space | + * | | | IDEA | | T-pre| | | + * `---------------------' `---------------------' + */ +[BASE] = LAYOUT_ergodox( +// left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, ES_LESS, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_HOME, + KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, + KC_DEL, KC_PGUP, CTL_T(KC_PGDN), ALT_T(ES_GRV), GUI_T(ES_PLUS), + + DF(NUM), DF(MOUSE), + DF(FN), + KC_LSFT, KC_BSPC, MO(IDEA), + +// right hand + ES_IEXL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_END, KC_J, KC_L, KC_U, KC_Y, ES_NTIL, ES_APOS, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT, + ES_MINS, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + GUI_T(ES_ACUT), ALT_T(KC_BSLS), KC_LEFT, KC_DOWN, KC_RIGHT, + + DF(QWERTY), KC_RCTL, + S_PASTE, + T_PREFIX, KC_ENT, KC_SPC +), +/* Keymap 1: Spanish QWERTY layer (games) //Will probably change it for a Linux/Windows Colemak layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 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 | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | Base | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `----------------------' + */ +[QWERTY] = LAYOUT_ergodox( + // left hand + _______, _______, _______, _______, _______, _______, _______, + _______, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, + _______, KC_A, KC_S, KC_D, KC_F, KC_G, + _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______, + +// right hand + _______, _______, _______, _______, _______, _______, _______, + _______, KC_Y, KC_U, KC_I, KC_O, KC_P, _______, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______, + _______, KC_N, KC_M, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + DF(BASE), _______, + _______, + _______, _______, _______ +), +/* Keymap 2: Function Layer +* +* ,--------------------------------------------------. ,--------------------------------------------------. +* | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | +* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +* | | | | | | | | | | | | | | | | +* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +* | | | | | | |------| |------| | | | | | | +* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +* | | | | | | | | | | | | | | | | +* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' +* | | | | | | | | | | | | +* `----------------------------------' `----------------------------------' +* ,-------------. ,-------------. +* | | | | | | +* ,------|------|------| |------+------+------. +* | | | Base | | | | | +* | | |------| |------| | | +* | | | | | | | | +* `--------------------' `--------------------' +*/ +[FN] = LAYOUT_ergodox( + // left hand + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + DF(BASE), + _______, _______, _______, + +// right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______ +), +/* Mouse and media controls + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | | | | | | Play | | Vol+ | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | Ms U | | | | | | | | Wh U | | | | + * |--------+------+------+------+------+------| Rwd | | Vol- |------+------+------+------+------+--------| + * | | | Ms L | Ms D | Ms R | |------| |------| | Wh L | Wh D | Wh R | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | Acc0 | Acc1 | Acc2 | | Fwd | | Mute | | Btn1 | Btn2 | Btn3 | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Num | Base | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------ |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[MOUSE] = LAYOUT_ergodox( +// left hand + KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPLY, + XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, KC_MRWD, + XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, + XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, KC_MFFD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + DF(NUM), DF(BASE), + XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, + +// right hand + KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_VOLD, XXXXXXX, XXXXXXX, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_R, XXXXXXX, XXXXXXX, + KC_MUTE, XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN3, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, + XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX +), +/* Num pad + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | ( | ) | = | / | * | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | Up | | | | | | | 7 | 8 | 9 | - | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | Left | Down |Right | |------| |------| | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 |Enter | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 0 | 0 | , |Enter | . | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Base | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------ |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUM] = LAYOUT_ergodox( +// left hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_UP, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + DF(BASE), _______, + _______, + _______, _______, _______, + +// right hand + _______, LSFT(KC_8), LSFT(KC_9), KC_PEQL, KC_PSLS, KC_PAST, _______, + _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_DOT, + + _______, _______, + _______, + _______, _______, _______ +), +/* IDEA + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | Renm | | Usag | | LnCm | BkCm | | Term | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | |Search| | | | | | | Refm | | | | | + * |--------+------+------+------+------+------| | | Col |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | Code | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------ |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[IDEA] = LAYOUT_ergodox( + +//Left hand + _______, _______, _______, _______, _______, _______, I_RENAME, + _______, _______, _______, I_SEARCH, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, P_CODE, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, DF(BASE), + _______, + _______, _______, _______, + +// right hand + I_FUSAGE, _______, I_LN_COM, I_BK_COM, _______, I_TERM, _______, + I_COLUMN, _______, I_REFORM, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______ +) +}; + + +void led_1_off(void) { + ergodox_right_led_1_off(); +} + +void led_2_off(void) { + ergodox_right_led_2_off(); +} + +void led_3_off(void) { + ergodox_right_led_3_off(); +} + +//Runs just one time when the keyboard initializes +void matrix_init_use(void) { + led_1_off(); + led_2_off(); + led_3_off(); +} + +// Value to use to switch LEDs on. The default value of 255 is far too bright. +static const uint8_t max_led_value = 20; + + +void led_1_on(void) { + ergodox_right_led_1_on(); + ergodox_right_led_1_set(max_led_value); +} + +void led_2_on(void) { + ergodox_right_led_2_on(); + ergodox_right_led_2_set(max_led_value); +} + +void led_3_on(void) { + ergodox_right_led_3_on(); + ergodox_right_led_3_set(max_led_value); +} + +uint32_t layer_state_set_user(uint32_t state) { + + if(layer_state_cmp(state ,IDEA)) { + led_1_on(); + led_3_on(); + } else { + led_1_off(); + led_3_off(); + } + + return state; +}; + +void matrix_scan_user(void) { + + ergodox_board_led_off(); + led_1_off(); + led_2_off(); + led_3_off(); + + if(layer_state_cmp(default_layer_state, QWERTY)) { + led_3_on(); + } + + if(layer_state_cmp(default_layer_state, FN)) { + led_2_on(); + } + + if(layer_state_cmp(default_layer_state, NUM)) { + led_2_on(); + led_3_on(); + } + + if(layer_state_cmp(default_layer_state, MOUSE)) { + led_1_on(); + } +}; diff --git a/keyboards/ergodox_ez/keymaps/colemak_es_osx/readme.md b/keyboards/ergodox_ez/keymaps/colemak_es_osx/readme.md new file mode 100644 index 0000000000..b17ae015aa --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_es_osx/readme.md @@ -0,0 +1,67 @@ +# ErgoDox EZ Spanish Colemak configuration + +## Description + +A Colemak keymap adapted for Spanish. + +### Base Layer - Spanish Colemak + +The Base Layer is a Colemak keymap with an additional "ñ" next to the "y" key. The arrow cluster has a proper T inverted shape. + +It includes almost all Spanish Symbols from a normal 100% keyboard thanks to the use of tap keys + + +| Pressed | Tap | Shift | Alt | +|---|---|---|---| +|Left Ctrl|PgDn||| +|Left Alt|`|ˆ|[| +|Left Cmd|+|*|]| +|Right Cmd|´|¨|{| +|Right Alt|ç|Ç|}| + +For example, if you want to type ```[]```, you keep pressing the "Left Alt" (To modify) and tap "Right Alt" and "Right Cmd" to send "[" and "]" + +### Qwerty Layer + +A Qwerty layer for gaming and maybe some VIM commands. It just modifies the few keys that are different between Colemak and Qwerty and keep all the others keys + +### Fn Layer + +A layer to change the number row including "º" and "¡" for "Fn1" to "Fn12". The rest is just the same as |