diff options
Diffstat (limited to 'keyboards/iris/keymaps/drashna/keymap.c')
| -rw-r--r-- | keyboards/iris/keymaps/drashna/keymap.c | 130 |
1 files changed, 76 insertions, 54 deletions
diff --git a/keyboards/iris/keymaps/drashna/keymap.c b/keyboards/iris/keymaps/drashna/keymap.c index 64d074fc9..b24e5fe53 100644 --- a/keyboards/iris/keymaps/drashna/keymap.c +++ b/keyboards/iris/keymaps/drashna/keymap.c | |||
| @@ -2,79 +2,94 @@ | |||
| 2 | #include QMK_KEYBOARD_H | 2 | #include QMK_KEYBOARD_H |
| 3 | #include "drashna.h" | 3 | #include "drashna.h" |
| 4 | 4 | ||
| 5 | #ifdef INDICATOR_LIGHTS | ||
| 6 | extern userspace_config_t userspace_config; | ||
| 5 | 7 | ||
| 6 | #define KC_ALAP ALT_T(KC_APP) | 8 | uint8_t last_mod; |
| 9 | uint8_t last_led; | ||
| 10 | uint8_t last_osm; | ||
| 11 | bool has_mods_changed = false; | ||
| 12 | #endif | ||
| 7 | 13 | ||
| 14 | #define KC_ALAP ALT_T(KC_APP) | ||
| 15 | #define KC_OSLG OSM(MOD_LGUI) | ||
| 8 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 16 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 9 | 17 | ||
| 10 | [_QWERTY] = LAYOUT_wrapper( | 18 | [_QWERTY] = LAYOUT_wrapper( |
| 11 | KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, | 19 | KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, |
| 12 | KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS, | 20 | KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS, |
| 13 | KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, | 21 | KC_CCCV, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, |
| 14 | KC_MLSF, _________________QWERTY_L3_________________, KC_ALAP, KC_LGUI, _________________QWERTY_R3_________________, KC_MRSF, | 22 | KC_MLSF, _________________QWERTY_L3_________________, KC_ALAP, KC_OSLG, _________________QWERTY_R3_________________, KC_MRSF, |
| 15 | LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE | 23 | LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE |
| 16 | ), | 24 | ), |
| 17 | [_COLEMAK] = LAYOUT_wrapper( | 25 | [_COLEMAK] = LAYOUT_wrapper( |
| 18 | KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, | 26 | KC_ESC , ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, |
| 19 | KC_TAB , _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSLS, | 27 | KC_TAB , _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSLS, |
| 20 | KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, | 28 | KC_CCCV, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, |
| 21 | KC_MLSF, _________________COLEMAK_L3________________, KC_ALAP, KC_LGUI, _________________COLEMAK_R3________________, KC_MRSF, | 29 | KC_MLSF, _________________COLEMAK_L3________________, KC_ALAP, KC_OSLG, _________________COLEMAK_R3________________, KC_MRSF, |
| 22 | LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE | 30 | LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE |
| 23 | ), | 31 | ), |
| 24 | [_DVORAK] = LAYOUT_wrapper( | 32 | [_DVORAK] = LAYOUT_wrapper( |
| 25 | KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, | 33 | KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, |
| 26 | KC_TAB , _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSLS, | 34 | KC_TAB , _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSLS, |
| 27 | KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT, | 35 | KC_CCCV, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT, |
| 28 | KC_MLSF, _________________DVORAK_L3_________________, KC_ALAP, KC_LGUI, _________________DVORAK_R3_________________, KC_MRSF, | 36 | KC_MLSF, _________________DVORAK_L3_________________, KC_ALAP, KC_OSLG, _________________DVORAK_R3_________________, KC_MRSF, |
| 29 | LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE | 37 | LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE |
| 30 | ), | 38 | ), |
| 31 | [_WORKMAN] = LAYOUT_wrapper( | 39 | [_WORKMAN] = LAYOUT_wrapper( |
| 32 | KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, | 40 | KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, |
| 33 | KC_TAB , _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSLS, | 41 | KC_TAB , _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSLS, |
| 34 | KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, | 42 | KC_CCCV, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, |
| 35 | KC_MLSF, _________________WORKMAN_L3________________, KC_ALAP, KC_LGUI, _________________WORKMAN_R3________________, KC_MRSF, | 43 | KC_MLSF, _________________WORKMAN_L3________________, KC_ALAP, KC_OSLG, _________________WORKMAN_R3________________, KC_MRSF, |
| 36 | LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE | 44 | LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE |
| 37 | ), | 45 | ), |
| 38 | 46 | ||
| 39 | [_MODS] = LAYOUT( | 47 | [_MODS] = LAYOUT_wrapper( |
| 40 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | 48 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
| 41 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | 49 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
| 42 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | 50 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
| 43 | KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | 51 | KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, |
| 44 | _______, _______, _______, _______, _______, _______ | 52 | _______, _______, _______, _______, _______, _______ |
| 45 | ), | 53 | ), |
| 46 | 54 | ||
| 47 | 55 | ||
| 48 | [_LOWER] = LAYOUT( | 56 | [_LOWER] = LAYOUT_wrapper( |
| 49 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, | 57 | _______, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, _______, |
| 50 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | 58 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
| 51 | KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_RBRC, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, | 59 | _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, |
| 52 | KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_LPRN, KC_RPRN, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, | 60 | _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, |
| 53 | _______, _______, KC_DEL, _______, _______, _______ | 61 | _______, _______, _______, _______, _______, _______ |
| 54 | ), | 62 | ), |
| 55 | 63 | ||
| 56 | [_RAISE] = LAYOUT( | 64 | [_RAISE] = LAYOUT_wrapper( |
| 57 | KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, | 65 | _______, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, _______, |
| 58 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | 66 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
| 59 | _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_UNDS, KC_EQL , KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | 67 | _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, |
| 60 | _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_END, _______, _______, _______, _______, | 68 | _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, |
| 61 | _______, _______, _______, _______, _______, _______ | 69 | _______, _______, _______, _______, _______, _______ |
| 62 | ), | 70 | ), |
| 63 | 71 | ||
| 64 | [_ADJUST] = LAYOUT( | 72 | [_ADJUST] = LAYOUT_wrapper( |
| 65 | KC_MAKE, KC_RST, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, | 73 | KC_MAKE, _______, _______, _______, _______, _______, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_RST, |
| 66 | RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, | 74 | VRSN, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, _______, _______, _______, _______, _______, EPRM, |
| 67 | RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), | 75 | _______, _______, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, _______, |
| 68 | KC_RGB_T,RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, | 76 | TG(_MODS),RGB_SMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T,_______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, |
| 69 | _______, _______, _______, _______, _______, _______ | 77 | _______, _______, _______, _______, _______, _______ |
| 70 | ) | 78 | ) |
| 71 | 79 | ||
| 72 | }; | 80 | }; |
| 73 | 81 | ||
| 74 | 82 | ||
| 83 | void matrix_init_keymap(void) { | ||
| 84 | #ifdef INDICATOR_LIGHTS | ||
| 85 | last_mod = get_mods(); | ||
| 86 | last_led = host_keyboard_leds(); | ||
| 87 | last_osm =get_oneshot_mods(); | ||
| 88 | #endif | ||
| 89 | } | ||
| 75 | 90 | ||
| 76 | #ifdef INDICATOR_LIGHT | ||
| 77 | uint32_t layer_state_set_keymap (uint32_t state) { | 91 | uint32_t layer_state_set_keymap (uint32_t state) { |
| 92 | #ifdef INDICATOR_LIGHTS | ||
| 78 | uint8_t modifiders = get_mods(); | 93 | uint8_t modifiders = get_mods(); |
| 79 | uint8_t led_usb_state = host_keyboard_leds(); | 94 | uint8_t led_usb_state = host_keyboard_leds(); |
| 80 | uint8_t one_shot = get_oneshot_mods(); | 95 | uint8_t one_shot = get_oneshot_mods(); |
| @@ -92,41 +107,49 @@ uint32_t layer_state_set_keymap (uint32_t state) { | |||
| 92 | rgblight_sethsv_at(120, 255, 255, 7); | 107 | rgblight_sethsv_at(120, 255, 255, 7); |
| 93 | rgblight_sethsv_at(120, 255, 255, 8); | 108 | rgblight_sethsv_at(120, 255, 255, 8); |
| 94 | } | 109 | } |
| 110 | #endif | ||
| 95 | 111 | ||
| 96 | return state; | 112 | return state; |
| 97 | } | 113 | } |
| 98 | 114 | ||
| 99 | 115 | ||
| 100 | void matrix_scan_keymap (void) { | 116 | void matrix_scan_keymap (void) { |
| 101 | static uint8_t current_mods; | 117 | |
| 102 | static uint8_t current_host_leds; | 118 | #ifdef INDICATOR_LIGHTS |
| 103 | static uint8_t current_oneshot_mods; | 119 | uint8_t current_mod = get_mods(); |
| 104 | static bool has_status_changed = true; | 120 | uint8_t current_led = host_keyboard_leds(); |
| 105 | 121 | uint8_t current_osm =get_oneshot_mods(); | |
| 106 | if ( current_mods != get_mods() || current_host_leds != host_keyboard_leds() || current_oneshot_mods != get_oneshot_mods()) { | 122 | |
| 107 | has_status_changed = true; | 123 | if (last_mod == current_mod) { |
| 108 | current_mods = get_mods(); | 124 | last_mod = current_mod; |
| 109 | current_host_leds = host_keyboard_leds(); | 125 | has_mods_changed = true; |
| 110 | current_oneshot_mods = get_oneshot_mods(); | 126 | } |
| 127 | if (last_led == current_led) { | ||
| 128 | last_led = current_led; | ||
| 129 | has_mods_changed = true; | ||
| 111 | } | 130 | } |
| 112 | if (has_status_changed) { | 131 | if (last_osm == current_osm) { |
| 113 | has_status_changed = false; | 132 | last_osm = current_osm; |
| 133 | has_mods_changed = true; | ||
| 134 | } | ||
| 135 | |||
| 114 | 136 | ||
| 115 | if (current_mods & MODS_SHIFT_MASK || current_host_leds & (1<<USB_LED_CAPS_LOCK) || current_oneshot_mods & MODS_SHIFT_MASK) { | 137 | if (userspace_config.rgb_layer_change && has_mods_changed && biton32(layer_state) == 0) { |
| 138 | if (current_mod & MODS_SHIFT_MASK || current_led & (1<<USB_LED_CAPS_LOCK) || current_osm & MODS_SHIFT_MASK) { | ||
| 116 | rgblight_sethsv_at(0, 255, 255, 5); | 139 | rgblight_sethsv_at(0, 255, 255, 5); |
| 117 | rgblight_sethsv_at(0, 255, 255, 10); | 140 | rgblight_sethsv_at(0, 255, 255, 10); |
| 118 | } else { | 141 | } else { |
| 119 | rgblight_sethsv_default_helper(5); | 142 | rgblight_sethsv_default_helper(5); |
| 120 | rgblight_sethsv_default_helper(10); | 143 | rgblight_sethsv_default_helper(10); |
| 121 | } | 144 | } |
| 122 | if (current_mods & MODS_CTRL_MASK || current_oneshot_mods & MODS_CTRL_MASK) { | 145 | if (current_mod & MODS_CTRL_MASK || current_osm & MODS_CTRL_MASK) { |
| 123 | rgblight_sethsv_at(51, 255, 255, 6); | 146 | rgblight_sethsv_at(51, 255, 255, 6); |
| 124 | rgblight_sethsv_at(51, 255, 255, 9); | 147 | rgblight_sethsv_at(51, 255, 255, 9); |
| 125 | } else { | 148 | } else { |
| 126 | rgblight_sethsv_default_helper(6); | 149 | rgblight_sethsv_default_helper(6); |
| 127 | rgblight_sethsv_default_helper(9); | 150 | rgblight_sethsv_default_helper(9); |
| 128 | } | 151 | } |
| 129 | if (current_mods & MODS_GUI_MASK || current_oneshot_mods & MODS_GUI_MASK) { | 152 | if (current_mod & MODS_GUI_MASK || current_osm & MODS_GUI_MASK) { |
| 130 | rgblight_sethsv_at(120, 255, 255, 7); | 153 | rgblight_sethsv_at(120, 255, 255, 7); |
| 131 | rgblight_sethsv_at(120, 255, 255, 8); | 154 | rgblight_sethsv_at(120, 255, 255, 8); |
| 132 | } else { | 155 | } else { |
| @@ -135,7 +158,6 @@ void matrix_scan_keymap (void) { | |||
| 135 | 158 | ||
| 136 | } | 159 | } |
| 137 | } | 160 | } |
| 138 | } | ||
| 139 | #endif | 161 | #endif |
| 140 | 162 | ||
| 141 | 163 | } | |
