aboutsummaryrefslogtreecommitdiff
path: root/keyboards/redox
diff options
context:
space:
mode:
authorJeremy Herve <jeremy@jeremy.hu>2021-05-13 18:29:04 +0200
committerGitHub <noreply@github.com>2021-05-14 02:29:04 +1000
commit6e5e34662bb83964d3d580a22cd16828fd37cfd5 (patch)
treef9cbb2fa4cc0d30ae82a5e7512ac2d060321fe03 /keyboards/redox
parent3efd94014ff363f107c563da623259286dedad1c (diff)
downloadqmk_firmware-6e5e34662bb83964d3d580a22cd16828fd37cfd5.tar.gz
qmk_firmware-6e5e34662bb83964d3d580a22cd16828fd37cfd5.zip
Redox custom keymap (jeherve): updates to deprecated code and bugfixes (#12738)
Co-authored-by: Drashna Jael're <drashna@live.com>
Diffstat (limited to 'keyboards/redox')
-rw-r--r--keyboards/redox/keymaps/jeherve/config.h10
-rw-r--r--keyboards/redox/keymaps/jeherve/keymap.c295
-rw-r--r--keyboards/redox/keymaps/jeherve/readme.md5
3 files changed, 165 insertions, 145 deletions
diff --git a/keyboards/redox/keymaps/jeherve/config.h b/keyboards/redox/keymaps/jeherve/config.h
index b9b67c999..e3ed839f4 100644
--- a/keyboards/redox/keymaps/jeherve/config.h
+++ b/keyboards/redox/keymaps/jeherve/config.h
@@ -1,5 +1,5 @@
1/* 1/*
2Copyright 2018 Jeremy Herve <jeremy@jeremy.hu> 2Copyright 2021 Jeremy Herve <jeremy@jeremy.hu>
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it under the terms of the GNU General Public License as published by
@@ -36,3 +36,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
36#define RGBLIGHT_SAT_STEP 8 36#define RGBLIGHT_SAT_STEP 8
37#define RGBLIGHT_VAL_STEP 8 37#define RGBLIGHT_VAL_STEP 8
38#define RGBLIGHT_SLEEP 38#define RGBLIGHT_SLEEP
39
40/* Set Unicode mode by default */
41#define UNICODE_SELECTED_MODES UC_MAC
42
43/* Custom startup sound */
44#ifdef AUDIO_ENABLE
45# define STARTUP_SONG SONG(ZELDA_PUZZLE)
46#endif
diff --git a/keyboards/redox/keymaps/jeherve/keymap.c b/keyboards/redox/keymaps/jeherve/keymap.c
index f39b5a438..226d14aae 100644
--- a/keyboards/redox/keymaps/jeherve/keymap.c
+++ b/keyboards/redox/keymaps/jeherve/keymap.c
@@ -1,6 +1,21 @@
1#include QMK_KEYBOARD_H 1/*
2Copyright 2021 Jeremy Herve <jeremy@jeremy.hu>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
2 17
3extern keymap_config_t keymap_config; 18#include QMK_KEYBOARD_H
4 19
5// Each layer gets a name for readability, which is then used in the keymap matrix below. 20// Each layer gets a name for readability, which is then used in the keymap matrix below.
6// The underscores don't mean anything - you can have a layer called STUFF or any other name. 21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -12,126 +27,127 @@ extern keymap_config_t keymap_config;
12#define _INTER 3 27#define _INTER 3
13#define _ADJUST 4 28#define _ADJUST 4
14 29
30// Define song.
31#ifdef AUDIO_ENABLE
32float tone_zelda[][2] = SONG(ZELDA_TREASURE);
33#endif
34
15enum custom_keycodes { 35enum custom_keycodes {
16 COLEMAK = SAFE_RANGE, 36 COLEMAK = SAFE_RANGE,
17 SYMB, 37 SYMB,
18 NAV, 38 NAV,
19 INTER, 39 INTER,
20 ADJUST, 40 ADJUST,
21 // These use process_record_user() 41 // These use process_record_user()
22 M_BRACKET_LEFT, 42 M_BRACKET_LEFT,
23 M_BRACKET_RIGHT, 43 M_BRACKET_RIGHT,
24 SHRUG, 44 SHRUG,
25 WAVE, 45 WAVE,
26 YOSHI, 46 YOSHI,
27 THUMB_UP, 47 THUMB_UP,
28 NBSP, 48 INV_1P,
29 INV_1P, 49 ALFRED
30 ALFRED
31}; 50};
32 51
33// Is shift being held? Let's store this in a bool. 52// Is shift being held? Let's store this in a bool.
34static bool shift_held = false; 53static bool shift_held = false;
35 54
36bool process_record_user(uint16_t keycode, keyrecord_t *record) { 55bool process_record_user(uint16_t keycode, keyrecord_t *record) {
37 switch(keycode) { 56 switch (keycode) {
38 case SHRUG: 57 case SHRUG:
39 if (record->event.pressed) { 58 if (record->event.pressed) {
40 send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF"); 59 send_unicode_string("¯\\_(ツ)_/¯");
41 } 60 }
42 return false; 61 return false;
43 break; 62 break;
44 case INV_1P: 63 case INV_1P:
45 if (record->event.pressed) { 64 if (record->event.pressed) {
46 SEND_STRING(SS_DOWN(X_LGUI)SS_DOWN(X_LALT)SS_TAP(X_BSLASH)SS_UP(X_LGUI)SS_UP(X_LALT)); 65 SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_LALT) SS_TAP(X_BSLASH) SS_UP(X_LGUI) SS_UP(X_LALT));
47 } 66 }
48 return false; 67 return false;
49 break; 68 break;
50 case ALFRED: 69 case ALFRED:
51 if (record->event.pressed) { 70 if (record->event.pressed) {
52 SEND_STRING(SS_DOWN(X_LALT)SS_TAP(X_SPACE)SS_UP(X_LALT)); 71 SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_SPACE) SS_UP(X_LALT));
53 } 72 }
54 return false; 73 return false;
55 break; 74 break;
56 case YOSHI: 75 case YOSHI:
57 if (record->event.pressed) { 76 if (record->event.pressed) {
58 SEND_STRING(":yellow_yoshi:"); 77#ifdef AUDIO_ENABLE
59 } 78 PLAY_SONG(tone_zelda);
60 return false; 79#endif
61 break; 80 SEND_STRING(":yellow_yoshi:");
62 case THUMB_UP: 81 }
63 if (record->event.pressed) { 82 return false;
64 SEND_STRING(SS_LALT("D83D+DC4D")); 83 break;
65 } 84 case THUMB_UP:
66 return false; 85 if (record->event.pressed) {
67 break; 86 register_unicode(0x1F44D);
68 case WAVE: 87 }
69 if (record->event.pressed) { 88 return false;
70 SEND_STRING(SS_LALT("D83D+DC4B")); 89 break;
71 } 90 case WAVE:
72 return false; 91 if (record->event.pressed) {
73 break; 92 register_unicode(0x1F44B);
74 case NBSP: 93 }
75 if (record->event.pressed) { 94 return false;
76 SEND_STRING("&nbsp;"); 95 break;
77 } 96 case KC_LSFT:
78 return false; 97 shift_held = record->event.pressed;
79 break; 98 return true;
80 case KC_LSFT: 99 break;
81 shift_held = record->event.pressed; 100 case KC_RSFT:
82 return true; 101 shift_held = record->event.pressed;
83 break; 102 return true;
84 case KC_RSFT: 103 break;
85 shift_held = record->event.pressed; 104 case M_BRACKET_LEFT: {
86 return true; 105 if (record->event.pressed) {
87 break; 106 if (shift_held) {
88 case M_BRACKET_LEFT: { 107 unregister_code(KC_LSFT);
89 if (record->event.pressed) { 108 unregister_code(KC_RSFT);
90 if (shift_held) { 109 register_code(KC_LBRC);
91 unregister_code(KC_LSFT); 110 } else {
92 unregister_code(KC_RSFT); 111 register_code(KC_LSFT);
93 register_code(KC_LBRC); 112 register_code(KC_9);
94 } else { 113 }
95 register_code(KC_LSFT); 114 } else { // Release the key
96 register_code(KC_9); 115 unregister_code(KC_LBRC);
97 } 116 unregister_code(KC_LSFT);
98 } else { // Release the key 117 unregister_code(KC_RSFT);
99 unregister_code(KC_LBRC); 118 unregister_code(KC_9);
100 unregister_code(KC_LSFT); 119 }
101 unregister_code(KC_RSFT); 120 return false;
102 unregister_code(KC_9); 121 break;
103 } 122 }
104 return false; 123 case M_BRACKET_RIGHT: {
105 break; 124 if (record->event.pressed) {
106 } 125 if (shift_held) {
107 case M_BRACKET_RIGHT: { 126 unregister_code(KC_LSFT);
108 if (record->event.pressed) { 127 unregister_code(KC_RSFT);
109 if (shift_held) { 128 register_code(KC_RBRC);
110 unregister_code(KC_LSFT); 129 } else {
111 unregister_code(KC_RSFT); 130 register_code(KC_LSFT);
112 register_code(KC_RBRC); 131 register_code(KC_0);
113 } else { 132 }
114 register_code(KC_LSFT); 133 } else { // Release the key
115 register_code(KC_0); 134 unregister_code(KC_RBRC);
116 } 135 unregister_code(KC_LSFT);
117 } else { // Release the key 136 unregister_code(KC_RSFT);
118 unregister_code(KC_RBRC); 137 unregister_code(KC_0);
119 unregister_code(KC_LSFT); 138 }
120 unregister_code(KC_RSFT); 139 return false;
121 unregister_code(KC_0); 140 break;
122 } 141 }
123 return false; 142 }
124 break; 143 return true;
125 }
126 }
127 return true;
128}; 144};
129 145
130// Shortcut to make keymap more readable 146// Shortcut to make keymap more readable
131#define KC_SYQT LT(_SYMB,KC_QUOT) 147#define KC_SYQT LT(_SYMB, KC_QUOT)
132#define SYM_L MO(_SYMB) 148#define SYM_L MO(_SYMB)
133#define MO_INTR MO(_INTER) 149#define MO_INTR MO(_INTER)
134#define TT_ADJ TT(_ADJUST) 150#define TT_ADJ TT(_ADJUST)
135 151
136#define UC_00E0 UC(0x00E0) 152#define UC_00E0 UC(0x00E0)
137#define UC_00FC UC(0x00FC) 153#define UC_00FC UC(0x00FC)
@@ -147,6 +163,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
147#define UC_0171 UC(0x0171) 163#define UC_0171 UC(0x0171)
148#define UC_00EA UC(0x00EA) 164#define UC_00EA UC(0x00EA)
149#define UC_0151 UC(0x0151) 165#define UC_0151 UC(0x0151)
166// Non-breaking space.
167#define UC_00A0 UC(0x00a0)
150 168
151const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 169const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
152 170
@@ -202,7 +220,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
202 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ 220 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
203 XXXXXXX ,UC_00E2 ,XXXXXXX ,UC_00E7 ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ , _______ ,XXXXXXX ,XXXXXXX ,UC_0171 ,UC_00EA ,XXXXXXX ,UC_0151 ,XXXXXXX , 221 XXXXXXX ,UC_00E2 ,XXXXXXX ,UC_00E7 ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ , _______ ,XXXXXXX ,XXXXXXX ,UC_0171 ,UC_00EA ,XXXXXXX ,UC_0151 ,XXXXXXX ,
204 //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ 222 //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
205 _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,_______ , _______ ,NBSP , XXXXXXX , _______ ,XXXXXXX ,XXXXXXX ,_______ 223 _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,_______ , _______ ,UC_00A0 , XXXXXXX , _______ ,XXXXXXX ,XXXXXXX ,_______
206 //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ 224 //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
207 ), 225 ),
208 226
@@ -222,38 +240,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
222 240
223}; 241};
224 242
225#ifdef AUDIO_ENABLE
226float tone_colemak[][2] = SONG(ZELDA_TREASURE);
227#endif
228
229void persistent_default_layer_set(uint16_t default_layer) { 243void persistent_default_layer_set(uint16_t default_layer) {
230 eeconfig_update_default_layer(default_layer); 244 eeconfig_update_default_layer(default_layer);
231 default_layer_set(default_layer); 245 default_layer_set(default_layer);
232} 246}
233 247
234// Set unicode in Mac OS.
235void eeconfig_init_user(void) {
236 set_unicode_input_mode(UC_OSX);
237};
238
239// Change LED colors depending on the layer. 248// Change LED colors depending on the layer.
240uint32_t layer_state_set_user(uint32_t state) { 249layer_state_t layer_state_set_user(layer_state_t state) {
241 switch (biton32(state)) { 250 switch (get_highest_layer(state)) {
242 case _SYMB: 251 case _SYMB:
243 rgblight_setrgb_orange(); 252 rgblight_setrgb_orange();
244 break; 253 break;
245 case _NAV: 254 case _NAV:
246 rgblight_setrgb_springgreen(); 255 rgblight_setrgb_springgreen();
247 break; 256 break;
248 case _INTER: 257 case _INTER:
249 rgblight_setrgb_teal(); 258 rgblight_setrgb_teal();
250 break; 259 break;
251 case _ADJUST: 260 case _ADJUST:
252 rgblight_setrgb_red(); 261 rgblight_setrgb_red();
253 break; 262 break;
254 default: // for any other layers, or the default layer 263 default: // for any other layers, or the default layer
255 rgblight_setrgb_yellow(); 264 rgblight_setrgb_yellow();
256 break; 265 break;
257 } 266 }
258 return state; 267 return state;
259}; 268};
diff --git a/keyboards/redox/keymaps/jeherve/readme.md b/keyboards/redox/keymaps/jeherve/readme.md
index 515dcbd62..72ed31919 100644
--- a/keyboards/redox/keymaps/jeherve/readme.md
+++ b/keyboards/redox/keymaps/jeherve/readme.md
@@ -1,7 +1,7 @@
1# A Colemak keymap for the Redox keyboard 1# A Colemak keymap for the Redox keyboard
2 2
3---- 3----
4![jeherve-redox-layout-4](https://user-images.githubusercontent.com/426388/50276398-2664be80-0442-11e9-86b9-fbd0f4275354.png) 4![jeherve-redox-layout-5](https://user-images.githubusercontent.com/426388/116534030-56f67600-a8e2-11eb-9bf3-3ce5362d717a.png)
5 5
6---- 6----
7 7
@@ -25,6 +25,9 @@ My keymap uses 5 layers:
25 25
26## Changelog 26## Changelog
27 27
28- 2021.04.29
29 - Update code to replace deprecated code.
30 - Fix non-breaking space key.
28- 2018.12.20 31- 2018.12.20
29 - 2 new Macro keys, to invoke [Alfred](https://www.alfredapp.com/) and [1Password](https://1password.com/). 32 - 2 new Macro keys, to invoke [Alfred](https://www.alfredapp.com/) and [1Password](https://1password.com/).
30 - No more Right Command key or Expose key, I didn't use those much. 33 - No more Right Command key or Expose key, I didn't use those much.