diff options
| author | John Helveston <john.helveston@gmail.com> | 2020-07-26 17:35:46 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-26 22:35:46 +0100 |
| commit | 688426b50225b1d5b44f3eeaa9b26816d28ba16e (patch) | |
| tree | 3fd9fcf32bbbd5cf538db2fdc3678b84e10ac71d | |
| parent | a6a13f96262ef1e8c91546f24cff5067f8026c23 (diff) | |
| download | qmk_firmware-688426b50225b1d5b44f3eeaa9b26816d28ba16e.tar.gz qmk_firmware-688426b50225b1d5b44f3eeaa9b26816d28ba16e.zip | |
Adding keymaps for iris and kyria keyboards (#9783)
* updated iris and kyria keymaps
* added symbols I forgot to add to keymap
* Update keyboards/keebio/iris/keymaps/jhelvy/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* condense code
Co-authored-by: Ryan <fauxpark@gmail.com>
* condense code
Co-authored-by: Ryan <fauxpark@gmail.com>
* made another small fix to a missing symbol in my iris keymap
Co-authored-by: Ryan <fauxpark@gmail.com>
| -rw-r--r-- | keyboards/keebio/iris/keymaps/jhelvy/README.md | 8 | ||||
| -rw-r--r-- | keyboards/keebio/iris/keymaps/jhelvy/config.h | 21 | ||||
| -rw-r--r-- | keyboards/keebio/iris/keymaps/jhelvy/keymap.c | 144 | ||||
| -rw-r--r-- | keyboards/keebio/iris/keymaps/jhelvy/rules.mk | 9 | ||||
| -rw-r--r-- | keyboards/kyria/keymaps/jhelvy/config.h | 33 | ||||
| -rw-r--r-- | keyboards/kyria/keymaps/jhelvy/keymap.c | 201 | ||||
| -rw-r--r-- | keyboards/kyria/keymaps/jhelvy/rules.mk | 8 |
7 files changed, 373 insertions, 51 deletions
diff --git a/keyboards/keebio/iris/keymaps/jhelvy/README.md b/keyboards/keebio/iris/keymaps/jhelvy/README.md index 5d5ff1247..84b924c37 100644 --- a/keyboards/keebio/iris/keymaps/jhelvy/README.md +++ b/keyboards/keebio/iris/keymaps/jhelvy/README.md | |||
| @@ -1,7 +1 @@ | |||
| 1 | # jhelvy Keymap for [Iris Rev 2](https://docs.keeb.io/iris-build-guide/) | Keymap for jhelvy's [Iris Rev 2](https://github.com/jhelvy/iris-rev2) | |
| 2 | |||
| 3 | ## Keymap | ||
| 4 | |||
| 5 | This is a custom keymap with the following layout: | ||
| 6 | |||
| 7 | <img src="https://github.com/jhelvy/qmkJsonConverter/raw/master/keymaps/keebio_iris_rev2_jhelvy.png" width="800"> | ||
diff --git a/keyboards/keebio/iris/keymaps/jhelvy/config.h b/keyboards/keebio/iris/keymaps/jhelvy/config.h index 2285c3f9a..c01923473 100644 --- a/keyboards/keebio/iris/keymaps/jhelvy/config.h +++ b/keyboards/keebio/iris/keymaps/jhelvy/config.h | |||
| @@ -17,17 +17,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 17 | 17 | ||
| 18 | #pragma once | 18 | #pragma once |
| 19 | 19 | ||
| 20 | // #define USE_I2C | 20 | // Had to swap the master to get the right-side rotary encoder supported |
| 21 | #define EE_HANDS | 21 | #define MASTER_RIGHT |
| 22 | |||
| 23 | #undef RGBLED_NUM | ||
| 24 | #define RGBLIGHT_ANIMATIONS | ||
| 25 | #define RGBLED_NUM 12 | ||
| 26 | #define RGBLIGHT_HUE_STEP 8 | ||
| 27 | #define RGBLIGHT_SAT_STEP 8 | ||
| 28 | #define RGBLIGHT_VAL_STEP 8 | ||
| 29 | 22 | ||
| 30 | #define TAPPING_FORCE_HOLD | 23 | #define TAPPING_FORCE_HOLD |
| 31 | #undef TAPPING_TERM | 24 | #undef TAPPING_TERM |
| 32 | #define TAPPING_TERM 200 | 25 | #define TAPPING_TERM 200 |
| 33 | #define AUTO_SHIFT_TIMEOUT 150 | 26 | #define AUTO_SHIFT_TIMEOUT 150 |
| 27 | |||
| 28 | #define MOUSEKEY_DELAY 100 | ||
| 29 | #define MOUSEKEY_INTERVAL 16 | ||
| 30 | #define MOUSEKEY_MAX_SPEED 2 | ||
| 31 | #define MOUSEKEY_WHEEL_MAX_SPEED 42 | ||
| 32 | #define MOUSEKEY_WHEEL_TIME_TO_MAX 15 | ||
| 33 | |||
| 34 | #define ENCODERS_PAD_A { F4 } | ||
| 35 | #define ENCODERS_PAD_B { F5 } | ||
| 36 | #define ENCODER_RESOLUTION 4 | ||
diff --git a/keyboards/keebio/iris/keymaps/jhelvy/keymap.c b/keyboards/keebio/iris/keymaps/jhelvy/keymap.c index 58ce3206d..a3d20bed5 100644 --- a/keyboards/keebio/iris/keymaps/jhelvy/keymap.c +++ b/keyboards/keebio/iris/keymaps/jhelvy/keymap.c | |||
| @@ -1,54 +1,134 @@ | |||
| 1 | #include QMK_KEYBOARD_H | 1 | #include QMK_KEYBOARD_H |
| 2 | 2 | ||
| 3 | 3 | enum layers { | |
| 4 | #define _QWERTY 0 | 4 | QWERTY = 0, |
| 5 | #define _LOWER 1 | 5 | HOTKEYS, |
| 6 | #define _RAISE 2 | 6 | TEXT, |
| 7 | SELECT, | ||
| 8 | MOUSE, | ||
| 9 | }; | ||
| 7 | 10 | ||
| 8 | enum custom_keycodes { | 11 | enum custom_keycodes { |
| 9 | QWERTY = SAFE_RANGE, | 12 | SIG_PROF = SAFE_RANGE, |
| 10 | LOWER, | 13 | SIG_JOHN, |
| 11 | RAISE, | 14 | R_PIPE, |
| 15 | R_ASSIGN, | ||
| 16 | R_COLS, | ||
| 17 | R_IN, | ||
| 18 | TEX, | ||
| 19 | E_GMAIL, | ||
| 20 | E_GWU, | ||
| 12 | }; | 21 | }; |
| 13 | 22 | ||
| 14 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 23 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 15 | 24 | ||
| 16 | [_QWERTY] = LAYOUT( \ | 25 | |
| 17 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, \ | 26 | [QWERTY] = LAYOUT(LALT(KC_A), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, KC_EQL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, MO(4), KC_LGUI, MO(2), KC_SPC, MO(1), TG(1)), |
| 18 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, \ | 27 | |
| 19 | KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, \ | 28 | [HOTKEYS] = LAYOUT(KC_F5, LGUI(LALT(KC_1)), LGUI(LALT(KC_2)), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F14, KC_F6, KC_NO, KC_NO, LCTL(KC_U), SGUI(KC_R), KC_F2, SGUI(KC_K), LCTL(KC_9), LCTL(KC_0), KC_NO, KC_F11, KC_F15, KC_F7, LGUI(LCTL(KC_A)), KC_F10, KC_LBRC, KC_RBRC, KC_F9, SIG_JOHN, LSFT(KC_TAB), KC_TAB, E_GMAIL, KC_F12, KC_F16, KC_F8, KC_ASTG, KC_NO, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_NO, SIG_PROF, KC_F3, KC_F4, E_GWU, KC_F13, KC_F17, LALT(KC_SPC), KC_LGUI, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS), |
| 20 | KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ | 29 | |
| 21 | LALT(KC_A),KC_LGUI, MO(1), KC_SPC, MO(2), KC_PGDN), | 30 | [TEXT] = LAYOUT(KC_ESC, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), KC_SCLN, KC_PIPE, KC_COLN, KC_NO, KC_UNDS, KC_PLUS, LGUI(KC_BSPC), LGUI(KC_Q), LGUI(KC_W), KC_ESC, LGUI(KC_R), LGUI(KC_T), LCTL(KC_Y), LGUI(KC_LEFT), KC_UP, LGUI(KC_RGHT), KC_TILD, R_PIPE, KC_BSPC, MO(3), LGUI(KC_S), LGUI(KC_C), LGUI(KC_V), LGUI(KC_X), KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_GRV, KC_ENT, KC_F18, LGUI(KC_A), LGUI(KC_D), KC_F1, LGUI(KC_Z), LGUI(KC_Y), KC_NO, KC_NO, KC_BSPC, LGUI(KC_F), SGUI(KC_G), LGUI(KC_G), KC_BSLS, R_ASSIGN, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_RGUI, KC_NO), |
| 22 | 31 | ||
| 23 | [_LOWER] = LAYOUT( \ | 32 | [SELECT] = LAYOUT(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, SGUI(KC_LEFT), LSFT(KC_UP), SGUI(KC_RGHT), KC_NO, R_COLS, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_RGHT), KC_NO, R_IN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LALT(LSFT(KC_LEFT)), LALT(LSFT(KC_RIGHT)), KC_NO, TEX, KC_NO, KC_NO, KC_NO, KC_SPC, KC_TRNS, KC_TRNS), |
| 24 | KC_ESC,LGUI(KC_1),LGUI(KC_2),LGUI(KC_3),LGUI(KC_4),LGUI(KC_5), KC_SCLN, KC_PIPE, KC_COLN,LCTL(KC_9),LCTL(KC_0), KC_F12, \ | 33 | |
| 25 | LCTL(KC_TAB),LGUI(KC_Q),LGUI(KC_W), KC_ESC,LGUI(KC_R),LGUI(KC_T), LCTL(KC_Y),LGUI(KC_LEFT), KC_UP,LGUI(KC_RGHT), KC_TILD, KC_F11, \ | 34 | [MOUSE] = LAYOUT(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_LGUI, KC_NO, KC_NO, LGUI(KC_LBRC), KC_MS_U, LGUI(KC_RBRC), KC_NO, KC_NO, LCTL(KC_TAB), KC_NO, KC_NO, 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_TRNS, KC_NO, KC_NO, KC_BTN1, KC_BTN2, KC_NO) |
| 26 | LGUI(KC_BSPC),MO(2),LGUI(KC_S),LGUI(KC_C),LGUI(KC_V),LGUI(KC_X), KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_GRV, KC_ENT, \ | ||
| 27 | KC_F15,LGUI(KC_A),LGUI(KC_D), KC_F13,LGUI(KC_Z),LGUI(KC_Y), KC_NO, KC_NO,KC_BSPC,LGUI(KC_F), SGUI(KC_G),LGUI(KC_G), KC_BSLS, KC_F23, \ | ||
| 28 | KC_LALT,KC_LGUI, KC_TRNS, KC_SPC,KC_RGUI, KC_PGUP), | ||
| 29 | |||
| 30 | [_RAISE] = LAYOUT( \ | ||
| 31 | KC_VOLU,LGUI(LALT(KC_1)),LGUI(LALT(KC_2)), KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PLUS, \ | ||
| 32 | KC_VOLD, KC_NO, KC_NO, KC_NO,SGUI(KC_R), KC_F14, SGUI(KC_K),SGUI(KC_LEFT),LSFT(KC_UP),SGUI(KC_RGHT), KC_F18, KC_UNDS, \ | ||
| 33 | KC_MUTE,KC_TRNS, KC_NO, KC_LBRC, KC_RBRC, KC_TAB, KC_F21,LSFT(KC_LEFT),LSFT(KC_DOWN),LSFT(KC_RGHT), KC_F20, KC_F16, \ | ||
| 34 | KC_LSPO,KC_ASTG, KC_NO, KC_LCBR, KC_RCBR,LCTL(KC_U), KC_NO, KC_NO,KC_F22,LCTL(LGUI(KC_A)),LALT(LSFT(KC_LEFT)),LALT(LSFT(KC_RIGHT)), KC_F17, KC_F19, \ | ||
| 35 | KC_CAPS,LALT(KC_SPC), KC_LGUI, KC_SPC,KC_TRNS, KC_NO) | ||
| 36 | 35 | ||
| 37 | }; | 36 | }; |
| 38 | 37 | ||
| 38 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 39 | switch (keycode) { | ||
| 40 | case SIG_PROF: | ||
| 41 | if (record->event.pressed) { | ||
| 42 | SEND_STRING("Cheers,\nProfessor Helveston"); | ||
| 43 | } else { | ||
| 44 | } | ||
| 45 | break; | ||
| 46 | |||
| 47 | case SIG_JOHN: | ||
| 48 | if (record->event.pressed) { | ||
| 49 | SEND_STRING("Cheers,\nJohn"); | ||
| 50 | } else { | ||
| 51 | } | ||
| 52 | break; | ||
| 53 | |||
| 54 | case R_PIPE: | ||
| 55 | if (record->event.pressed) { | ||
| 56 | SEND_STRING(" %>% "); | ||
| 57 | } else { | ||
| 58 | } | ||
| 59 | break; | ||
| 60 | |||
| 61 | case R_ASSIGN: | ||
| 62 | if (record->event.pressed) { | ||
| 63 | SEND_STRING(" <- "); | ||
| 64 | } else { | ||
| 65 | } | ||
| 66 | break; | ||
| 67 | |||
| 68 | case R_COLS: | ||
| 69 | if (record->event.pressed) { | ||
| 70 | SEND_STRING(".leftcol[\n]\n.rightcol[\n]\n"); | ||
| 71 | } else { | ||
| 72 | } | ||
| 73 | break; | ||
| 74 | |||
| 75 | case R_IN: | ||
| 76 | if (record->event.pressed) { | ||
| 77 | SEND_STRING(" %in% "); | ||
| 78 | } else { | ||
| 79 | } | ||
| 80 | break; | ||
| 81 | |||
| 82 | case TEX: | ||
| 83 | if (record->event.pressed) { | ||
| 84 | SEND_STRING("\\text{}"); | ||
| 85 | } else { | ||
| 86 | } | ||
| 87 | break; | ||
| 88 | |||
| 89 | case E_GMAIL: | ||
| 90 | if (record->event.pressed) { | ||
| 91 | SEND_STRING("john.helveston@gmail.com"); | ||
| 92 | } else { | ||
| 93 | } | ||
| 94 | break; | ||
| 95 | |||
| 96 | case E_GWU: | ||
| 97 | if (record->event.pressed) { | ||
| 98 | SEND_STRING("jph@gwu.edu"); | ||
| 99 | } else { | ||
| 100 | } | ||
| 101 | break; | ||
| 102 | |||
| 103 | } | ||
| 104 | |||
| 105 | return true; | ||
| 106 | }; | ||
| 107 | |||
| 39 | void encoder_update_user(uint8_t index, bool clockwise) { | 108 | void encoder_update_user(uint8_t index, bool clockwise) { |
| 40 | if (index == 0) { | 109 | if (IS_LAYER_ON(HOTKEYS)) { |
| 41 | if (clockwise) { | 110 | if (clockwise) { |
| 42 | tap_code(KC_VOLU); | 111 | tap_code(KC_VOLU); |
| 43 | } else { | 112 | } else { |
| 44 | tap_code(KC_VOLD); | 113 | tap_code(KC_VOLD); |
| 45 | } | 114 | } |
| 46 | } | 115 | } else if (IS_LAYER_ON(TEXT)) { |
| 47 | else if (index == 1) { | 116 | if (clockwise) { |
| 117 | tap_code(KC_MS_WH_RIGHT); | ||
| 118 | } else { | ||
| 119 | tap_code(KC_MS_WH_LEFT); | ||
| 120 | } | ||
| 121 | } else if (IS_LAYER_ON(MOUSE)) { | ||
| 122 | if (clockwise) { | ||
| 123 | tap_code16(G(KC_EQL)); | ||
| 124 | } else { | ||
| 125 | tap_code16(G(KC_MINS)); | ||
| 126 | } | ||
| 127 | } else { | ||
| 48 | if (clockwise) { | 128 | if (clockwise) { |
| 49 | tap_code(KC_PGDN); | 129 | tap_code(KC_MS_WH_DOWN); |
| 50 | } else { | 130 | } else { |
| 51 | tap_code(KC_PGUP); | 131 | tap_code(KC_MS_WH_UP); |
| 52 | } | 132 | } |
| 53 | } | 133 | } |
| 54 | } | 134 | } |
diff --git a/keyboards/keebio/iris/keymaps/jhelvy/rules.mk b/keyboards/keebio/iris/keymaps/jhelvy/rules.mk index c34fd4b1f..64d3eb2f1 100644 --- a/keyboards/keebio/iris/keymaps/jhelvy/rules.mk +++ b/keyboards/keebio/iris/keymaps/jhelvy/rules.mk | |||
| @@ -1,3 +1,6 @@ | |||
| 1 | AUTO_SHIFT_ENABLE = yes # Autoshift by holding down a key | 1 | AUTO_SHIFT_ENABLE = yes # Autoshift by holding down a key |
| 2 | RGBLIGHT_ENABLE = yes | 2 | MOUSEKEY_ENABLE = yes |
| 3 | BACKLIGHT_ENABLE = yes | 3 | ENCODER_ENABLE = yes |
| 4 | EXTRAKEY_ENABLE = yes | ||
| 5 | RGBLIGHT_ENABLE = no | ||
| 6 | BACKLIGHT_ENABLE = no | ||
diff --git a/keyboards/kyria/keymaps/jhelvy/config.h b/keyboards/kyria/keymaps/jhelvy/config.h new file mode 100644 index 000000000..6dbc0dc1d --- /dev/null +++ b/keyboards/kyria/keymaps/jhelvy/config.h | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | /* Copyright 2019 Thomas Baart <thomas@splitkb.com> | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | #ifdef OLED_DRIVER_ENABLE | ||
| 20 | #define OLED_DISPLAY_128X64 | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define ENCODER_RESOLUTION 2 | ||
| 24 | |||
| 25 | #define TAPPING_FORCE_HOLD | ||
| 26 | #define TAPPING_TERM 200 | ||
| 27 | #define AUTO_SHIFT_TIMEOUT 150 | ||
| 28 | |||
| 29 | #define MOUSEKEY_DELAY 100 | ||
| 30 | #define MOUSEKEY_INTERVAL 16 | ||
| 31 | #define MOUSEKEY_MAX_SPEED 2 | ||
| 32 | #define MOUSEKEY_WHEEL_MAX_SPEED 42 | ||
| 33 | #define MOUSEKEY_WHEEL_TIME_TO_MAX 15 | ||
diff --git a/keyboards/kyria/keymaps/jhelvy/keymap.c b/keyboards/kyria/keymaps/jhelvy/keymap.c new file mode 100644 index 000000000..e0800dd5e --- /dev/null +++ b/keyboards/kyria/keymaps/jhelvy/keymap.c | |||
| @@ -0,0 +1,201 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | enum layers { | ||
| 4 | QWERTY = 0, | ||
| 5 | HOTKEYS, | ||
| 6 | TEXT, | ||
| 7 | SELECT, | ||
| 8 | NUMBERS, | ||
| 9 | }; | ||
| 10 | |||
| 11 | enum custom_keycodes { | ||
| 12 | SIG_PROF = SAFE_RANGE, | ||
| 13 | SIG_JOHN, | ||
| 14 | R_PIPE, | ||
| 15 | R_ASSIGN, | ||
| 16 | R_COLS, | ||
| 17 | R_IN, | ||
| 18 | TEX, | ||
| 19 | E_GMAIL, | ||
| 20 | E_GWU, | ||
| 21 | }; | ||
| 22 | |||
| 23 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 24 | |||
| 25 | [QWERTY] = LAYOUT(LALT(KC_A), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_LALT, KC_LCTL, KC_LGUI, MO(2), MO(4), KC_BSPC, KC_SPC, MO(1), KC_PGDN, TG(1)), | ||
| 26 | |||
| 27 | [HOTKEYS] = LAYOUT(KC_F6, LGUI(LALT(KC_1)), LGUI(LALT(KC_2)), LCTL(KC_U), SGUI(KC_R), KC_F2, SGUI(KC_K), LCTL(KC_9), LCTL(KC_0), KC_F14, KC_F11, KC_F15, KC_F7, LGUI(LCTL(KC_A)), KC_F10, KC_LBRC, KC_RBRC, KC_F9, SIG_JOHN, LSFT(KC_TAB), KC_TAB, E_GMAIL, KC_F12, KC_F16, KC_F8, KC_ASTG, KC_NO, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, SIG_PROF, KC_F3, KC_F4, E_GWU, KC_F13, KC_F17, KC_F5, KC_NO, KC_LGUI, KC_LGUI, KC_LCTL, KC_BSPC, KC_SPC, KC_TRNS, KC_NO, KC_TRNS), | ||
| 28 | |||
| 29 | [TEXT] = LAYOUT(LGUI(KC_BSPC), LGUI(KC_Q), LGUI(KC_W), KC_ESC, LGUI(KC_R), LGUI(KC_T), LCTL(KC_Y), LGUI(KC_LEFT), KC_UP, LGUI(KC_RGHT), KC_SCLN, R_PIPE, KC_BSPC, MO(3), LGUI(KC_S), LGUI(KC_C), LGUI(KC_V), LGUI(KC_X), KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_GRV, KC_ENT, KC_F18, LGUI(KC_A), LGUI(KC_D), KC_F1, LGUI(KC_Z), LGUI(KC_Y), KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, LGUI(KC_F), SGUI(KC_G), LGUI(KC_G), KC_BSLS, R_ASSIGN, KC_LALT, KC_LCTL, KC_LGUI, KC_TRNS, KC_NO, KC_BSPC, KC_SPC, KC_LGUI, KC_PGUP, KC_NO), | ||
| 30 | |||
| 31 | [SELECT] = LAYOUT(KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, SGUI(KC_LEFT), LSFT(KC_UP), SGUI(KC_RGHT), KC_NO, R_COLS, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_RGHT), KC_NO, R_IN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LALT(LSFT(KC_LEFT)), LALT(LSFT(KC_RIGHT)), KC_NO, TEX, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, KC_SPC, KC_LGUI, KC_NO, KC_NO), | ||
| 32 | |||
| 33 | [NUMBERS] = LAYOUT(KC_NO, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), KC_EQL, KC_7, KC_8, KC_9, KC_TILD, KC_MINS, KC_NO, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_4, KC_5, KC_6, KC_COLN, KC_ENT, KC_LSPO, KC_NO, KC_NO, KC_CIRC, KC_AMPR, KC_ASTR, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_1, KC_2, KC_3, KC_SLSH, KC_PIPE, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_BSPC, KC_SPC, KC_0, KC_DOT, KC_COMM) | ||
| 34 | |||
| 35 | }; | ||
| 36 | |||
| 37 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 38 | switch (keycode) { | ||
| 39 | case SIG_PROF: | ||
| 40 | if (record->event.pressed) { | ||
| 41 | SEND_STRING("Cheers,\nProfessor Helveston"); | ||
| 42 | } else { | ||
| 43 | } | ||
| 44 | break; | ||
| 45 | |||
| 46 | case SIG_JOHN: | ||
| 47 | if (record->event.pressed) { | ||
| 48 | SEND_STRING("Cheers,\nJohn"); | ||
| 49 | } else { | ||
| 50 | } | ||
| 51 | break; | ||
| 52 | |||
| 53 | case R_PIPE: | ||
| 54 | if (record->event.pressed) { | ||
| 55 | SEND_STRING(" %>% "); | ||
| 56 | } else { | ||
| 57 | } | ||
| 58 | break; | ||
| 59 | |||
| 60 | case R_ASSIGN: | ||
| 61 | if (record->event.pressed) { | ||
| 62 | SEND_STRING(" <- "); | ||
| 63 | } else { | ||
| 64 | } | ||
| 65 | break; | ||
| 66 | |||
| 67 | case R_COLS: | ||
| 68 | if (record->event.pressed) { | ||
| 69 | SEND_STRING(".leftcol[\n]\n.rightcol[\n]\n"); | ||
| 70 | } else { | ||
| 71 | } | ||
| 72 | break; | ||
| 73 | |||
| 74 | case R_IN: | ||
| 75 | if (record->event.pressed) { | ||
| 76 | SEND_STRING(" %in% "); | ||
| 77 | } else { | ||
| 78 | } | ||
| 79 | break; | ||
| 80 | |||
| 81 | case TEX: | ||
| 82 | if (record->event.pressed) { | ||
| 83 | SEND_STRING("\\text{}"); | ||
| 84 | } else { | ||
| 85 | } | ||
| 86 | break; | ||
| 87 | |||
| 88 | case E_GMAIL: | ||
| 89 | if (record->event.pressed) { | ||
| 90 | SEND_STRING("john.helveston@gmail.com"); | ||
| 91 | } else { | ||
| 92 | } | ||
| 93 | break; | ||
| 94 | |||
| 95 | case E_GWU: | ||
| 96 | if (record->event.pressed) { | ||
| 97 | SEND_STRING("jph@gwu.edu"); | ||
| 98 | } else { | ||
| 99 | } | ||
| 100 | break; | ||
| 101 | |||
| 102 | } | ||
| 103 | |||
| 104 | return true; | ||
| 105 | }; | ||
| 106 | |||
| 107 | #ifdef OLED_DRIVER_ENABLE | ||
| 108 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | ||
| 109 | return OLED_ROTATION_180; | ||
| 110 | } | ||
| 111 | |||
| 112 | static void render_kyria_logo(void) { | ||
| 113 | static const char PROGMEM kyria_logo[] = { | ||
| 114 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 115 | 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 116 | 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 117 | 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0, | ||
| 118 | 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0, | ||
| 119 | 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 120 | 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 121 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | ||
| 122 | }; | ||
| 123 | oled_write_raw_P(kyria_logo, sizeof(kyria_logo)); | ||
| 124 | } | ||
| 125 | |||
| 126 | static void render_qmk_logo(void) { | ||
| 127 | static const char PROGMEM qmk_logo[] = { | ||
| 128 | 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, | ||
| 129 | 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, | ||
| 130 | 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; | ||
| 131 | |||
| 132 | oled_write_P(qmk_logo, false); | ||
| 133 | } | ||
| 134 | |||
| 135 | static void render_status(void) { | ||
| 136 | // QMK Logo and version information | ||
| 137 | render_qmk_logo(); | ||
| 138 | oled_write_P(PSTR(" Kyria rev1.0\n\n"), false); | ||
| 139 | |||
| 140 | // Host Keyboard Layer Status | ||
| 141 | oled_write_P(PSTR("Layer: "), false); | ||
| 142 | switch (get_highest_layer(layer_state)) { | ||
| 143 | case QWERTY: | ||
| 144 | oled_write_P(PSTR("QWERTY\n"), false); | ||
| 145 | break; | ||
| 146 | case HOTKEYS: | ||
| 147 | oled_write_P(PSTR("HOTKEYS\n"), false); | ||
| 148 | break; | ||
| 149 | case TEXT: | ||
| 150 | oled_write_P(PSTR("TEXT\n"), false); | ||
| 151 | break; | ||
| 152 | case SELECT: | ||
| 153 | oled_write_P(PSTR("SELECT\n"), false); | ||
| 154 | break; | ||
| 155 | case NUMBERS: | ||
| 156 | oled_write_P(PSTR("NUMBERS\n"), false); | ||
| 157 | break; | ||
| 158 | default: | ||
| 159 | oled_write_P(PSTR("Undefined\n"), false); | ||
| 160 | } | ||
| 161 | |||
| 162 | } | ||
| 163 | |||
| 164 | void oled_task_user(void) { | ||
| 165 | if (is_keyboard_master()) { | ||
| 166 | render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) | ||
| 167 | } else { | ||
| 168 | render_kyria_logo(); | ||
| 169 | } | ||
| 170 | } | ||
| 171 | #endif | ||
| 172 | |||
| 173 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
| 174 | if (IS_LAYER_ON(HOTKEYS)) { | ||
| 175 | if (clockwise) { | ||
| 176 | tap_code(KC_VOLD); | ||
| 177 | } else { | ||
| 178 | tap_code(KC_VOLU); | ||
| 179 | } | ||
| 180 | } else if (IS_LAYER_ON(TEXT)) { | ||
| 181 | if (clockwise) { | ||
| 182 | tap_code(KC_MS_WH_LEFT); | ||
| 183 | } else { | ||
| 184 | tap_code(KC_MS_WH_RIGHT); | ||
| 185 | } | ||
| 186 | } else if (IS_LAYER_ON(NUMBERS)) { | ||
| 187 | if (clockwise) { | ||
| 188 | tap_code16(G(KC_MINS)); | ||
| 189 | } else { | ||
| 190 | register_code(KC_LGUI); | ||
| 191 | tap_code(KC_EQL); | ||
| 192 | unregister_code(KC_LGUI); | ||
| 193 | } | ||
| 194 | } else { | ||
| 195 | if (clockwise) { | ||
| 196 | tap_code(KC_MS_WH_UP); | ||
| 197 | } else { | ||
| 198 | tap_code(KC_MS_WH_DOWN); | ||
| 199 | } | ||
| 200 | } | ||
| 201 | } | ||
diff --git a/keyboards/kyria/keymaps/jhelvy/rules.mk b/keyboards/kyria/keymaps/jhelvy/rules.mk new file mode 100644 index 000000000..ec4c65f70 --- /dev/null +++ b/keyboards/kyria/keymaps/jhelvy/rules.mk | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | AUTO_SHIFT_ENABLE = yes # Autoshift by holding down a key | ||
| 2 | OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays | ||
| 3 | ENCODER_ENABLE = yes # Enables the use of one or more encoders | ||
| 4 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 5 | LEADER_ENABLE = no # Enable the Leader Key feature | ||
| 6 | MOUSEKEY_ENABLE = yes | ||
| 7 | EXTRAKEY_ENABLE = yes | ||
| 8 | BACKLIGHT_ENABLE = no | ||
