aboutsummaryrefslogtreecommitdiff
path: root/layouts/community/ortho_4x12/jjerrell/keymap.c
diff options
context:
space:
mode:
authorJacob Jerrell <86279411+jjerrell@users.noreply.github.com>2021-08-12 09:44:15 -0500
committerGitHub <noreply@github.com>2021-08-12 07:44:15 -0700
commit30843f8329315426ff433a40095f1de2b2669e57 (patch)
tree0fc462c1b4b4ecaabb8858b6f91da8b36e29b20b /layouts/community/ortho_4x12/jjerrell/keymap.c
parent1e9d91d4ef5db1a4497767b165303e39069459cb (diff)
downloadqmk_firmware-30843f8329315426ff433a40095f1de2b2669e57.tar.gz
qmk_firmware-30843f8329315426ff433a40095f1de2b2669e57.zip
[Keymap] JJerrell - Add Userspace and ZSA Keyboard Keymaps (#13548)
Diffstat (limited to 'layouts/community/ortho_4x12/jjerrell/keymap.c')
-rw-r--r--layouts/community/ortho_4x12/jjerrell/keymap.c227
1 files changed, 227 insertions, 0 deletions
diff --git a/layouts/community/ortho_4x12/jjerrell/keymap.c b/layouts/community/ortho_4x12/jjerrell/keymap.c
new file mode 100644
index 000000000..d873907e9
--- /dev/null
+++ b/layouts/community/ortho_4x12/jjerrell/keymap.c
@@ -0,0 +1,227 @@
1/* Copyright 2015-2017 Jack Humbert
2 * Copyright 2021 Jacob Jerrell <@jjerrell>
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "jjerrell.h"
19
20enum planck_layers {
21 _GAME_LOWER = LAYER_SAFE_RANGE,
22 // _GAME_RAISE,
23};
24
25#define LAYOUT_planck_plain(...) WRAPPER_ortho_4x12(__VA_ARGS__)
26
27// clang-format off
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 [_WORKMAN] = LAYOUT_planck_base(
30 __________________WORKMN_L1__________________, __________________WORKMN_R1__________________,
31 __________________WORKMN_L2__________________, __________________WORKMN_R2__________________,
32 __________________WORKMN_L3__________________, __________________WORKMN_R3__________________
33 ),
34 /* Lower - Nav/Select/Nums
35 * ,-----------------------------------------------------------------------------------.
36 * | PGUP | BSPC | UP | DEL | PGDN | | | | 7 | 8 | 9 | * |
37 * |------+------+------+------+------+------+------+------+------+------+------+------|
38 * | HOME | LEFT | DOWN | RGHT | END | | | | 4 | 5 | 6 | / |
39 * |------+------+------+------+------+------+------+------+------+------+------+------|
40 * | ESC | TAB | | ENTR | | | | | 1 | 2 | 3 | - |
41 * |------+------+------+------+------+------+------+------+------+------+------+------|
42 * | | | | | held | SPACE | ENTR | 0 | . | , | + |
43 * `-----------------------------------------------------------------------------------'
44 */
45 [_LOWER] = LAYOUT_planck_mods(
46 __________________LOWER_L1___________________, XXXXXXX, XXXXXXX, __________________LOWER_R1___________________,
47 __________________LOWER_L2___________________, XXXXXXX, XXXXXXX, __________________LOWER_R2___________________,
48 __________________LOWER_L3___________________, XXXXXXX, XXXXXXX, __________________LOWER_R3___________________,
49 _________________________________________PLANCK_LOWER_BOTTOM_ROW_________________________________________
50 ),
51 /* Raise - Symbols
52 * ,-----------------------------------------------------------------------------------.
53 * | % | _ | [ | ] | ^ | | | ! | < | > | = | : |
54 * |------+------+------+------+------+------+------+------+------+------+------+------|
55 * | \ | / | { | } | * | | | ? | ( | ) | - | ; |
56 * |------+------+------+------+------+------+------+------+------+------+------+------|
57 * | # | $ | | | ~ | ` | | | @ | " | ' | + | & |
58 * |------+------+------+------+------+------+------+------+------+------+------+------|
59 * | | LEAD | | | BSPC | SPACE | held | | | | |
60 * `-----------------------------------------------------------------------------------'
61 */
62 [_RAISE] = LAYOUT_planck_common(
63 __________________RAISE_L1___________________, __________________RAISE_R1___________________,
64 __________________RAISE_L2___________________, __________________RAISE_R2___________________,
65 __________________RAISE_L3___________________, __________________RAISE_R3___________________
66 ),
67 /* Adjust (Lower + Raise)
68 * ,-----------------------------------------------------------------------------------.
69 * | Make | Debug|Reset |TermOn|TrmOff| | |MusMod|Mus On|MusOff|MidiOn|MidOff|
70 * |------+------+------+------+------+------+------+------+------+------+------+------|
71 * | Mute | Vol- | Vol+ | Play | Skip | | |Voice-| HUE+ | HUE- | SAT+ | SAT- |
72 * |------+------+------+------+------+------+------+------+------+------+------+------|
73 * | Vrsn | AudOn|AudOff|CGswap|CGnorm| | |Voice+|RGBTog|RGBMod|BRGHT+|BRGHT-|
74 * |------+------+------+------+------+------+------+------+------+------+------+------|
75 * | | | | | held | | held | | | | |
76 * `-----------------------------------------------------------------------------------'
77 */
78 [_ADJUST] = LAYOUT_planck_common(
79 __________________ADJUST_L1__________________, __________________ADJUST_R1__________________,
80 __________________ADJUST_L2__________________, __________________ADJUST_R2__________________,
81 __________________ADJUST_L3__________________, __________________ADJUST_R3__________________
82 ),
83 [_GAME] = LAYOUT_planck_plain(
84 __________________QWERTY_L1__________________, _______, _______, XXXXXXX, KC_9, KC_0, KC_MINS, KC_EQL,
85 __________________QWERTY_L2__________________, XXXXXXX, XXXXXXX, XXXXXXX, KC_5, KC_6, KC_7, KC_8,
86 __________________QWERTY_L3__________________, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_4,
87 KC_LSFT, KC_LGUI, KC_LALT, KC_LCTL, LT(_LOWER, KC_BSPC), KC_SPC, XXXXXXX, LT(_WORKMAN, KC_ENT), MACRO_1, MACRO_2, MACRO_3, MACRO_4
88 ),
89 [_GAME_LOWER] = LAYOUT_planck_plain(
90 _______, _______, _______, _______, _______, _______, _______, _______, C(_______), C(_______), C(_______), C(_______),
91 _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, C(_______), C(_______), C(_______), C(_______),
92 _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, C(_______), C(_______), C(_______), C(_______),
93 MACRO_1, MACRO_2, MACRO_3, MACRO_4, _______, _______, XXXXXXX, _______, MACRO_5, MACRO_6, MACRO_7, MACRO_8
94 )
95
96};
97// clang-format on
98
99bool muse_mode = false;
100uint8_t last_muse_note = 0;
101uint16_t muse_counter = 0;
102uint8_t muse_offset = 70;
103uint16_t muse_tempo = 50;
104
105#ifdef KEYBOARD_planck_ez
106void planck_ez_teeth_set(layer_state_t state) {
107 switch (get_highest_layer(state)) {
108 case _LOWER:
109 planck_ez_left_led_level(40);
110 break;
111 case _RAISE:
112 planck_ez_right_led_level(40);
113 break;
114 case _ADJUST:
115 planck_ez_left_led_level(40);
116 planck_ez_right_led_level(40);
117 break;
118 case _GAME_LOWER:
119 planck_ez_left_led_level(20);
120 break;
121// todo case _GAME_RAISE:
122 // planck_ez_right_led_level(20);
123 // break;
124 case _WORKMAN:
125 if (IS_LAYER_ON(_GAME)) {
126 planck_ez_left_led_level(60);
127 planck_ez_right_led_level(60);
128 break;
129 }
130 default:
131 planck_ez_left_led_off();
132 planck_ez_right_led_off();
133 break;
134 }
135}
136
137layer_state_t layer_state_set_keymap(layer_state_t state) {
138 planck_ez_left_led_off();
139 planck_ez_right_led_off();
140 state = update_tri_layer_state(state, _GAME, _LOWER, _GAME_LOWER);
141 planck_ez_teeth_set(state);
142 return state;
143}
144#endif
145
146bool encoder_update(bool clockwise) {
147 if (muse_mode) {
148 if (IS_LAYER_ON(_RAISE)) {
149 if (clockwise) {
150 muse_offset++;
151 } else {
152 muse_offset--;
153 }
154 } else {
155 if (clockwise) {
156 muse_tempo+=1;
157 } else {
158 muse_tempo-=1;
159 }
160 }
161 } else {
162 if (clockwise) {
163# ifdef MOUSEKEY_ENABLE
164 tap_code(KC_MS_WH_DOWN);
165# else
166 tap_code(KC_PGDN);
167# endif
168 } else {
169# ifdef MOUSEKEY_ENABLE
170 tap_code(KC_MS_WH_UP);
171# else
172 tap_code(KC_PGUP);
173# endif
174 }
175 }
176 return true;
177}
178
179void dip_switch_update_keymap(uint8_t index, bool active) {
180 switch (index) {
181 case 0: {
182 if (active) {
183 layer_on(_ADJUST);
184 } else {
185 layer_off(_ADJUST);
186 }
187 break;
188 }
189 case 1:
190 if (active) {
191 muse_mode = true;
192 } else {
193 muse_mode = false;
194 }
195 }
196}
197
198#ifdef AUDIO_ENABLE
199void matrix_scan_keymap(void) {
200 if (muse_mode) {
201 if (muse_counter == 0) {
202 uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
203 if (muse_note != last_muse_note) {
204 stop_note(compute_freq_for_midi_note(last_muse_note));
205 play_note(compute_freq_for_midi_note(muse_note), 0xF);
206 last_muse_note = muse_note;
207 }
208 }
209 muse_counter = (muse_counter + 1) % muse_tempo;
210 } else {
211 if (muse_counter) {
212 stop_all_notes();
213 muse_counter = 0;
214 }
215 }
216}
217#endif
218
219bool music_mask_keymap(uint16_t keycode) {
220 switch (keycode) {
221 case _RAISE:
222 case _LOWER:
223 return false;
224 default:
225 return true;
226 }
227}