diff options
Diffstat (limited to 'keyboards/eco')
| -rw-r--r-- | keyboards/eco/keymaps/xyverz/keymap.c | 115 |
1 files changed, 39 insertions, 76 deletions
diff --git a/keyboards/eco/keymaps/xyverz/keymap.c b/keyboards/eco/keymaps/xyverz/keymap.c index 395a014ac..5a1974336 100644 --- a/keyboards/eco/keymaps/xyverz/keymap.c +++ b/keyboards/eco/keymaps/xyverz/keymap.c | |||
| @@ -1,36 +1,13 @@ | |||
| 1 | // This is the canonical layout file for the Quantum project. If you want to add another keyboard, | ||
| 2 | // this is the style you want to emulate. | ||
| 3 | |||
| 4 | // Default ECO Layout | ||
| 5 | // KLE here : http://www.keyboard-layout-editor.com/#/gists/0733eca6b4cb88ff9d7de746803f4039 | ||
| 6 | |||
| 7 | #include QMK_KEYBOARD_H | 1 | #include QMK_KEYBOARD_H |
| 8 | 2 | ||
| 9 | extern keymap_config_t keymap_config; | 3 | enum layer_names { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST }; |
| 10 | |||
| 11 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | ||
| 12 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | ||
| 13 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | ||
| 14 | // entirely and just use numbers. | ||
| 15 | #define _QWERTY 0 | ||
| 16 | #define _COLEMAK 1 | ||
| 17 | #define _DVORAK 2 | ||
| 18 | #define _LOWER 3 | ||
| 19 | #define _RAISE 4 | ||
| 20 | #define _ADJUST 16 | ||
| 21 | |||
| 22 | enum planck_keycodes { | ||
| 23 | QWERTY = SAFE_RANGE, | ||
| 24 | COLEMAK, | ||
| 25 | DVORAK, | ||
| 26 | LOWER, | ||
| 27 | RAISE, | ||
| 28 | BACKLIT | ||
| 29 | }; | ||
| 30 | 4 | ||
| 31 | // Aliases to make reading the keymap easier | 5 | enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, LOWER, RAISE, ADJUST }; |
| 32 | #define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped. | ||
| 33 | 6 | ||
| 7 | // Aliases to keep the keymap tidy | ||
| 8 | #define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped. | ||
| 9 | |||
| 10 | // clang-format off | ||
| 34 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 11 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 35 | 12 | ||
| 36 | /* Qwerty | 13 | /* Qwerty |
| @@ -143,53 +120,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 143 | ), | 120 | ), |
| 144 | 121 | ||
| 145 | }; | 122 | }; |
| 123 | // clang-format on | ||
| 124 | |||
| 125 | #ifdef AUDIO_ENABLE | ||
| 126 | float tone_qwerty[][2] = SONG(QWERTY_SOUND); | ||
| 127 | float tone_dvorak[][2] = SONG(DVORAK_SOUND); | ||
| 128 | float tone_colemak[][2] = SONG(COLEMAK_SOUND); | ||
| 129 | #endif | ||
| 130 | |||
| 131 | void matrix_init_user(void) { | ||
| 132 | #ifdef BOOTLOADER_CATERINA | ||
| 133 | // This will disable the red LEDs on the ProMicros | ||
| 134 | setPinInput(D5); | ||
| 135 | writePinLow(D5); | ||
| 136 | setPinInput(B0); | ||
| 137 | writePinLow(B0); | ||
| 138 | #endif | ||
| 139 | }; | ||
| 146 | 140 | ||
| 147 | void persistent_default_layer_set(uint16_t default_layer) { | 141 | layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); }; |
| 148 | eeconfig_update_default_layer(default_layer); | ||
| 149 | default_layer_set(default_layer); | ||
| 150 | } | ||
| 151 | 142 | ||
| 152 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 143 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 153 | switch (keycode) { | 144 | if (record->event.pressed) { |
| 154 | case QWERTY: | 145 | switch (keycode) { |
| 155 | if (record->event.pressed) { | 146 | case QWERTY: |
| 156 | persistent_default_layer_set(1UL<<_QWERTY); | 147 | set_single_persistent_default_layer(_QWERTY); |
| 157 | } | 148 | return false; |
| 158 | return false; | 149 | case COLEMAK: |
| 159 | break; | 150 | set_single_persistent_default_layer(_COLEMAK); |
| 160 | case COLEMAK: | 151 | return false; |
| 161 | if (record->event.pressed) { | 152 | case DVORAK: |
| 162 | persistent_default_layer_set(1UL<<_COLEMAK); | 153 | set_single_persistent_default_layer(_DVORAK); |
| 163 | } | 154 | return false; |
| 164 | return false; | 155 | } |
| 165 | break; | 156 | } |
| 166 | case DVORAK: | 157 | return true; |
| 167 | if (record->event.pressed) { | 158 | } \ No newline at end of file |
| 168 | persistent_default_layer_set(1UL<<_DVORAK); | ||
| 169 | } | ||
| 170 | return false; | ||
| 171 | break; | ||
| 172 | case LOWER: | ||
| 173 | if (record->event.pressed) { | ||
| 174 | layer_on(_LOWER); | ||
| 175 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
| 176 | } else { | ||
| 177 | layer_off(_LOWER); | ||
| 178 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
| 179 | } | ||
| 180 | return false; | ||
| 181 | break; | ||
| 182 | case RAISE: | ||
| 183 | if (record->event.pressed) { | ||
| 184 | layer_on(_RAISE); | ||
| 185 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
| 186 | } else { | ||
| 187 | layer_off(_RAISE); | ||
| 188 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
| 189 | } | ||
| 190 | return false; | ||
| 191 | break; | ||
| 192 | } | ||
| 193 | return true; | ||
| 194 | } | ||
| 195 | |||
