aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Helveston <john.helveston@gmail.com>2020-07-26 17:35:46 -0400
committerGitHub <noreply@github.com>2020-07-26 22:35:46 +0100
commit688426b50225b1d5b44f3eeaa9b26816d28ba16e (patch)
tree3fd9fcf32bbbd5cf538db2fdc3678b84e10ac71d
parenta6a13f96262ef1e8c91546f24cff5067f8026c23 (diff)
downloadqmk_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.md8
-rw-r--r--keyboards/keebio/iris/keymaps/jhelvy/config.h21
-rw-r--r--keyboards/keebio/iris/keymaps/jhelvy/keymap.c144
-rw-r--r--keyboards/keebio/iris/keymaps/jhelvy/rules.mk9
-rw-r--r--keyboards/kyria/keymaps/jhelvy/config.h33
-rw-r--r--keyboards/kyria/keymaps/jhelvy/keymap.c201
-rw-r--r--keyboards/kyria/keymaps/jhelvy/rules.mk8
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
5This 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 3enum 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
8enum custom_keycodes { 11enum 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
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 23const 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
38bool 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
39void encoder_update_user(uint8_t index, bool clockwise) { 108void 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 @@
1AUTO_SHIFT_ENABLE = yes # Autoshift by holding down a key 1AUTO_SHIFT_ENABLE = yes # Autoshift by holding down a key
2RGBLIGHT_ENABLE = yes 2MOUSEKEY_ENABLE = yes
3BACKLIGHT_ENABLE = yes 3ENCODER_ENABLE = yes
4EXTRAKEY_ENABLE = yes
5RGBLIGHT_ENABLE = no
6BACKLIGHT_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
3enum layers {
4 QWERTY = 0,
5 HOTKEYS,
6 TEXT,
7 SELECT,
8 NUMBERS,
9};
10
11enum 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
23const 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
37bool 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
108oled_rotation_t oled_init_user(oled_rotation_t rotation) {
109 return OLED_ROTATION_180;
110}
111
112static 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
126static 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
135static 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
164void 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
173void 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 @@
1AUTO_SHIFT_ENABLE = yes # Autoshift by holding down a key
2OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays
3ENCODER_ENABLE = yes # Enables the use of one or more encoders
4RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
5LEADER_ENABLE = no # Enable the Leader Key feature
6MOUSEKEY_ENABLE = yes
7EXTRAKEY_ENABLE = yes
8BACKLIGHT_ENABLE = no