diff options
Diffstat (limited to 'keyboards/keebio/nyquist/keymaps/georgepetri/keymap.c')
-rw-r--r-- | keyboards/keebio/nyquist/keymaps/georgepetri/keymap.c | 71 |
1 files changed, 44 insertions, 27 deletions
diff --git a/keyboards/keebio/nyquist/keymaps/georgepetri/keymap.c b/keyboards/keebio/nyquist/keymaps/georgepetri/keymap.c index 6b427e06d5..96ea4ff199 100644 --- a/keyboards/keebio/nyquist/keymaps/georgepetri/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/georgepetri/keymap.c @@ -6,10 +6,6 @@ extern keymap_config_t keymap_config; #define _L 1 #define _R 2 -enum custom_keycodes { - QWERTY = SAFE_RANGE -}; - #define KC_TL LCTL(KC_PGUP) #define KC_TR LCTL(KC_PGDN) #define KC_TC LCTL(KC_W) @@ -26,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_ENT , //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - KC_CAPS, KC_LCTL, KC_LGUI, KC_LALT, MO(_L) , KC_SPC , KC_SPC , TG(_R) , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT + KC_CAPS, KC_LCTL, KC_LGUI, KC_LALT, MO(_L) , KC_SPC , KC_RSFT, TT(_R) , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT //└────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┘ ), @@ -59,33 +55,54 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; +const rgblight_segment_t PROGMEM left[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 12, HSV_MAGENTA} +); + +const rgblight_segment_t PROGMEM right[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 12, HSV_RED} +); + +const rgblight_segment_t PROGMEM capslock[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 3, HSV_GOLD}, + {6, 3, HSV_GOLD} +); + +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(left, right, capslock); + void keyboard_post_init_user(void) { - rgblight_sethsv_noeeprom(HSV_BLUE); + rgblight_sethsv_noeeprom(HSV_SPRINGGREEN); + rgblight_layers = rgb_layers; } -void update_led(void) { - switch (biton32(layer_state)) { - case _BASE: - rgblight_sethsv_noeeprom(HSV_BLUE); - break; - case _L: - rgblight_sethsv_noeeprom(HSV_CORAL); - break; - case _R: - rgblight_sethsv_noeeprom(HSV_MAGENTA); - break; - } - if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { - rgblight_sethsv_range(HSV_WHITE,0,3); - rgblight_sethsv_range(HSV_WHITE,9,12); - } +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, _L)); + rgblight_set_layer_state(1, layer_state_cmp(state, _R)); + return state; } -uint32_t layer_state_set_user(uint32_t state) { - update_led(); - return state; +void suspend_power_down_user(void) { + rgblight_disable(); } -void led_set_user(uint8_t usb_led) { - update_led(); +void suspend_wakeup_init_user(void) { + rgblight_enable(); +} + +bool is_shift_pressed = false; + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(2, is_shift_pressed != led_state.caps_lock); + return true; +} + +bool process_record_user(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { + case KC_LSFT: + case KC_RSFT: + is_shift_pressed = record->event.pressed; + rgblight_set_layer_state(2, is_shift_pressed != host_keyboard_led_state().caps_lock); + default: + return true; + } } |