summaryrefslogtreecommitdiff
path: root/keyboards
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2023-12-18 14:06:47 +1100
committerGitHub <noreply@github.com>2023-12-18 14:06:47 +1100
commitf25226453fb253b5d1c2f1684365d6248d8b5750 (patch)
tree8fbc0eb6b4a56adcd6dca750ce2ccca9dc85bc1a /keyboards
parent9539f135d8161557f0ffdfecb6e8c8c8b09786a2 (diff)
Remove obvious user keymaps, `keyboards/a*` edition. (#22692)
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/a_dux/keymaps/daliusd/config.h35
-rw-r--r--keyboards/a_dux/keymaps/daliusd/flow.c336
-rw-r--r--keyboards/a_dux/keymaps/daliusd/flow.h27
-rw-r--r--keyboards/a_dux/keymaps/daliusd/keymap.c334
-rw-r--r--keyboards/a_dux/keymaps/daliusd/readme.md306
-rw-r--r--keyboards/a_dux/keymaps/daliusd/rules.mk5
-rw-r--r--keyboards/a_dux/keymaps/jcmkk3/keymap.c130
-rw-r--r--keyboards/a_dux/keymaps/jcmkk3/oneshot.c72
-rw-r--r--keyboards/a_dux/keymaps/jcmkk3/oneshot.h46
-rw-r--r--keyboards/a_dux/keymaps/jcmkk3/rules.mk1
-rw-r--r--keyboards/abacus/keymaps/unicodemap/keymap.c150
-rw-r--r--keyboards/abacus/keymaps/unicodemap/readme.md4
-rw-r--r--keyboards/abacus/keymaps/unicodemap/rules.mk1
-rw-r--r--keyboards/abstract/ellipse/keymaps/abstractkb/config.h32
-rw-r--r--keyboards/abstract/ellipse/keymaps/abstractkb/keymap.c51
-rw-r--r--keyboards/abstract/ellipse/keymaps/abstractkb/readme.md3
-rw-r--r--keyboards/abstract/ellipse/keymaps/abstractkb/rules.mk1
-rw-r--r--keyboards/acekeyboard/titan60/keymaps/utilitarian/keymap.c35
-rwxr-xr-xkeyboards/acheron/lasgweloth/keymaps/xoxotus/keymap.c35
-rwxr-xr-xkeyboards/acheron/shark/beta/keymaps/gondolindrim/keymap.c264
-rw-r--r--keyboards/acheron/shark/beta/keymaps/gondolindrim/rules.mk1
-rw-r--r--keyboards/adelheid/keymaps/floookay/keymap.c76
-rw-r--r--keyboards/adelheid/keymaps/floookay/readme.md9
-rw-r--r--keyboards/adelheid/keymaps/floookay/rules.mk1
-rw-r--r--keyboards/adpenrose/akemipad/keymaps/oled_bongocat/animation_frames.h392
-rw-r--r--keyboards/adpenrose/akemipad/keymaps/oled_bongocat/animation_process.h97
-rw-r--r--keyboards/adpenrose/akemipad/keymaps/oled_bongocat/config.h17
-rw-r--r--keyboards/adpenrose/akemipad/keymaps/oled_bongocat/keymap.c177
-rw-r--r--keyboards/adpenrose/akemipad/keymaps/oled_bongocat/readme.md19
-rw-r--r--keyboards/adpenrose/akemipad/keymaps/oled_bongocat/rules.mk8
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h405
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c181
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk6
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c401
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/snailmap_port/readme.md30
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk6
-rw-r--r--keyboards/adpenrose/mine/keymaps/solenoid/keymap.c43
-rw-r--r--keyboards/adpenrose/mine/keymaps/solenoid/rules.mk4
-rw-r--r--keyboards/adpenrose/shisaku/keymaps/solenoid/keymap.c32
-rw-r--r--keyboards/adpenrose/shisaku/keymaps/solenoid/readme.md1
-rw-r--r--keyboards/adpenrose/shisaku/keymaps/solenoid/rules.mk4
-rw-r--r--keyboards/afternoonlabs/breeze/keymaps/eithanshavit/keymap.c73
-rw-r--r--keyboards/ai03/duet/keymaps/coordinate/keymap.c34
-rw-r--r--keyboards/ai03/duet/keymaps/coordinate/readme.md4
-rw-r--r--keyboards/ai03/equinox/keymaps/crd/keymap.c41
-rw-r--r--keyboards/ai03/equinox/keymaps/crd/readme.md3
-rw-r--r--keyboards/ai03/polaris/keymaps/mekberg/config.h22
-rw-r--r--keyboards/ai03/polaris/keymaps/mekberg/keymap.c97
-rw-r--r--keyboards/ai03/polaris/keymaps/mekberg/readme.md14
-rw-r--r--keyboards/ai03/polaris/keymaps/mekberg/rules.mk2
-rw-r--r--keyboards/ai03/quasar/keymaps/ai03/keymap.c35
-rw-r--r--keyboards/ai03/quasar/keymaps/ai03/readme.md3
-rw-r--r--keyboards/akb/raine/keymaps/mehadviceguy/keymap.c75
-rw-r--r--keyboards/akb/raine/keymaps/mehadviceguy/readme.md68
-rw-r--r--keyboards/al1/keymaps/splitbs/keymap.c35
-rw-r--r--keyboards/aleblazer/zodiark/keymaps/slimoled/config.h22
-rw-r--r--keyboards/aleblazer/zodiark/keymaps/slimoled/keymap.c332
-rw-r--r--keyboards/aleblazer/zodiark/keymaps/slimoled/rules.mk1
-rw-r--r--keyboards/alhenkb/macropad5x4/keymaps/numpad/keymap.c48
-rw-r--r--keyboards/alpha/keymaps/vderm/README.md35
-rw-r--r--keyboards/alpha/keymaps/vderm/keymap.c34
-rw-r--r--keyboards/alps64/keymaps/crd/keymap.c30
-rw-r--r--keyboards/amag23/keymaps/qwert/keymap.c40
-rw-r--r--keyboards/amag23/keymaps/qwert/readme.md14
-rw-r--r--keyboards/amjkeyboard/amj40/keymaps/myee/config.h10
-rw-r--r--keyboards/amjkeyboard/amj40/keymaps/myee/keymap.c93
-rw-r--r--keyboards/amjkeyboard/amj40/keymaps/myee/readme.md11
-rw-r--r--keyboards/amjkeyboard/amj40/keymaps/myee/rules.mk19
-rw-r--r--keyboards/amjkeyboard/amj40/keymaps/myee/updatemerge.sh4
-rw-r--r--keyboards/an_achronism/tetromino/keymaps/indicators/config.h30
-rw-r--r--keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c125
-rw-r--r--keyboards/anavi/macropad8/keymaps/git/config.h24
-rw-r--r--keyboards/anavi/macropad8/keymaps/git/keymap.c145
-rw-r--r--keyboards/anavi/macropad8/keymaps/kicad/keymap.c118
-rw-r--r--keyboards/anavi/macropad8/keymaps/kodi/keymap.c81
-rw-r--r--keyboards/anavi/macropad8/keymaps/obs/keymap.c98
-rw-r--r--keyboards/anavi/macropad8/keymaps/vlc/keymap.c139
-rw-r--r--keyboards/anavi/macropad8/keymaps/vscode/config.h19
-rw-r--r--keyboards/anavi/macropad8/keymaps/vscode/keymap.c227
-rw-r--r--keyboards/anavi/macropad8/keymaps/zoom/keymap.c97
-rw-r--r--keyboards/aos/tkl/keymaps/aholland909/keymap.c38
-rw-r--r--keyboards/arisu/keymaps/fate/keymap.c67
-rw-r--r--keyboards/arisu/keymaps/fate/readme.md1
-rw-r--r--keyboards/arisu/keymaps/fate/rules.mk1
-rw-r--r--keyboards/arisu/keymaps/kresnak/keymap.c39
-rw-r--r--keyboards/ask55/keymaps/iic/keymap.c33
-rw-r--r--keyboards/ask55/keymaps/iic/readme.md1
-rw-r--r--keyboards/ask55/keymaps/mac-portable/keymap.c33
-rw-r--r--keyboards/ask55/keymaps/mac-portable/readme.md1
-rw-r--r--keyboards/ask55/keymaps/next/keymap.c33
-rw-r--r--keyboards/ask55/keymaps/next/readme.md1
-rw-r--r--keyboards/atlantis/ps17/keymaps/multimedia/keymap.c49
-rw-r--r--keyboards/atlantis/ps17/keymaps/multimedia/rules.mk1
-rw-r--r--keyboards/atomic/keymaps/abienz/keymap.c19
-rw-r--r--keyboards/atomic/keymaps/michelle/keymap.c25
-rw-r--r--keyboards/atomic/keymaps/twolayer/keymap.c46
-rw-r--r--keyboards/atreus/keymaps/clash/keymap.c41
-rw-r--r--keyboards/atreus/keymaps/clash/rules.mk1
-rw-r--r--keyboards/atreus/keymaps/classic/keymap.c32
-rw-r--r--keyboards/atreus/keymaps/erlandsona/config.h6
-rw-r--r--keyboards/atreus/keymaps/erlandsona/keymap.c32
-rw-r--r--keyboards/atreus/keymaps/gerb/keymap.c47
-rw-r--r--keyboards/atreus/keymaps/henxing/Readme.md6
-rw-r--r--keyboards/atreus/keymaps/henxing/keymap.c103
-rw-r--r--keyboards/atreus/keymaps/jeremy/keymap.c56
-rw-r--r--keyboards/atreus/keymaps/jeremy/readme.md45
-rw-r--r--keyboards/atreus/keymaps/kejadlen/README.md4
-rw-r--r--keyboards/atreus/keymaps/kejadlen/config.h12
-rw-r--r--keyboards/atreus/keymaps/kejadlen/keymap.c32
-rw-r--r--keyboards/atreus/keymaps/nojjan/config.h8
-rw-r--r--keyboards/atreus/keymaps/nojjan/keymap.c42
-rw-r--r--keyboards/atreus/keymaps/quartz64/keymap.c137
-rw-r--r--keyboards/atreus62/keymaps/194h/config.h6
-rw-r--r--keyboards/atreus62/keymaps/194h/keymap.c149
-rw-r--r--keyboards/atreus62/keymaps/194h/rules.mk7
-rw-r--r--keyboards/atreus62/keymaps/mfluid/keymap.c39
-rw-r--r--keyboards/atreus62/keymaps/mfluid/readme.md16
-rw-r--r--keyboards/avalanche/v4/keymaps/winder/config.h12
-rw-r--r--keyboards/avalanche/v4/keymaps/winder/images.h69
-rw-r--r--keyboards/avalanche/v4/keymaps/winder/keymap.c135
-rw-r--r--keyboards/avalanche/v4/keymaps/winder/rules.mk1
-rw-r--r--keyboards/cheshire/curiosity/keymaps/crd/keymap.c51
-rw-r--r--keyboards/chocofly/v1/keymaps/winder/keymap.c53
-rw-r--r--keyboards/custommk/genesis/rev1/keymaps/numpad/keymap.c51
-rw-r--r--keyboards/custommk/genesis/rev1/keymaps/numpad/readme.md3
-rw-r--r--keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c89
-rw-r--r--keyboards/custommk/genesis/rev2/keymaps/numpad/readme.md3
-rw-r--r--keyboards/do60/keymaps/crd/keymap.c33
-rwxr-xr-xkeyboards/evolv/keymaps/gondolindrim/keymap.c410
-rw-r--r--keyboards/exclusive/e65/keymaps/crd/keymap.c31
-rw-r--r--keyboards/exclusive/e65/keymaps/crd/readme.md7
-rw-r--r--keyboards/foxlab/leaf60/hotswap/keymaps/crd/keymap.c33
-rw-r--r--keyboards/gboards/gergo/keymaps/abstractkb/config.h4
-rw-r--r--keyboards/gboards/gergo/keymaps/abstractkb/keymap.c128
-rw-r--r--keyboards/gboards/gergo/keymaps/abstractkb/readme.md10
-rw-r--r--keyboards/gboards/gergo/keymaps/abstractkb/rules.mk38
-rw-r--r--keyboards/kbdfans/kbd67/mkii_soldered/keymaps/ai03/keymap.c34
-rw-r--r--keyboards/kbdfans/kbd67/mkii_soldered/keymaps/ai03/readme.md3
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/mekberg/config.h5
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/mekberg/keymap.c98
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/mekberg/readme.md14
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/mekberg/rules.mk2
-rw-r--r--keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/keymap.c37
-rw-r--r--keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/readme.md4
-rw-r--r--keyboards/keebio/bfo9000/keymaps/abstractkb/config.h41
-rw-r--r--keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c90
-rw-r--r--keyboards/keebio/bfo9000/keymaps/abstractkb/readme.md5
-rw-r--r--keyboards/keebio/bfo9000/keymaps/abstractkb/rules.mk1
-rw-r--r--keyboards/keebio/levinson/keymaps/numpad/config.h34
-rw-r--r--keyboards/keebio/levinson/keymaps/numpad/keymap.c123
-rw-r--r--keyboards/keebio/levinson/keymaps/numpad/readme.md4
-rw-r--r--keyboards/keebio/levinson/keymaps/numpad/rules.mk3
-rw-r--r--keyboards/kin80/keymaps/quartz64/config.h24
-rw-r--r--keyboards/kin80/keymaps/quartz64/keymap.c234
-rw-r--r--keyboards/kin80/keymaps/quartz64/rules.mk1
-rw-r--r--keyboards/kprepublic/jj50/keymaps/abstractkb/config.h3
-rw-r--r--keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c136
-rw-r--r--keyboards/kprepublic/jj50/keymaps/abstractkb/readme.md6
-rw-r--r--keyboards/lets_split/keymaps/henxing/Readme.md51
-rw-r--r--keyboards/lets_split/keymaps/henxing/config.h32
-rw-r--r--keyboards/lets_split/keymaps/henxing/keymap.c109
-rw-r--r--keyboards/lets_split/keymaps/mekberg/README.md61
-rw-r--r--keyboards/lets_split/keymaps/mekberg/config.h30
-rw-r--r--keyboards/lets_split/keymaps/mekberg/keymap.c228
-rw-r--r--keyboards/littlealby/mute/keymaps/zoom/keymap.c23
-rw-r--r--keyboards/littlealby/mute/keymaps/zoom/readme.md8
-rw-r--r--keyboards/nullbitsco/nibble/keymaps/oled_bongocat/animation_frames.h404
-rw-r--r--keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c263
-rw-r--r--keyboards/nullbitsco/nibble/keymaps/oled_bongocat/readme.md9
-rw-r--r--keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk3
-rw-r--r--keyboards/primekb/prime_m/keymaps/numpad/keymap.c33
-rw-r--r--keyboards/primekb/prime_m/keymaps/numpad/readme.md1
-rw-r--r--keyboards/rart/rartpad/keymaps/numpad/keymap.c53
-rw-r--r--keyboards/sck/osa/keymaps/splitbs/keymap.c59
-rw-r--r--keyboards/sck/osa/keymaps/splitbs/readme.md1
-rw-r--r--keyboards/skmt/15k/keymaps/qwert/keymap.c25
-rw-r--r--keyboards/splitkb/kyria/keymaps/kejadlen/config.h56
-rw-r--r--keyboards/splitkb/kyria/keymaps/kejadlen/keymap.c63
-rw-r--r--keyboards/splitkb/kyria/keymaps/kejadlen/rules.mk5
-rw-r--r--keyboards/tada68/keymaps/mekberg/config.h5
-rwxr-xr-xkeyboards/tada68/keymaps/mekberg/keymap.c100
-rw-r--r--keyboards/tada68/keymaps/mekberg/readme.md58
-rw-r--r--keyboards/tada68/keymaps/mekberg/rules.mk5
-rw-r--r--keyboards/vitamins_included/keymaps/numpad/config.h42
-rw-r--r--keyboards/vitamins_included/keymaps/numpad/keymap.c75
-rw-r--r--keyboards/wilba_tech/zeal60/keymaps/crd/config.h29
-rw-r--r--keyboards/wilba_tech/zeal60/keymaps/crd/keymap.c39
-rw-r--r--keyboards/zj68/keymaps/splitbs/keymap.c34
-rw-r--r--keyboards/zj68/keymaps/splitbs/readme.md3
189 files changed, 0 insertions, 11259 deletions
diff --git a/keyboards/a_dux/keymaps/daliusd/config.h b/keyboards/a_dux/keymaps/daliusd/config.h
deleted file mode 100644
index 78a96dd7ac..0000000000
--- a/keyboards/a_dux/keymaps/daliusd/config.h
+++ /dev/null
@@ -1,35 +0,0 @@
1/*
2Copyright 2021 Dalius Dobravolskas <dalius.dobravolskas@gmail.com>
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*/
17
18#pragma once
19
20#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
21
22#define MOUSEKEY_INTERVAL 12
23#define MOUSEKEY_MAX_SPEED 6
24#define MOUSEKEY_TIME_TO_MAX 50
25
26#define MOUSEKEY_DELAY 20
27// It makes sense to use the same delay for the mouseweel
28#define MOUSEKEY_WHEEL_DELAY 100
29// The default is 100
30#define MOUSEKEY_WHEEL_INTERVAL 50
31// The default is 40
32#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
33
34#define FLOW_COUNT 6
35#define FLOW_LAYERS_COUNT 5
diff --git a/keyboards/a_dux/keymaps/daliusd/flow.c b/keyboards/a_dux/keymaps/daliusd/flow.c
deleted file mode 100644
index 6e4db873fe..0000000000
--- a/keyboards/a_dux/keymaps/daliusd/flow.c
+++ /dev/null
@@ -1,336 +0,0 @@
1/* Copyright 2022 @daliusd
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#include "flow.h"
17
18extern const uint16_t flow_config[FLOW_COUNT][2];
19extern const uint16_t flow_layers_config[FLOW_LAYERS_COUNT][2];
20
21// Represents the states a flow key can be in
22typedef enum {
23 flow_up_unqueued,
24 flow_up_queued,
25 flow_up_queued_used,
26 flow_down_unused,
27 flow_down_used,
28} flow_state_t;
29
30#ifdef FLOW_ONESHOT_TERM
31const int g_flow_oneshot_term = FLOW_ONESHOT_TERM;
32#else
33const int g_flow_oneshot_term = 500;
34#endif
35
36#ifdef FLOW_ONESHOT_WAIT_TERM
37const int g_flow_oneshot_wait_term = FLOW_ONESHOT_WAIT_TERM;
38#else
39const int g_flow_oneshot_wait_term = 500;
40#endif
41
42flow_state_t flow_state[FLOW_COUNT] = { [0 ... FLOW_COUNT - 1] = flow_up_unqueued };
43bool flow_pressed[FLOW_COUNT][2] = { [0 ... FLOW_COUNT - 1] = {false, false} };
44uint16_t flow_timers[FLOW_COUNT] = { [0 ... FLOW_COUNT - 1] = 0 };
45bool flow_timeout_timers_active[FLOW_COUNT] = { [0 ... FLOW_COUNT - 1] = false };
46uint16_t flow_timeout_timers_value[FLOW_COUNT] = { [0 ... FLOW_COUNT - 1] = 0 };
47uint16_t flow_timeout_wait_timers_value[FLOW_COUNT] = { [0 ... FLOW_COUNT - 1] = 0 };
48
49flow_state_t flow_layers_state[FLOW_LAYERS_COUNT] = {
50 [0 ... FLOW_LAYERS_COUNT - 1] = flow_up_unqueued
51};
52bool flow_layer_timeout_timers_active[FLOW_LAYERS_COUNT] = { [0 ... FLOW_LAYERS_COUNT - 1] = false };
53uint16_t flow_layer_timeout_timers_value[FLOW_LAYERS_COUNT] = { [0 ... FLOW_LAYERS_COUNT - 1] = 0 };
54uint16_t flow_layer_timeout_wait_timers_value[FLOW_LAYERS_COUNT] = { [0 ... FLOW_LAYERS_COUNT - 1] = 0 };
55
56bool is_flow_ignored_key(uint16_t keycode) {
57 for (int i = 0; i < FLOW_COUNT; i++) {
58 if (flow_config[i][0] == keycode) {
59 return true;
60 }
61 }
62
63 for (int i = 0; i < FLOW_LAYERS_COUNT; i++) {
64 if (flow_layers_config[i][0] == keycode) {
65 return true;
66 }
67 }
68
69 if (keycode == KC_LSFT || keycode == KC_RSFT
70 || keycode == KC_LCTL || keycode == KC_RCTL
71 || keycode == KC_LALT || keycode == KC_RALT
72 || keycode == KC_LGUI || keycode == KC_RGUI) {
73 return true;
74 }
75
76 return false;
77}
78
79bool update_flow_mods(
80 uint16_t keycode,
81 bool pressed
82) {
83 bool pass = true;
84 bool flow_key_list_triggered[FLOW_COUNT] = { [0 ... FLOW_COUNT - 1] = false };
85 bool flow_key_list_pressed[FLOW_COUNT] = { [0 ... FLOW_COUNT - 1] = false };
86
87 bool flow_triggered = false;
88
89 for (uint8_t i = 0; i < FLOW_COUNT; i++) {
90 // Layer key
91 if (keycode == flow_config[i][0]) {
92 if (pressed) {
93 flow_pressed[i][0] = true;
94 } else {
95 flow_pressed[i][0] = false;
96 }
97 // KC mod key
98 } else if (keycode == flow_config[i][1]) {
99 if (pressed) {
100 if (flow_pressed[i][0]) {
101 flow_pressed[i][1] = true;
102 flow_key_list_triggered[i] = true;
103 flow_triggered = true;
104 flow_key_list_pressed[i] = true;
105 pass = false;
106 }
107 } else if (flow_pressed[i][1]) {
108 flow_pressed[i][1] = false;
109 if (flow_pressed[i][0]) {
110 flow_key_list_triggered[i] = true;
111 flow_triggered = true;
112 pass = false;
113 } else if ((flow_state[i] == flow_down_unused)
114 || (flow_state[i] == flow_down_used)) {
115 flow_key_list_triggered[i] = true;
116 flow_triggered = true;
117 pass = false;
118 }
119 }
120 }
121 }
122
123 for (uint8_t i = 0; i < FLOW_COUNT; i++) {
124 if (flow_key_list_triggered[i]) {
125 if (flow_key_list_pressed[i]) {
126 if (flow_state[i] == flow_up_unqueued) {
127 register_code(flow_config[i][1]);
128 }
129 flow_timeout_wait_timers_value[i] = timer_read();
130 flow_state[i] = flow_down_unused;
131 } else {
132 // Trigger keyup
133 switch (flow_state[i]) {
134 case flow_down_unused:
135 if (!flow_pressed[i][1]) {
136 if (timer_elapsed(flow_timeout_wait_timers_value[i]) > g_flow_oneshot_wait_term) {
137 flow_state[i] = flow_up_unqueued;
138 unregister_code(flow_config[i][1]);
139 } else {
140 // If we didn't use the mod while trigger was held, queue it.
141 flow_state[i] = flow_up_queued;
142 flow_timeout_timers_active[i] = true;
143 flow_timeout_timers_value[i] = timer_read();
144 }
145 }
146 break;
147 case flow_down_used:
148 // If we did use the mod while trigger was held, unregister it.
149 if (!flow_pressed[i][1]) {
150 flow_state[i] = flow_up_unqueued;
151 unregister_code(flow_config[i][1]);
152 }
153 break;
154 default:
155 break;
156 }
157 }
158 } else if (!flow_triggered) {
159 if (pressed) {
160 if (!is_flow_ignored_key(keycode)) {
161 switch (flow_state[i]) {
162 case flow_up_queued:
163 flow_state[i] = flow_up_queued_used;
164 flow_timeout_timers_active[i] = false;
165 break;
166 case flow_up_queued_used:
167 flow_state[i] = flow_up_unqueued;
168 unregister_code(flow_config[i][1]);
169 break;
170 default:
171 break;
172 }
173 }
174 } else {
175 if (!is_flow_ignored_key(keycode)) {
176 // On non-ignored keyup, consider the oneshot used.
177 switch (flow_state[i]) {
178 case flow_down_unused:
179 flow_state[i] = flow_down_used;
180 break;
181 case flow_up_queued:
182 flow_state[i] = flow_up_unqueued;
183 unregister_code(flow_config[i][1]);
184 break;
185 case flow_up_queued_used:
186 flow_state[i] = flow_up_unqueued;
187 unregister_code(flow_config[i][1]);
188 break;
189 default:
190 break;
191 }
192 }
193 }
194 }
195 }
196
197 return pass;
198}
199
200void change_pressed_status(uint16_t keycode, bool pressed) {
201 for (int i = 0; i < FLOW_COUNT; i++) {
202 if (flow_config[i][0] == keycode) {
203 flow_pressed[i][0] = pressed;
204 }
205 }
206}
207
208bool update_flow_layers(
209 uint16_t keycode,
210 bool pressed,
211 keypos_t key_position
212) {
213 uint8_t key_layer = read_source_layers_cache(key_position);
214 bool pass = true;
215
216 for (int i = 0; i < FLOW_LAYERS_COUNT; i++) {
217 uint16_t trigger = flow_layers_config[i][0];
218 uint16_t layer = flow_layers_config[i][1];
219
220 if (keycode == trigger) {
221 if (pressed) {
222 // Trigger keydown
223 if (flow_layers_state[i] == flow_up_unqueued) {
224 layer_on(layer);
225 change_pressed_status(trigger, true);
226 }
227 flow_layer_timeout_wait_timers_value[i] = timer_read();
228 flow_layers_state[i] = flow_down_unused;
229 pass = false;
230 } else {
231 // Trigger keyup
232 switch (flow_layers_state[i]) {
233 case flow_down_unused:
234 if (timer_elapsed(flow_layer_timeout_wait_timers_value[i]) > g_flow_oneshot_wait_term) {
235 flow_layers_state[i] = flow_up_unqueued;
236 layer_off(layer);
237 change_pressed_status(trigger, false);
238 pass = false;
239 } else {
240 // If we didn't use the layer while trigger was held, queue it.
241 flow_layers_state[i] = flow_up_queued;
242 flow_layer_timeout_timers_active[i] = true;
243 flow_layer_timeout_timers_value[i] = timer_read();
244 pass = false;
245 change_pressed_status(trigger, true);
246 }
247 break;
248 case flow_down_used:
249 // If we did use the layer while trigger was held, turn off it.
250 flow_layers_state[i] = flow_up_unqueued;
251 layer_off(layer);
252 change_pressed_status(trigger, false);
253 pass = false;
254 break;
255 default:
256 break;
257 }
258 }
259 } else {
260 if (pressed) {
261 if (key_layer == layer) {
262 // On non-ignored keyup, consider the oneshot used.
263 switch (flow_layers_state[i]) {
264 case flow_down_unused:
265 flow_layers_state[i] = flow_down_used;
266 break;
267 case flow_up_queued:
268 flow_layers_state[i] = flow_up_queued_used;
269 flow_layer_timeout_timers_active[i] = false;
270 break;
271 case flow_up_queued_used:
272 flow_layers_state[i] = flow_up_unqueued;
273 layer_off(layer);
274 change_pressed_status(trigger, false);
275 pass = false;
276 break;
277 default:
278 break;
279 }
280 }
281 } else {
282 // Ignore key ups from other layers
283 if (key_layer == layer) {
284 // On non-ignored keyup, consider the oneshot used.
285 switch (flow_layers_state[i]) {
286 case flow_up_queued:
287 flow_layers_state[i] = flow_up_unqueued;
288 layer_off(layer);
289 change_pressed_status(trigger, false);
290 break;
291 case flow_up_queued_used:
292 flow_layers_state[i] = flow_up_unqueued;
293 layer_off(layer);
294 change_pressed_status(trigger, false);
295 break;
296 default:
297 break;
298 }
299 }
300 }
301 }
302 }
303
304 return pass;
305}
306
307bool update_flow(
308 uint16_t keycode,
309 bool pressed,
310 keypos_t key_position
311) {
312 bool pass = update_flow_mods(keycode, pressed);
313 pass = update_flow_layers(keycode, pressed, key_position) & pass;
314 return pass;
315}
316
317void flow_matrix_scan(void) {
318 for (int i = 0; i < FLOW_COUNT; i++) {
319 if (flow_timeout_timers_active[i]
320 && timer_elapsed(flow_timeout_timers_value[i]) > g_flow_oneshot_term) {
321 flow_timeout_timers_active[i] = false;
322 flow_state[i] = flow_up_unqueued;
323 unregister_code(flow_config[i][1]);
324 }
325 }
326
327 for (int i = 0; i < FLOW_LAYERS_COUNT; i++) {
328 if (flow_layer_timeout_timers_active[i]
329 && timer_elapsed(flow_layer_timeout_timers_value[i]) > g_flow_oneshot_term) {
330 flow_layer_timeout_timers_active[i] = false;
331 flow_layers_state[i] = flow_up_unqueued;
332 layer_off(flow_layers_config[i][1]);
333 change_pressed_status(flow_layers_config[i][0], false);
334 }
335 }
336}
diff --git a/keyboards/a_dux/keymaps/daliusd/flow.h b/keyboards/a_dux/keymaps/daliusd/flow.h
deleted file mode 100644
index e9ac32c8ed..0000000000
--- a/keyboards/a_dux/keymaps/daliusd/flow.h
+++ /dev/null
@@ -1,27 +0,0 @@
1/*
2Copyright 2022 Dalius Dobravolskas <dalius.dobravolskas@gmail.com>
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*/
17#pragma once
18
19#include QMK_KEYBOARD_H
20
21bool update_flow(
22 uint16_t keycode,
23 bool pressed,
24 keypos_t key_position
25);
26
27void flow_matrix_scan(void);
diff --git a/keyboards/a_dux/keymaps/daliusd/keymap.c b/keyboards/a_dux/keymaps/daliusd/keymap.c
deleted file mode 100644
index dcc41a36ee..0000000000
--- a/keyboards/a_dux/keymaps/daliusd/keymap.c
+++ /dev/null
@@ -1,334 +0,0 @@
1/* Copyright 2021 @daliusd
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#include QMK_KEYBOARD_H
17
18#include "flow.h"
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24enum layers {
25 _QWERTY,
26 _SYM,
27 _NAV,
28 _MISC,
29 _TMUX,
30 _MOUSE,
31 _FUNC,
32 _LT_MAC,
33 _LT_LINUX,
34};
35
36enum custom_keycodes {
37 TM_NEXT = SAFE_RANGE,
38 TM_PREV,
39 TM_LEFT,
40 TM_RIGHT,
41 TM_NEW,
42 TM_SLCT,
43 TM_SRCH,
44 TM_URL,
45 OS_MISC,
46 OS_TMUX,
47 OS_FUNC,
48 LT_OSLNX,
49};
50
51// Shortcut to make keymap more readable
52
53#define L_NAV MO(_NAV)
54#define L_SYM MO(_SYM)
55#define L_MOUSE MO(_MOUSE)
56
57#define K_PRINT (QK_LCTL | QK_LSFT | QK_LGUI | KC_4)
58#define K_VIDEO (QK_LSFT | QK_LGUI | KC_5)
59
60// flow_config should correspond to following format:
61// * layer keycode
62// * modifier keycode
63const uint16_t flow_config[FLOW_COUNT][2] = {
64 {L_NAV, KC_LALT},
65 {L_NAV, KC_LGUI},
66 {L_NAV, KC_LCTL},
67 {L_SYM, KC_RCTL},
68 {L_SYM, KC_RGUI},
69 {L_SYM, KC_RALT},
70};
71
72const uint16_t flow_layers_config[FLOW_LAYERS_COUNT][2] = {
73 {OS_MISC, _MISC},
74 {OS_TMUX, _TMUX},
75 {OS_FUNC, _FUNC},
76};
77
78// Unicode characters
79enum unicode_names {
80 SNEK,
81 EURO,
82 LT_S_A,
83 LT_L_A,
84 LT_S_C,
85 LT_L_C,
86 LT_S_E1,
87 LT_L_E1,
88 LT_S_E2,
89 LT_L_E2,
90 LT_S_I,
91 LT_L_I,
92 LT_S_S,
93 LT_L_S,
94 LT_S_U1,
95 LT_L_U1,
96 LT_S_U2,
97 LT_L_U2,
98 LT_S_Z,
99 LT_L_Z,
100 LT_OB,
101 LT_CB,
102};
103
104const uint32_t unicode_map[] PROGMEM = {
105 [SNEK] = 0x1F40D, // 🐍
106 [EURO] = 0x20ac, // €
107 [LT_S_A] = 0x105, // ą
108 [LT_L_A] = 0x104, // Ą
109 [LT_S_C] = 0x10d, // č
110 [LT_L_C] = 0x10c, // Č
111 [LT_S_E1] = 0x119, // ę
112 [LT_L_E1] = 0x118, // Ę
113 [LT_S_E2] = 0x117, // ė
114 [LT_L_E2] = 0x116, // Ė
115 [LT_S_I] = 0x12f, // į
116 [LT_L_I] = 0x12e, // Į
117 [LT_S_S] = 0x161, // š
118 [LT_L_S] = 0x160, // Š
119 [LT_S_U1] = 0x173, // ų
120 [LT_L_U1] = 0x172, // Ų
121 [LT_S_U2] = 0x16b, // ū
122 [LT_L_U2] = 0x16a, // Ū
123 [LT_S_Z] = 0x17e, // ž
124 [LT_L_Z] = 0x17d, // Ž
125 [LT_OB] = 0x201e, // „
126 [LT_CB] = 0x201c, // “
127};
128
129#define K_SNEK UM(SNEK)
130#define K_EURO UM(EURO)
131#define K_LT_A UP(LT_S_A, LT_L_A)
132#define K_LT_AU UM(LT_L_A)
133#define K_LT_C UP(LT_S_C, LT_L_C)
134#define K_LT_CU UM(LT_L_C)
135#define K_LT_E1 UP(LT_S_E1, LT_L_E1)
136#define K_LT_E1U UM(LT_L_E1)
137#define K_LT_E2 UP(LT_S_E2, LT_L_E2)
138#define K_LT_E2U UM(LT_L_E2)
139#define K_LT_I UP(LT_S_I, LT_L_I)
140#define K_LT_IU UM(LT_L_I)
141#define K_LT_S UP(LT_S_S, LT_L_S)
142#define K_LT_SU UM(LT_L_S)
143#define K_LT_U1 UP(LT_S_U1, LT_L_U1)
144#define K_LT_U1U UM(LT_L_U1)
145#define K_LT_U2 UP(LT_S_U2, LT_L_U2)
146#define K_LT_U2U UM(LT_L_U2)
147#define K_LT_Z UP(LT_S_Z, LT_L_Z)
148#define K_LT_ZU UM(LT_L_Z)
149#define K_LT_OB UM(LT_OB)
150#define K_LT_CB UM(LT_CB)
151
152const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
153
154 [_QWERTY] = LAYOUT(
155 //┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
156 KC_Q ,KC_W ,KC_E ,KC_R ,KC_T, KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,
157 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
158 KC_A ,KC_S ,KC_D ,KC_F ,KC_G , KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,
159 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
160 KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH,
161 //└────────┴────────┴────────┴────┬───┴────┬───┼────────┐ ┌────────┼───┬────┴───┬────┴────────┴────────┴────────┘
162 L_NAV , KC_SPC , KC_LSFT , L_SYM
163 // └────────┘ └────────┘ └────────┘ └────────┘
164 ),
165
166 [_SYM] = LAYOUT(
167 //┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
168 KC_EXLM ,KC_AT ,KC_HASH ,KC_DLR ,KC_PERC , KC_CIRC ,KC_AMPR ,KC_ASTR ,KC_LPRN ,KC_RPRN ,
169 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
170 XXXXXXX ,KC_GRV ,KC_LBRC ,KC_RBRC ,KC_PLUS , KC_MINS ,KC_PIPE ,KC_RCTL ,KC_RGUI ,KC_RALT ,
171 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
172 KC_DEL ,KC_BSPC ,KC_LCBR ,KC_RCBR ,KC_EQL , KC_UNDS ,KC_QUOT ,KC_DQT ,OS_MISC ,KC_BSLS ,
173 //└────────┴────────┴────────┴────┬───┴────┬───┼────────┐ ┌────────┼───┬────┴───┬────┴────────┴────────┴────────┘
174 _______ , _______ , _______ , XXXXXXX
175 // └────────┘ └────────┘ └────────┘ └────────┘
176 ),
177
178 [_NAV] = LAYOUT(
179 //┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
180 KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,
181 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
182 KC_LALT ,KC_LGUI ,KC_LCTL ,KC_TAB ,KC_ENT , KC_LEFT ,KC_DOWN ,KC_UP ,KC_RIGHT,KC_PGUP ,
183 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
184 KC_LSFT ,KC_BSPC ,KC_ESC ,KC_TILDE,OS_TMUX , OS_FUNC ,L_MOUSE ,KC_COMM ,KC_DOT ,KC_PGDN ,
185 //└────────┴────────┴────────┴────┬───┴────┬───┼────────┐ ┌────────┼───┬────┴───┬────┴────────┴────────┴────────┘
186 XXXXXXX , _______ , _______ , _______
187 // └────────┘ └────────┘ └────────┘ └────────┘
188 ),
189
190 [_MISC] = LAYOUT(
191 //┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
192 QK_BOOT ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , KC_BRID ,KC_BRIU ,KC_PSCR ,XXXXXXX ,K_PRINT ,
193 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
194 XXXXXXX ,XXXXXXX ,DB_TOGG ,LT_OSLNX,XXXXXXX , KC_MPRV ,KC_MPLY ,KC_MNXT ,XXXXXXX ,K_VIDEO ,
195 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
196 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , KC_VOLD ,KC_VOLU ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
197 //└────────┴────────┴────────┴────┬───┴────┬───┼────────┐ ┌────────┼───┬────┴───┬────┴────────┴────────┴────────┘
198 XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX
199 // └────────┘ └────────┘ └────────┘ └────────┘
200 ),
201
202 [_TMUX] = LAYOUT(
203 //┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
204 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,TM_URL ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
205 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
206 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , TM_LEFT ,TM_NEXT ,TM_PREV ,TM_RIGHT,XXXXXXX ,
207 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
208 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , TM_NEW ,TM_SLCT ,XXXXXXX ,XXXXXXX ,TM_SRCH ,
209 //└────────┴────────┴────────┴────┬───┴────┬───┼────────┐ ┌────────┼───┬────┴───┬────┴────────┴────────┴────────┘
210 XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX
211 // └────────┘ └────────┘ └────────┘ └────────┘
212 ),
213
214 [_MOUSE] = LAYOUT(
215 //┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
216 XXXXXXX ,XXXXXXX ,KC_MS_U ,KC_BTN3 ,KC_WH_U , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
217 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
218 XXXXXXX ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_WH_D , XXXXXXX ,XXXXXXX ,KC_RCTL ,KC_RGUI ,KC_RALT ,
219 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
220 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
221 //└────────┴────────┴────────┴────┬───┴────┬───┼────────┐ ┌────────┼───┬────┴───┬────┴────────┴────────┴────────┘
222 KC_BTN1 , KC_BTN2 , _______ , XXXXXXX
223 // └────────┘ └────────┘ └────────┘ └────────┘
224 ),
225
226 [_FUNC] = LAYOUT(
227 //┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
228 KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
229 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
230 KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 , XXXXXXX ,XXXXXXX ,KC_RCTL ,KC_RGUI ,KC_RALT ,
231 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
232 KC_F11 ,KC_F12 ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
233 //└────────┴────────┴────────┴────┬───┴────┬───┼────────┐ ┌────────┼───┬────┴───┬────┴────────┴────────┴────────┘
234 XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX
235 // └────────┘ └────────┘ └────────┘ └────────┘
236 ),
237
238 [_LT_MAC] = LAYOUT(
239 //┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
240 KC_EXLM ,KC_AT ,KC_HASH ,KC_DLR ,KC_PERC , KC_CIRC ,KC_AMPR ,KC_ASTR ,KC_PLUS ,XXXXXXX ,
241 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
242 KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_EQL ,XXXXXXX ,
243 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
244 XXXXXXX ,KC_BSPC ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
245 //└────────┴────────┴────────┴────┬───┴────┬───┼────────┐ ┌────────┼───┬────┴───┬────┴────────┴────────┴────────┘
246 XXXXXXX , XXXXXXX , _______ , XXXXXXX
247 // └────────┘ └────────┘ └────────┘ └────────┘
248 ),
249
250 [_LT_LINUX] = LAYOUT(
251 //┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
252 K_LT_AU ,K_LT_CU ,K_LT_E1U,K_LT_E2U,K_LT_IU , K_LT_SU ,K_LT_U1U,K_LT_U2U,K_LT_ZU ,XXXXXXX ,
253 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
254 K_LT_A ,K_LT_C ,K_LT_E1 ,K_LT_E2 ,K_LT_I , K_LT_S ,K_LT_U1 ,K_LT_U2 ,K_LT_Z ,XXXXXXX ,
255 //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
256 XXXXXXX ,KC_BSPC ,XXXXXXX ,K_SNEK ,K_LT_OB , K_LT_CB ,K_EURO ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
257 //└────────┴────────┴────────┴────┬───┴────┬───┼────────┐ ┌────────┼───┬────┴───┬────┴────────┴────────┴────────┘
258 XXXXXXX , XXXXXXX , _______ , XXXXXXX
259 // └────────┘ └────────┘ └────────┘ └────────┘
260 ),
261};
262
263#define TMUX_PREFIX SS_DOWN(X_LCTL) "b" SS_UP(X_LCTL)
264
265bool lt_os_is_linux = false;
266
267bool process_record_user(uint16_t keycode, keyrecord_t *record) {
268 if (!update_flow(keycode, record->event.pressed, record->event.key)) return false;
269
270 switch (keycode) {
271 case TM_LEFT:
272 if (!record->event.pressed) return true;
273 SEND_STRING(TMUX_PREFIX "<");
274 return false;
275 case TM_RIGHT:
276 if (!record->event.pressed) return true;
277 SEND_STRING(TMUX_PREFIX ">");
278 return false;
279 case TM_NEXT:
280 if (!record->event.pressed) return true;
281 SEND_STRING(TMUX_PREFIX "n");
282 return false;
283 case TM_PREV:
284 if (!record->event.pressed) return true;
285 SEND_STRING(TMUX_PREFIX "p");
286 return false;
287 case TM_NEW:
288 if (!record->event.pressed) return true;
289 SEND_STRING(TMUX_PREFIX "c");
290 return false;
291 case TM_SLCT:
292 if (!record->event.pressed) return true;
293 SEND_STRING(TMUX_PREFIX "[");
294 return false;
295 case TM_SRCH:
296 if (!record->event.pressed) return true;
297 SEND_STRING(TMUX_PREFIX "\t");
298 return false;
299 case TM_URL:
300 if (!record->event.pressed) return true;
301 SEND_STRING(TMUX_PREFIX SS_LCTL("u"));
302 return false;
303 case LT_OSLNX:
304 if (!record->event.pressed) return true;
305 lt_os_is_linux = !lt_os_is_linux;
306 return false;
307 }
308 return true;
309}
310
311void matrix_scan_user(void) {
312 flow_matrix_scan();
313}
314
315bool lang_layer_on = false;
316
317layer_state_t layer_state_set_user(layer_state_t state) {
318 state = update_tri_layer_state(state, _SYM, _NAV, lt_os_is_linux ? _LT_LINUX : _LT_MAC);
319
320 uint8_t hl = get_highest_layer(state);
321 if (hl == _LT_MAC) {
322 if (!lang_layer_on) {
323 tap_code16(LCTL(KC_SPC));
324 lang_layer_on = true;
325 }
326 } else {
327 if (lang_layer_on) {
328 tap_code16(LCTL(KC_SPC));
329 lang_layer_on = false;
330 }
331 }
332
333 return state;
334}
diff --git a/keyboards/a_dux/keymaps/daliusd/readme.md b/keyboards/a_dux/keymaps/daliusd/readme.md
deleted file mode 100644
index fde19ee630..0000000000
--- a/keyboards/a_dux/keymaps/daliusd/readme.md
+++ /dev/null
@@ -1,306 +0,0 @@
1# My 34 keys layout
2
3This is my principles for layout:
4
5* I am using Callum style layout. Here you can read explanation by
6 Callum himself and his reasoning for not using mod-tap:
7 [here](../../../../users/callum/readme.md)
8
9* There should be only one way to type key. Key can be on
10 different layer but it must maintain its physical location. I
11 broke this rule for Shift key only.
12
13* The less features are used the better.
14
15* There is simple TMUX layer.
16
17* Common keys must be accessible using two keys if possible.
18
19* It should be possible to work with left keyboard side and mouse
20 in right hand without lifting hands for some scenarios (that's
21 why I had to duplicate Shift key).
22
23## Improvements over Callum
24
25* I have added one shot layers compatible with Callum's one shot
26 keys.
27
28* There is one issue with accidental uppercase characters fixed
29 that exists in original Callum layout's implementation.
30
31* Another annoying feature of Callum layer is one shot keys are
32 frozen until you cancel them. This is problem when you use one
33 hand for keyboard and another for mouse. E.g. you click Ctrl and
34 mouse to get some menu (on Mac OS X), and then you want to click
35 some item in that menu. You have to remember to cancel one shot in such
36 situation. I have added two settings two handle situations like
37 this:
38
39 * `FLOW_ONESHOT_WAIT_TERM` - if hold one shot key longer than
40 `FLOW_ONESHOT_WAIT_TERM` ms then mod key / layer key is not
41 treated as one shot key (defaults to 500ms).
42
43 * `FLOW_ONESHOT_TERM` - if you do not click another key in
44 `FLOW_ONESHOT_TERM` ms then one shot key / layer key is treated
45 as normal key. Therefore if you lift it after `FLOW_ONESHOT_TERM`
46 it will not be treated as one shot (defaults to 500ms).
47
48 After adding those two settings I have found out that I don't
49 need one shot cancel key anymore so I have removed it.
50
51Since differences are significant I named this layout `flow`.
52
53## Using flow with your keyboard
54
55Copy `flow.c` and `flow.h` to keyboard folder.
56
57Add following line to `rules.mk`:
58
59```make
60SRC += flow.c
61```
62
63Define following in `config.h` for modifiers and layers:
64
65```c
66#define FLOW_COUNT 7
67#define FLOW_LAYERS_COUNT 3
68```
69
70In your `keymap.c` add and configure like this:
71
72```c
73#include "flow.h"
74
75...
76
77// flow_config should correspond to following format:
78// * layer keycode
79// * modifier keycode
80const uint16_t flow_config[FLOW_COUNT][2] = {
81 {L_NAV, KC_LALT},
82 {L_NAV, KC_LGUI},
83 {L_NAV, KC_LCTL},
84 {L_NAV, KC_LSFT},
85 {L_SYM, KC_LCTL},
86 {L_SYM, KC_LGUI},
87 {L_SYM, KC_LALT},
88};
89
90
91// for layers configuration follow this format:
92// * custom layer key
93// * layer name
94const uint16_t flow_layers_config[FLOW_LAYERS_COUNT][2] = {
95 {OS_TMUX, _TMUX},
96 {OS_MISC, _MISC},
97 {OS_FUNC, _FUNC},
98};
99
100...
101
102// Add following to handle flow
103
104bool process_record_user(uint16_t keycode, keyrecord_t *record) {
105 if (!update_flow(keycode, record->event.pressed, record->event.key)) return false;
106 return true;
107}
108
109void matrix_scan_user(void) {
110 flow_matrix_scan();
111}
112
113```
114
115## Lithuanian letters
116
117There are at least two ways how to enter Lithuanian letters: to
118use Unicode support from QMK or to switch OS language when
119necessary. Unicode support has some problems:
120
121* it is OS specific (you need to change Unicode input mode based
122 on your OS and I sometimes switch between Mac OS X and Ubuntu).
123 This is minor issue but it is still issue.
124
125* There is bug in Mac OS X and I can't enter `Š` using unicode
126 input method.
127
128* Unicode Hex Input in Mac OS X is not perfect and there are some
129 minor issue while using it.
130
131On Linux Unicode support meanwhile works perfectly.
132
133This leaves us with other option to use OS language switching as
134you most probably have done before. Still there is space for
135improvement. E.g. I have added Lithuanian letters to trilayer and
136trilayer activation toggles OS language (this works because I use
137only two languages). Check `layer_state_set_user` implementation
138for details.
139
140# Rejected ideas
141
142## Mods as combos
143
144Sometimes when I press `NAV (layer key) + S + Tab` to get `Command
145+ Tab` I ended up with `S + Nav + Tab`. This happened because I
146did that really fast and sometimes clicked S slightly earlier than
147NAV layer key. Initially I have solved this problem using Combo
148keys, but that's additional dependency and combo keys are not
149ideal for Callum layer. You need to release both keys to trigger
150Combo key release. Therefore I have written custom code that
151allows pressing S some milliseconds earlier. This is controlled by
152FLOW_TERM and defaults to 10. I do not recommend setting this to
153higher than 30.
154
155This idea was rejected because it looks like 10ms did not made
156that big difference.
157
158## Swapper
159
160Idea of swapper is to have key that registers Mode key (e.g.
161Command while layer and some key is pressed) to simulate two key
162combo, e.g. Command + Tab. Overall I found that 3 keys combo that
163I have currently for swapping windows is equally good as 2 keys
164swapper. Another problem with swapper is that it is OS specific.
165Still if you want here is swapper implementation I have used:
166
167```c
168bool active;
169
170void update_swapper(
171 uint16_t trigger,
172 uint16_t keycode,
173 bool pressed
174) {
175 if (keycode == trigger) {
176 if (pressed) {
177 if (!active) {
178 active = true;
179 register_code(KC_LGUI);
180 }
181 register_code(KC_TAB);
182 } else {
183 unregister_code(KC_TAB);
184 }
185 } else if (active && keycode != KC_LSFT && keycode != KC_LEFT && keycode != KC_RIGHT) {
186 unregister_code(KC_LGUI);
187 active = false;
188 }
189}
190```
191
192## Combos
193
194I have seen that some people use two letter horizontal combos for
195some actions, e.g. XC for Command+C, CV for Command+V, JK for ESC
196and etc. I found that this kind of kicks me out of the flow when
197working as it requires different kind of action and I need to
198pause to make that action.
199
200## Comma-space
201
202I have noticed that I put space after comma `,` usually. That
203means I can use comma + letter for something else with backspace,
204e.g. for Lithuanian letters. Performance wise that works OK, but
205practically that does not feel really good. Trilayer with language
206layer switch works better.
207
208Still if you are interested here is comma-space implementation:
209
210```c
211void swap_layout(void) {
212 uint8_t saved_mods = get_mods();
213 clear_mods();
214 tap_code16(LCTL(KC_SPC));
215 set_mods(saved_mods);
216}
217
218void press_with_layout_swap(uint16_t keycode) {
219 tap_code16(KC_BSPC);
220 swap_layout();
221 tap_code16(keycode);
222 swap_layout();
223}
224
225bool comma_pressed = false;
226
227bool update_commaspace(
228 uint16_t keycode,
229 bool pressed
230) {
231 if (keycode == KC_COMM) {
232 if (!(get_mods() & MOD_MASK_SHIFT)) {
233 comma_pressed = true;
234 }
235 } else if (comma_pressed) {
236 if (keycode != KC_LSFT) {
237 comma_pressed = false;
238 }
239
240 switch(keycode) {
241 case KC_Q:
242 if (pressed) {
243 press_with_layout_swap(KC_1);
244 return false;
245 }
246 break;
247 case KC_W:
248 if (pressed) {
249 press_with_layout_swap(KC_2);
250 return false;
251 }
252 break;
253 case KC_E:
254 if (pressed) {
255 press_with_layout_swap(KC_3);
256 return false;
257 }
258 break;
259 case KC_R:
260 if (pressed) {
261 press_with_layout_swap(KC_4);
262 return false;
263 }
264 break;
265 case KC_T:
266 if (pressed) {
267 press_with_layout_swap(KC_5);
268 return false;
269 }
270 break;
271 case KC_Y:
272 if (pressed) {
273 press_with_layout_swap(KC_6);
274 return false;
275 }
276 break;
277 case KC_U:
278 if (pressed) {
279 press_with_layout_swap(KC_7);
280 return false;
281 }
282 break;
283 case KC_I:
284 if (pressed) {
285 press_with_layout_swap(KC_8);
286 return false;
287 }
288 break;
289 case KC_O:
290 if (pressed) {
291 press_with_layout_swap(KC_EQL);
292 return false;
293 }
294 break;
295 }
296 }
297
298 return true;
299};
300```
301
302## Using one shot layers on top layer keys (NAV and SYM)
303
304While this looked promising and fun it was really easy to get lost
305in which layer you actually are. You can still use it as `flow`
306supports this scenario, but I do not recommend it.
diff --git a/keyboards/a_dux/keymaps/daliusd/rules.mk b/keyboards/a_dux/keymaps/daliusd/rules.mk
deleted file mode 100644
index dda50a4f78..0000000000
--- a/keyboards/a_dux/keymaps/daliusd/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
1UNICODE_ENABLE = no
2UNICODEMAP_ENABLE = yes
3#CONSOLE_ENABLE = yes
4
5SRC += flow.c
diff --git a/keyboards/a_dux/keymaps/jcmkk3/keymap.c b/keyboards/a_dux/keymaps/jcmkk3/keymap.c
deleted file mode 100644
index 608e0c522e..0000000000
--- a/keyboards/a_dux/keymaps/jcmkk3/keymap.c
+++ /dev/null
@@ -1,130 +0,0 @@
1/* Copyright 2021 @jcmkk3
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#include QMK_KEYBOARD_H
17
18#include "oneshot.h"
19
20#define LA_UPP OSL(UPP)
21#define LA_SYM OSL(SYM)
22#define LA_NAV MO(NAV)
23
24enum layers {
25 DEF,
26 UPP,
27 SYM,
28 NAV,
29 NUM,
30};
31
32enum keycodes {
33 // Custom oneshot mod implementation with no timers.
34 OS_SHFT = SAFE_RANGE,
35 OS_CTRL,
36 OS_ALT,
37 OS_GUI,
38};
39
40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41 [DEF] = LAYOUT(
42 KC_Y, KC_C, KC_L, KC_M, KC_K, KC_Z, KC_F, KC_U, KC_QUOT, KC_DQUO,
43 KC_I, KC_S, KC_R, KC_T, KC_G, KC_P, KC_N, KC_E, KC_A, KC_O,
44 KC_Q, KC_V, KC_W, KC_D, KC_J, KC_B, KC_H, KC_COMM, KC_DOT, KC_X,
45 LA_NAV, KC_SPC, LA_UPP, LA_SYM
46 ),
47
48 [UPP] = LAYOUT(
49 S(KC_Y), S(KC_C), S(KC_L), S(KC_M), S(KC_K), S(KC_Z), S(KC_F), S(KC_U), KC_EXLM, KC_QUES,
50 S(KC_I), S(KC_S), S(KC_R), S(KC_T), S(KC_G), S(KC_P), S(KC_N), S(KC_E), S(KC_A), S(KC_O),
51 S(KC_Q), S(KC_V), S(KC_W), S(KC_D), S(KC_J), S(KC_B), S(KC_H), KC_SCLN, KC_COLN, S(KC_X),
52 _______, _______, _______, _______
53 ),
54
55 [SYM] = LAYOUT(
56 KC_LABK, KC_LCBR, KC_LBRC, KC_LPRN, KC_CIRC, KC_DLR, KC_RPRN, KC_RBRC, KC_RCBR, KC_RABK,
57 KC_HASH, KC_UNDS, KC_EQL, KC_MINS, KC_PLUS, KC_AMPR, OS_CTRL, OS_SHFT, OS_ALT, OS_GUI,
58 KC_PERC, KC_GRV, KC_TILD, KC_SLSH, KC_ASTR, KC_PIPE, KC_BSLS, KC_SCLN, KC_COLN, KC_AT,
59 _______, _______, _______, _______
60 ),
61
62 [NAV] = LAYOUT(
63 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TAB, KC_UP, KC_ENT, KC_DEL,
64 OS_GUI, OS_ALT, OS_SHFT, OS_CTRL, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,
65 C(KC_Z), C(KC_X), C(KC_C), C(KC_V), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
66 _______, _______, KC_BSPC, _______
67 ),
68
69 [NUM] = LAYOUT(
70 KC_7, KC_5, KC_3, KC_1, KC_9, KC_8, KC_0, KC_2, KC_4, KC_6,
71 OS_GUI, OS_ALT, OS_SHFT, OS_CTRL, XXXXXXX, XXXXXXX, OS_CTRL, OS_SHFT, OS_ALT, OS_GUI,
72 XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH,
73 _______, _______, KC_BSPC, _______
74 ),
75};
76
77bool is_oneshot_cancel_key(uint16_t keycode) {
78 switch (keycode) {
79 case LA_SYM:
80 case LA_NAV:
81 return true;
82 default:
83 return false;
84 }
85}
86
87bool is_oneshot_ignored_key(uint16_t keycode) {
88 switch (keycode) {
89 case LA_SYM:
90 case LA_NAV:
91 case KC_LSFT:
92 case OS_SHFT:
93 case OS_CTRL:
94 case OS_ALT:
95 case OS_GUI:
96 return true;
97 default:
98 return false;
99 }
100}
101
102oneshot_state os_shft_state = os_up_unqueued;
103oneshot_state os_ctrl_state = os_up_unqueued;
104oneshot_state os_alt_state = os_up_unqueued;
105oneshot_state os_gui_state = os_up_unqueued;
106
107bool process_record_user(uint16_t keycode, keyrecord_t *record) {
108 update_oneshot(
109 &os_shft_state, KC_LSFT, OS_SHFT,
110 keycode, record
111 );
112 update_oneshot(
113 &os_ctrl_state, KC_LCTL, OS_CTRL,
114 keycode, record
115 );
116 update_oneshot(
117 &os_alt_state, KC_LALT, OS_ALT,
118 keycode, record
119 );
120 update_oneshot(
121 &os_gui_state, KC_LGUI, OS_GUI,
122 keycode, record
123 );
124
125 return true;
126}
127
128layer_state_t layer_state_set_user(layer_state_t state) {
129 return update_tri_layer_state(state, SYM, NAV, NUM);
130}
diff --git a/keyboards/a_dux/keymaps/jcmkk3/oneshot.c b/keyboards/a_dux/keymaps/jcmkk3/oneshot.c
deleted file mode 100644
index e84b5a7b1d..0000000000
--- a/keyboards/a_dux/keymaps/jcmkk3/oneshot.c
+++ /dev/null
@@ -1,72 +0,0 @@
1/* Copyright 2021 @jcmkk3
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#include "oneshot.h"
17
18void update_oneshot(
19 oneshot_state *state,
20 uint16_t mod,
21 uint16_t trigger,
22 uint16_t keycode,
23 keyrecord_t *record
24) {
25 if (keycode == trigger) {
26 if (record->event.pressed) {
27 // Trigger keydown
28 if (*state == os_up_unqueued) {
29 register_code(mod);
30 }
31 *state = os_down_unused;
32 } else {
33 // Trigger keyup
34 switch (*state) {
35 case os_down_unused:
36 // If we didn't use the mod while trigger was held, queue it.
37 *state = os_up_queued;
38 break;
39 case os_down_used:
40 // If we did use the mod while trigger was held, unregister it.
41 *state = os_up_unqueued;
42 unregister_code(mod);
43 break;
44 default:
45 break;
46 }
47 }
48 } else {
49 if (record->event.pressed) {
50 if (is_oneshot_cancel_key(keycode) && *state != os_up_unqueued) {
51 // Cancel oneshot on designated cancel keydown.
52 *state = os_up_unqueued;
53 unregister_code(mod);
54 }
55 } else {
56 if (!is_oneshot_ignored_key(keycode)) {
57 // On non-ignored keyup, consider the oneshot used.
58 switch (*state) {
59 case os_down_unused:
60 *state = os_down_used;
61 break;
62 case os_up_queued:
63 *state = os_up_unqueued;
64 unregister_code(mod);
65 break;
66 default:
67 break;
68 }
69 }
70 }
71 }
72}
diff --git a/keyboards/a_dux/keymaps/jcmkk3/oneshot.h b/keyboards/a_dux/keymaps/jcmkk3/oneshot.h
deleted file mode 100644
index b88e68d1d5..0000000000
--- a/keyboards/a_dux/keymaps/jcmkk3/oneshot.h
+++ /dev/null
@@ -1,46 +0,0 @@
1/* Copyright 2021 @jcmkk3
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#pragma once
17
18#include QMK_KEYBOARD_H
19
20// Represents the four states a oneshot key can be in
21typedef enum {
22 os_up_unqueued,
23 os_up_queued,
24 os_down_unused,
25 os_down_used,
26} oneshot_state;
27
28// Custom oneshot mod implementation that doesn't rely on timers. If a mod is
29// used while it is held it will be unregistered on keyup as normal, otherwise
30// it will be queued and only released after the next non-mod keyup.
31void update_oneshot(
32 oneshot_state *state,
33 uint16_t mod,
34 uint16_t trigger,
35 uint16_t keycode,
36 keyrecord_t *record
37);
38
39// To be implemented by the consumer. Defines keys to cancel oneshot mods.
40bool is_oneshot_cancel_key(uint16_t keycode);
41
42// To be implemented by the consumer. Defines keys to ignore when determining
43// whether a oneshot mod has been used. Setting this to modifiers and layer
44// change keys allows stacking multiple oneshot modifiers, and carrying them
45// between layers.
46bool is_oneshot_ignored_key(uint16_t keycode);
diff --git a/keyboards/a_dux/keymaps/jcmkk3/rules.mk b/keyboards/a_dux/keymaps/jcmkk3/rules.mk
deleted file mode 100644
index b7dcd87b1e..0000000000
--- a/keyboards/a_dux/keymaps/jcmkk3/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1SRC += oneshot.c
diff --git a/keyboards/abacus/keymaps/unicodemap/keymap.c b/keyboards/abacus/keymaps/unicodemap/keymap.c
deleted file mode 100644
index 46e2219f0b..0000000000
--- a/keyboards/abacus/keymaps/unicodemap/keymap.c
+++ /dev/null
@@ -1,150 +0,0 @@
1/* Copyright 2020 nickolaij
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#include QMK_KEYBOARD_H
17
18// wait DELAY ms before unregistering media keys
19#define MEDIA_KEY_DELAY 10
20
21// Defines names for use in layer keycodes and the keymap
22enum layer_names {
23 _BASE,
24 _UPPER,
25 _LOWER
26};
27
28// Defines the keycodes used by our macros in process_record_user
29enum custom_keycodes {
30 NICKURL = SAFE_RANGE,
31 ALTTAB
32};
33
34enum unicode_names {
35 LOVEEYES,
36 THINK,
37 UPSIDEDOWN,
38 NOMOUTH,
39 PARTY,
40 HEART,
41 EGGPLANT,
42 PEACH,
43 EMOJI100,
44 EMOJIB
45};
46
47const uint32_t unicode_map[] PROGMEM = {
48 [LOVEEYES] = 0x1f60d,
49 [THINK] = 0x1f914,
50 [UPSIDEDOWN] = 0x1f643,
51 [NOMOUTH] = 0x1f636,
52 [PARTY] = 0x1f973,
53 [HEART] = 0x1f495,
54 [EMOJI100] = 0x1f4af,
55 [PEACH] = 0x1f351,
56 [EGGPLANT] = 0x1f346,
57 [EMOJIB] = 0x1f171
58};
59
60
61
62const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
63 /* Base */
64 [_BASE] = LAYOUT(
65 KC_ESCAPE, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
66 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_BSLS,
67 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_UP, KC_DELETE,
68 KC_LCTL, KC_LGUI, MO(_UPPER), KC_SPACE, KC_ENTER, MO(_LOWER), KC_LEFT, KC_DOWN, KC_RIGHT
69 ),
70 [_UPPER] = LAYOUT(
71 KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
72 ALTTAB, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_QUOTE, KC_SLASH,
73 _______, _______, _______, _______, _______, _______, _______, _______, KC_MINUS, KC_EQUAL, _______, _______,
74 KC_LALT, _______, _______, _______, _______, _______, KC_HOME, _______, KC_END
75 ),
76 [_LOWER] = LAYOUT(
77 NICKURL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
78 _______, KC_F11, KC_F12, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, RGB_MODE_SNAKE, RGB_MODE_KNIGHT, RGB_MODE_GRADIENT, XXXXXXX, RGB_TOG,
79 _______, UM(LOVEEYES), UM(THINK), UM(UPSIDEDOWN), UM(NOMOUTH), UM(PARTY), UM(PEACH), UM(HEART), UM(EGGPLANT), UM(EMOJI100), UM(EMOJIB), RGB_HUI,
80 KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______
81 )
82
83
84};
85
86bool process_record_user(uint16_t keycode, keyrecord_t *record) {
87 switch (keycode) {
88 case NICKURL:
89 if (record->event.pressed) {
90 SEND_STRING("https://www.github.com/nickolaij");
91 } else {
92 tap_code(KC_ENTER);
93 }
94 return true;
95 break;
96
97 case ALTTAB:
98 if (record->event.pressed) {
99 tap_code16(A(KC_TAB));
100 }
101 return true;
102 break;
103
104 default:
105 return true;
106
107 }
108}
109
110
111bool dip_switch_update_user(uint8_t index, bool active) {
112 switch (index) {
113 case 0:
114 if(active) {
115 switch(get_highest_layer(layer_state)) {
116 case _BASE:
117 tap_code16(LCTL(KC_F));
118 break;
119 case _UPPER:
120 tap_code(KC_MUTE);
121 break;
122 case _LOWER:
123 tap_code(KC_MEDIA_PLAY_PAUSE);
124 break;
125 }
126 }
127 }
128 return true;
129}
130
131
132void matrix_init_user(void) {
133 set_unicode_input_mode(UNICODE_MODE_WINCOMPOSE);
134}
135
136bool encoder_update_user(uint8_t index, bool clockwise) {
137
138 switch(get_highest_layer(layer_state)) {
139 case _BASE:
140 clockwise ? tap_code(KC_PGDN) : tap_code(KC_PGUP);
141 break;
142 case _UPPER:
143 clockwise ? tap_code(KC_VOLU) : tap_code(KC_VOLD);
144 break;
145 case _LOWER:
146 clockwise ? tap_code(KC_MEDIA_NEXT_TRACK) : tap_code(KC_MEDIA_PREV_TRACK);
147 break;
148 }
149 return true;
150}
diff --git a/keyboards/abacus/keymaps/unicodemap/readme.md b/keyboards/abacus/keymaps/unicodemap/readme.md
deleted file mode 100644
index 0c6098f0e9..0000000000
--- a/keyboards/abacus/keymaps/unicodemap/readme.md
+++ /dev/null
@@ -1,4 +0,0 @@
1# The default keymap for Abacus
2
3This is made based on my first few days of playing with it and honing in on what feels right.
4I've repurposed the DIP switch function for the encoder switches and added some functionality for multiple layers also effecting the encoders output.
diff --git a/keyboards/abacus/keymaps/unicodemap/rules.mk b/keyboards/abacus/keymaps/unicodemap/rules.mk
deleted file mode 100644
index 502b2def76..0000000000
--- a/keyboards/abacus/keymaps/unicodemap/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1UNICODEMAP_ENABLE = yes
diff --git a/keyboards/abstract/ellipse/keymaps/abstractkb/config.h b/keyboards/abstract/ellipse/keymaps/abstractkb/config.h
deleted file mode 100644
index 9aca0b31f5..0000000000
--- a/keyboards/abstract/ellipse/keymaps/abstractkb/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
1/* Copyright 2019 AbstractKB
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#define BACKLIGHT_BREATHING
20#define BREATHING_PERIOD 2
21#define RGBLIGHT_EFFECT_BREATHING
22#define RGBLIGHT_EFFECT_RAINBOW_MOOD
23#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
24#define RGBLIGHT_EFFECT_SNAKE
25#define RGBLIGHT_EFFECT_KNIGHT
26#define RGBLIGHT_EFFECT_CHRISTMAS
27#define RGBLIGHT_EFFECT_STATIC_GRADIENT
28#define RGBLIGHT_EFFECT_RGB_TEST
29#define RGBLIGHT_EFFECT_ALTERNATING
30#define RGBLIGHT_EFFECT_TWINKLE
31
32// place overrides here
diff --git a/keyboards/abstract/ellipse/keymaps/abstractkb/keymap.c b/keyboards/abstract/ellipse/keymaps/abstractkb/keymap.c
deleted file mode 100644
index 4350423183..0000000000
--- a/keyboards/abstract/ellipse/keymaps/abstractkb/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
1/* Copyright 2019 AbstractKB
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#include QMK_KEYBOARD_H
17
18// Defines the keycodes used by our macros in process_record_user
19/*enum custom_keycodes {
20 MYKEY = SAFE_RANGE
21};*/
22
23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24 [0] = LAYOUT( /* Base */
25 KC_MUTE, RGB_TOG, BL_TOGG,
26 RGB_M_SW, RGB_M_P, BL_BRTG
27 )
28};
29
30bool encoder_update_user(uint8_t index, bool clockwise) {
31 if (index == 0) { /* First encoder */
32 if (clockwise) {
33 tap_code(KC_VOLU);
34 } else {
35 tap_code(KC_VOLD);
36 }
37 } else if (index == 1) { /* Second encoder */
38 if (clockwise) {
39 rgblight_increase_hue_noeeprom();
40 } else {
41 rgblight_decrease_hue_noeeprom();
42 }
43 } else if (index == 2) { /* Third encoder */
44 if (clockwise) {
45 backlight_increase();
46 } else {
47 backlight_decrease();
48 }
49 }
50 return true;
51}
diff --git a/keyboards/abstract/ellipse/keymaps/abstractkb/readme.md b/keyboards/abstract/ellipse/keymaps/abstractkb/readme.md
deleted file mode 100644
index 5db2eb647f..0000000000
--- a/keyboards/abstract/ellipse/keymaps/abstractkb/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
1# My keymap
2
3This was used for testing lights but will become my personal keymap \ No newline at end of file
diff --git a/keyboards/abstract/ellipse/keymaps/abstractkb/rules.mk b/keyboards/abstract/ellipse/keymaps/abstractkb/rules.mk
deleted file mode 100644
index 54a2685bf6..0000000000
--- a/keyboards/abstract/ellipse/keymaps/abstractkb/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1BACKLIGHT_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/acekeyboard/titan60/keymaps/utilitarian/keymap.c b/keyboards/acekeyboard/titan60/keymaps/utilitarian/keymap.c
deleted file mode 100644
index 99e6192794..0000000000
--- a/keyboards/acekeyboard/titan60/keymaps/utilitarian/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
1/*
2Copyright 2021 keebnewb
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*/
17#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_60_utilitarian(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
26 ),
27
28 [1] = LAYOUT_60_utilitarian(
29 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
30 RGB_TOG, RGB_RMOD,KC_UP, RGB_MOD, RGB_M_R, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, BS_SWAP,
31 KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
32 BL_TOGG, BL_DOWN, BL_UP, KC_CALC, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
34 ),
35};
diff --git a/keyboards/acheron/lasgweloth/keymaps/xoxotus/keymap.c b/keyboards/acheron/lasgweloth/keymaps/xoxotus/keymap.c
deleted file mode 100755
index 24ec0c9a36..0000000000
--- a/keyboards/acheron/lasgweloth/keymaps/xoxotus/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
1/*
2Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
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*/
17
18#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_60_ansi_split_bs_rshift(
22 QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_DEL,
23 KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_TILD,
24 KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
25 KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) ,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, MO(1) , KC_RCTL
27 ),
28 [1] = LAYOUT_60_ansi_split_bs_rshift(
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, KC_UP , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______
34 )
35};
diff --git a/keyboards/acheron/shark/beta/keymaps/gondolindrim/keymap.c b/keyboards/acheron/shark/beta/keymaps/gondolindrim/keymap.c
deleted file mode 100755
index ffd104c771..0000000000
--- a/keyboards/acheron/shark/beta/keymaps/gondolindrim/keymap.c
+++ /dev/null
@@ -1,264 +0,0 @@
1/*
2Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
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*/
17#include QMK_KEYBOARD_H
18
19#define MEDIA_KEY_DELAY 10
20#define ALT_TAB_DELAY 1000
21
22// Persistent encoder modes: the current encoder mode is written into EEPROM memory, and retrieved at the keyboard initialization. This means the current encoder mode is persistent even if the keyboard is reset or turned off
23#define PERSISTENT_ENCODER_MODES
24
25#define ENCODER_MODE_CHANGE_DELAY 500
26
27// Defining special keycodes
28enum keyboard_keycodes {
29 ECLICK = SAFE_RANGE, // Encoder click
30 ALTTABF , // ALT-TAB forward
31 ALTTABB , // ALT-TAB backwards
32 ALTTABC , // For alt-tab-click
33 ENCMUP , // Encoder mode up
34 ENCMDN , // Encoder mode down
35 NEW_SAFE_RANGE
36};
37
38// Creates sample keyevents and keyrecords to be used in the processing of the custom keycodes. Their time should be resampled everytime they are used; their cols and rows are set to be "impossible", that is, outside the normal key matrix bounds.
39const keyevent_t sample_pressed_keyevent = {
40 .key = (keypos_t){.row = 5, .col = 13},
41 .pressed = true,
42 .time = 0
43};
44
45keyrecord_t sample_pressed_keyrecord = {
46 .event = sample_pressed_keyevent
47};
48
49const keyevent_t sample_released_keyevent = {
50 .key = (keypos_t){.row = 5, .col = 13},
51 .pressed = false,
52 .time = 0
53};
54
55keyrecord_t sample_released_keyrecord = {
56 .event = sample_released_keyevent
57};
58
59// tap_process_record_user calls process_record_user with the pressed and released sample keyrecords with a delay of MEDIA_KEY_DELAY. The idea is to allow custom keycodes a simulation of a key press and release, allowing them to be treated in process_record_user. This, in turn, allows the custom keycodes to be used both in the encoder callback and the keyboard keymap.
60uint16_t temp_timer = 0;
61void tap_process_record_user(uint16_t keycode)
62{
63 temp_timer = timer_read();
64 sample_pressed_keyrecord.event.time = timer_read();
65 process_record_user( keycode, &sample_pressed_keyrecord );
66 while (timer_elapsed(temp_timer) < MEDIA_KEY_DELAY);
67 sample_released_keyrecord.event.time = timer_read();
68 process_record_user( keycode, &sample_released_keyrecord );
69}
70
71// process_special_keycode is a function that distinguishes between the native keycodes and the ones custom-defined here. Normal keycodes are tapped, while keycodes in the SAFE_RANGE - NEW_SAFE_RANGE interval are treated with tap_process_record_user.
72void process_special_keycode(uint16_t keycode) {
73 if (SAFE_RANGE <= keycode && keycode < NEW_SAFE_RANGE) tap_process_record_user(keycode);
74 else tap_code(keycode);
75}
76
77uint16_t encoder_click_delay = ENCODER_MODE_CHANGE_DELAY;
78
79uint8_t startup_color[3] = {0xFF,0xFF,0xFF};
80
81typedef struct _encoder_mode_t {
82 uint8_t indicator_color[3];
83 uint16_t clockwise_key[4];
84 uint16_t counterclockwise_key[4];
85 uint16_t clicked_key[4] ;
86 uint16_t hold_key;
87} encoder_mode_t;
88
89encoder_mode_t encoder_modes[] = {
90 { .indicator_color = {0x22,0x00,0xFF} , .clockwise_key = {KC_VOLU, KC_VOLU, ENCMUP, KC_VOLU}, .counterclockwise_key = {KC_VOLD, KC_VOLD, ENCMDN, KC_VOLD}, .clicked_key = {KC_MUTE, KC_MPLY, KC_MUTE, KC_MUTE}, .hold_key = ENCMUP },
91 { .indicator_color = {0x00,0x33,0xFF} , .clockwise_key = {KC_WH_D, KC_WH_D, ENCMUP, KC_WH_D}, .counterclockwise_key = {KC_WH_U, KC_WH_U, ENCMDN, KC_WH_U}, .clicked_key = {KC_BTN1, KC_BTN1, KC_BTN1, KC_BTN1}, .hold_key = ENCMUP },
92 { .indicator_color = {0xFF,0x88,0x00} , .clockwise_key = {ALTTABF, ALTTABF, ENCMUP, ALTTABF}, .counterclockwise_key = {ALTTABB, ALTTABB, ENCMDN, ALTTABB}, .clicked_key = {ALTTABC, ALTTABC, ALTTABC, ALTTABC}, .hold_key = ENCMUP }
93 // Insert your custom encoder mode here
94};
95
96#define NUM_ENCODER_MODES ARRAY_SIZE(encoder_modes)
97
98// This counter is used to track what encoder mode is being used at a certain time
99int encoder_mode_count = 0;
100
101
102#ifdef PERSISTENT_ENCODER_MODES
103typedef union {
104 uint32_t raw;
105 struct {
106 int user_encoder_mode_count;
107};
108} user_config_t;
109
110user_config_t user_config;
111#endif
112
113void set_indicator_colors(uint8_t color[3]){
114 rgblight_setrgb(color[0], color[1], color[2]);
115}
116
117// Board init: RGB indicator is set to startup_color
118void keyboard_pre_init_user(void){
119 set_indicator_colors(startup_color);
120};
121
122void keyboard_post_init_user(void){
123#ifdef PERSISTENT_ENCODER_MODES
124 user_config.raw = eeconfig_read_user();
125 encoder_mode_count = user_config.user_encoder_mode_count ;
126#else
127 encoder_mode_count = 0;
128#endif
129 set_indicator_colors(encoder_modes[ encoder_mode_count ].indicator_color);
130};
131
132const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
133 [0] = LAYOUT_ortho_4x12(
134 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, ECLICK ,
135 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
136 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
137 KC_LCTL, KC_LALT, KC_LGUI, _______, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
138 ),
139 [1] = LAYOUT_ortho_4x12(
140 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
141 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
142 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
143 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
144 ),
145 [2] = LAYOUT_ortho_4x12(
146 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
147 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
148 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
149 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
150 ),
151 [3] = LAYOUT_ortho_4x12(
152 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
153 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
154 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
155 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
156 )
157};
158
159// ------------------------------------------------------------------------------------------------
160
161bool is_alt_tab_active = false; // Flag to check if alt tab is active
162uint32_t alt_tab_timer = 0; // Time trigger for alt tab
163uint16_t mapped_code = 0;
164uint32_t held_keycode_timer = 0;
165
166int current_layer = 0 ; // Updated in layer_state_set_user each time a layer change is made
167
168void cycle_encoder_mode(bool forward){
169 if (forward) encoder_mode_count++ ; // Shifts encoder mode forward
170 else encoder_mode_count-- ;
171 if (encoder_mode_count == -1) encoder_mode_count = NUM_ENCODER_MODES - 1;
172 // Shifts encoder mode backward
173 encoder_mode_count = encoder_mode_count % NUM_ENCODER_MODES ; // This makes sure encoder_mode_count keeps cycling between 0,1,...,NUM_ENCODER_MODES and doesnt eventually overflow
174#ifdef PERSISTENT_ENCODER_MODES
175 user_config.user_encoder_mode_count = encoder_mode_count ;
176 eeconfig_update_user(user_config.raw);
177#endif
178 set_indicator_colors( encoder_modes[ encoder_mode_count ].indicator_color ); // Set indicator color to the corresponding defined color
179}
180
181bool encoder_update_user(uint8_t index, bool clockwise) {
182 process_special_keycode(clockwise ? encoder_modes[ encoder_mode_count ].clockwise_key[ current_layer ] : encoder_modes[ encoder_mode_count ].counterclockwise_key[ current_layer ]);
183 return false;
184}
185
186uint32_t held_click_timer = 0;
187bool is_click_held = false;
188bool is_shift_held = false;
189bool automatic_hold_cycle = false; // This flag registers if the encoder hold was automatically cycled
190
191// This bool records if LALT is pressed or not. Due to the automatic disabling of the ALT-TAB of the ALTTABS custom keystroke, the automatic disabling can un-register KC_LALT even when the LALT key is phisically pressed. Hence there needs to be two bools: one that keebs track of the ALT-TAB activity and one that keeps track of LALT so that the automatic disabling will not disable LALT if it is phisically pressed.
192bool is_lalt_pressed = false;
193
194bool process_record_user(uint16_t keycode, keyrecord_t *record) {
195 switch (keycode) {
196 case KC_LSFT:
197 case KC_RSFT:
198 if (record->event.pressed) is_shift_held = true;
199 else is_shift_held = false;
200 return true;
201 case ECLICK:
202 // Checks if the encoder has been pressed; if so, sets the corresponding flag and starts the corresponding timer
203 if (record->event.pressed) {
204 is_click_held = true;
205 held_click_timer = timer_read32();
206 // Checks if the encoder has been released: samples the duration of the encoder push; if this time was less than the encoder_click_delay, processes the clicked key. If it was bigger, processes the hold key. This behavior is adjusted using the ENCODER_MODE_CHANGE_DELAY macro. There is an exception made when automatic_hold_cycle is true; this means that the encoder push has been pressed enough to trigger a hold cycle. This case is taken care of in the housekeeping routine, where the held key is triggered and the timer reset. Hence the automatic_hold_cycle needs to be checked because without this check the function will trigger the clicked key after the hold cycle has been cycled more than once.
207 } else {
208 is_click_held = false;
209 if (timer_elapsed32(held_click_timer) < encoder_click_delay && !automatic_hold_cycle ) process_special_keycode( encoder_modes[ encoder_mode_count ].clicked_key[ current_layer ] ) ;
210 automatic_hold_cycle = false;
211 }
212 return true; // Skip all further processing of this key
213 case KC_LALT: // If this is not defined, if the encoder is activated in the alt-tab mode while the LALT key is pressed, the menu goes away.
214 if (record->event.pressed) is_lalt_pressed = true;
215 else is_lalt_pressed = false;
216 return true;
217 case ENCMUP:
218 case ENCMDN:
219 if (record->event.pressed) cycle_encoder_mode(keycode == ENCMUP); // If keycode == ENCMUP the expression returns true and the cycle function cycles the modes forward. If not, then cycles backwards.
220 return false;
221 case ALTTABF:
222 case ALTTABB:
223 if (record->event.pressed) {
224 if (!is_alt_tab_active) {
225 is_alt_tab_active = true;
226 register_code(KC_LALT);
227
228 }
229 tap_code16(keycode == ALTTABF ? KC_TAB : S(KC_TAB)); // Due to S(KC_TAB), the 16-bit tap_code16 is needed.
230 alt_tab_timer = timer_read32();
231 }
232 return true;
233 case ALTTABC:
234 if (record->event.pressed) {
235 if (is_alt_tab_active) {
236 if (!is_lalt_pressed) unregister_code(KC_LALT);
237 is_alt_tab_active = false;
238 }
239 }
240 return false;
241 default:
242 return true; // Process all other keycodes normally
243 }
244}
245
246void housekeeping_task_user(void) {
247 if (is_alt_tab_active) {
248 if (is_lalt_pressed) alt_tab_timer = timer_read32();
249 else if (timer_elapsed32(alt_tab_timer) > ALT_TAB_DELAY) {
250 unregister_code(KC_LALT);
251 is_alt_tab_active = false;
252 }
253 }
254/* This piece of the code checks for the encoder push timer. If the encoder push interval was less than encoder_click_delay then it is automatically processed by process_record_user by triggering the current mode's click key. However, if the encoder push is held for more time than the defined delay, then the encoder hold "cycles", that is, gets activated and the timer needs to be reset. This does three things:
255- (1) Sets the automatic_hold_cycle flag which prevents process_record_user from triggering the click key when the push is released
256- (2) Processes the current mode's hold key in process_record_user
257- (3) Resets the click timer
258*/
259 if (is_click_held && timer_elapsed32(held_click_timer) > encoder_click_delay ){
260 automatic_hold_cycle = true;
261 process_special_keycode( encoder_modes[ encoder_mode_count ].hold_key );
262 held_click_timer = timer_read32();
263 }
264}
diff --git a/keyboards/acheron/shark/beta/keymaps/gondolindrim/rules.mk b/keyboards/acheron/shark/beta/keymaps/gondolindrim/rules.mk
deleted file mode 100644
index 1e5b99807c..0000000000
--- a/keyboards/acheron/shark/beta/keymaps/gondolindrim/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1VIA_ENABLE = yes
diff --git a/keyboards/adelheid/keymaps/floookay/keymap.c b/keyboards/adelheid/keymaps/floookay/keymap.c
deleted file mode 100644
index 3abe75e023..0000000000
--- a/keyboards/adelheid/keymaps/floookay/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
1/* Copyright 2020 floookay
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#include QMK_KEYBOARD_H
17
18enum adelheid_layers {
19 _BASE,
20 _SECONDARY
21};
22
23// tap dance declarations
24enum {
25 _TD_CTGU = 0,
26 _TD_PGUP = 1,
27 _TD_PGDN = 2,
28 _TD_HOME = 3,
29 _TD_END = 4,
30 _TD_RSHC = 5,
31 _TD_PSCR = 6
32};
33
34#define MO_SEC MO(_SECONDARY)
35#define TD_CTGU TD(_TD_CTGU)
36#define TD_PGUP TD(_TD_PGUP)
37#define TD_PGDN TD(_TD_PGDN)
38#define TD_HOME TD(_TD_HOME)
39#define TD_END TD(_TD_END)
40#define TD_RSHC TD(_TD_RSHC)
41#define TD_PSCR TD(_TD_PSCR)
42
43const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
44 [_BASE] = LAYOUT(
45 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, TD_PGUP,
46
47 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, TD_HOME,
48 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, TD_END,
49 TD_CTGU, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, TD_PGDN,
50 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
51 KC_LCTL, KC_LALT, KC_SPC, MO_SEC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
52 ),
53
54 [_SECONDARY] = LAYOUT(
55 KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, TD_PSCR, KC_VOLU,
56
57 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS, BL_STEP,
58 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, KC_DEL, KC_MUTE,
59 _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, KC_VOLD,
60 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TD_RSHC, KC_MPLY,
61 _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MNXT
62 )
63};
64
65
66// Tap Dance Definitions
67tap_dance_action_t tap_dance_actions[] = {
68 // Tap once for first parameter, twice for second
69 [_TD_CTGU] = ACTION_TAP_DANCE_DOUBLE(KC_LCTL, KC_LGUI),
70 [_TD_PGUP] = ACTION_TAP_DANCE_DOUBLE(KC_PGUP, LCTL(KC_PGUP)),
71 [_TD_PGDN] = ACTION_TAP_DANCE_DOUBLE(KC_PGDN, LCTL(KC_PGDN)),
72 [_TD_HOME] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, LCTL(KC_HOME)),
73 [_TD_END] = ACTION_TAP_DANCE_DOUBLE(KC_END, LCTL(KC_END)),
74 [_TD_RSHC] = ACTION_TAP_DANCE_DOUBLE(KC_RSFT, KC_CAPS),
75 [_TD_PSCR] = ACTION_TAP_DANCE_DOUBLE(KC_PSCR, LSFT(LGUI(KC_S))) // screenshot tool tap dance
76};
diff --git a/keyboards/adelheid/keymaps/floookay/readme.md b/keyboards/adelheid/keymaps/floookay/readme.md
deleted file mode 100644
index a9d624222e..0000000000
--- a/keyboards/adelheid/keymaps/floookay/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
1# The default keymap for the Adelheid
2
3- ANSI QWERTY
4- split backspace
5- ctrl on caps lock with super on tap dance
6- caps lock on fn + right shift tap dance
7
8![adelheid_layout](https://gist.githubusercontent.com/floookay/7bf6511a8d84804d32de4d7bbe3bd0fb/raw/dffd622a762463f341466ffecefad3b31ad3ee4f/layout.png)
9View in [Keyboard-Layout-Editor](http://www.keyboard-layout-editor.com/#/gists/4262535adb5ac81a913edbebc4de8226).
diff --git a/keyboards/adelheid/keymaps/floookay/rules.mk b/keyboards/adelheid/keymaps/floookay/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/adelheid/keymaps/floookay/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1TAP_DANCE_ENABLE = yes
diff --git a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/animation_frames.h b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/animation_frames.h
deleted file mode 100644
index 062448b754..0000000000
--- a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/animation_frames.h
+++ /dev/null
@@ -1,392 +0,0 @@
1// Copyright 2022 Arturo Avila (@ADPenrose)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5#ifdef OLED_ENABLE
6
7// Enable OLED bitmpa compression selectively.
8#define USE_OLED_BITMAP_COMPRESSION
9
10#define NUM_IDLE_FRAMES 5
11#define NUM_TAP_FRAMES 2
12#define NUM_OLED_BYTES 512
13
14#ifdef USE_OLED_BITMAP_COMPRESSION
15
16static const char PROGMEM idle_1_block_map[] = { //IDLE_1 and IDLE_2 flipped
17 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
18 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0xf0, 0xb0, 0xc1, 0x07,
19 0xf0, 0xcf, 0x00, 0x1c, 0x00, 0xb8, 0x8f, 0x3f, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00,
20 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
21};
22
23static const char PROGMEM idle_2_block_map[] = { //IDLE_3 flipped
24 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
25 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xf0, 0xd8, 0xe0, 0x03,
26 0xf0, 0x6f, 0x00, 0x3e, 0x00, 0xf8, 0xc7, 0x7f, 0x00, 0x98, 0x7f, 0x00, 0x00, 0xf0, 0x03, 0x00,
27 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
28};
29
30static const char PROGMEM idle_3_block_map[] = { //IDLE_4 flipped
31 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
32 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0xf0, 0xb0, 0xc1, 0x07,
33 0xf0, 0xcf, 0x00, 0x7c, 0x00, 0xb8, 0x8f, 0xff, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00,
34 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
35};
36
37static const char PROGMEM idle_4_block_map[] = { //IDLE_5 flipped
38 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
39 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xf0, 0xb0, 0xc1, 0x07,
40 0xf0, 0xcf, 0x00, 0x3c, 0x00, 0xb8, 0x8f, 0x7f, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00,
41 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
42};
43
44static const char PROGMEM tap_1_block_map[] = { //TAP_1 flipped
45 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
46 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x80, 0xff, 0xc1, 0x07,
47 0x00, 0xce, 0x00, 0x7c, 0x00, 0xb8, 0x8d, 0xff, 0x00, 0x98, 0xff, 0x1f, 0xc0, 0xff, 0xff, 0x1f,
48 0x00, 0x3f, 0xfe, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
49};
50
51static const char PROGMEM tap_2_block_map[] = { //TAP_2 flipped
52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
53 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xde, 0xff, 0xff, 0x01, 0xfc, 0x80, 0xc1, 0x07,
54 0xf1, 0xcf, 0x00, 0x7c, 0x00, 0xb8, 0x8d, 0xff, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x80, 0x3f, 0x00,
55 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
56};
57
58static const char PROGMEM idle_1_block_list[] = { //IDLE_1 and IDLE_2 flipped
59 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02,
60 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0xe0, 0x18, 0x06, 0x01, 0x78, 0x78,
61 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x30,
62 0xc8, 0x01, 0x3e, 0xc0, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10,
63 0x10, 0x08, 0x07, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x01, 0x01,
64 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0
65};
66
67static const char PROGMEM idle_2_block_list[] = { //IDLE_3 flipped
68 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x06, 0x04,
69 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0xe0, 0x18, 0x06, 0x01, 0x78,
70 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0,
71 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80,
72 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04,
73 0x02, 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01,
74 0x1e, 0xe0
75};
76
77static const char PROGMEM idle_3_block_list[] = { //IDLE_4 flipped
78 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04,
79 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0xe0, 0x18, 0x06, 0x01,
80 0x78, 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c,
81 0xe0, 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18,
82 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10,
83 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f,
84 0xe0, 0x01, 0x1e, 0xe0
85};
86
87static const char PROGMEM idle_4_block_list[] = { //IDLE_5 flipped
88 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04,
89 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xe4, 0x18, 0xe0, 0x18, 0x06, 0x01, 0x78,
90 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0,
91 0x30, 0xc8, 0x01, 0x1e, 0x60, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, 0x40,
92 0x20, 0x10, 0x10, 0x10, 0x08, 0x07, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02,
93 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e,
94 0xe0
95};
96
97static const char PROGMEM tap_1_block_list[] = { //TAP_1 flipped
98 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x42, 0x44,
99 0x84, 0x88, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x01, 0x0e, 0xf0, 0x20,
100 0x26, 0x26, 0x29, 0x10, 0xd5, 0xce, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x1c, 0xe0, 0x30, 0xc8,
101 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0x02, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10,
102 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x84, 0xc2, 0xc1,
103 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfd, 0xfd, 0x01, 0x07, 0x78,
104 0x80, 0x38, 0xf8, 0xf8, 0xf1, 0xe1, 0xc3, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x03, 0x03,
105 0x07, 0x07, 0x07, 0x78, 0x81, 0x07, 0x07, 0x03, 0x03, 0x01, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e,
106 0xe0
107};
108
109static const char PROGMEM tap_2_block_list[] = { //TAP_2 flipped
110 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x7e, 0xfe, 0xfe, 0xfe, 0x07, 0xf9, 0x01,
111 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18,
112 0x01, 0x01, 0xe0, 0x18, 0x06, 0x01, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x0f, 0x03, 0x04,
113 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0,
114 0x03, 0x02, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0x0f, 0x70, 0x80,
115 0x81, 0x01, 0x31, 0x32, 0x8a, 0x24, 0x86, 0x79, 0x07, 0x78, 0x81, 0x01, 0x01, 0x01, 0x01, 0x07,
116 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0
117};
118
119// idle_1 and idle_2 are identical, so share them and save some space
120const char* idle_frames[NUM_IDLE_FRAMES] = {
121 idle_1_block_list,
122 idle_1_block_list,
123 idle_2_block_list,
124 idle_3_block_list,
125 idle_4_block_list
126};
127
128const char* tap_frames[NUM_TAP_FRAMES] = {
129 tap_1_block_list,
130 tap_2_block_list
131};
132
133// idle_1 and idle_2 are identical, so save some space
134const char* idle_block_map[NUM_IDLE_FRAMES] = {
135 idle_1_block_map,
136 idle_1_block_map,
137 idle_2_block_map,
138 idle_3_block_map,
139 idle_4_block_map
140};
141
142const char* tap_block_map[NUM_TAP_FRAMES] = {
143 tap_1_block_map,
144 tap_2_block_map
145};
146
147#else
148
149static const char PROGMEM idle_frames[NUM_IDLE_FRAMES][NUM_OLED_BYTES] = {
150 { // IDLE 1 flipped
151 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
152 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
153 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
154 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
155 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
156 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
157 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
158 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
159 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
160 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
161 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
162 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
163 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, 0x08,
164 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
165 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0,
166 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
167 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
168 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00,
169 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
170 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00,
171 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80,
172 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
173 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07,
174 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
175 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
176 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
177 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
179 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
180 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
181 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
182 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
183 },
184 { //IDLE 2 flipped
185 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
186 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
187 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
188 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
189 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
190 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
191 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
192 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
193 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
194 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
195 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
196 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
197 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, 0x08,
198 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
199 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0,
200 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
201 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
202 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00,
203 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
204 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00,
205 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80,
206 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07,
208 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
209 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
210 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
211 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
212 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
213 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
214 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
215 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
216 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
217 },
218 { //IDLE 3 flipped
219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
221 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
222 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
223 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
224 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
225 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
227 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
228 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
229 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
230 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
231 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x06, 0x04, 0x08, 0x08, 0x04,
232 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
233 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, 0xc0,
234 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
235 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x30, 0xc8, 0x00,
236 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, 0x00,
237 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x03, 0xc2,
238 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0x00,
239 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x83,
240 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
241 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07,
242 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
243 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
244 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
245 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
246 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
247 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
248 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
249 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
250 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
251 },
252 { //IDLE 4 flipped
253 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
254 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
255 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
256 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
257 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
258 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
259 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
260 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
261 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
262 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
263 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
264 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
265 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08,
266 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
267 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0,
268 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
269 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
270 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00,
271 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
272 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03,
273 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80,
274 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
275 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07,
276 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
277 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
278 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
279 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
280 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
281 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
282 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
283 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
284 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
285 },
286 { //IDLE 5 flipped
287 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
288 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
289 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
290 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
291 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
292 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
293 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
294 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
295 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
296 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
297 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
298 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
299 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08,
300 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xe4, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
301 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0,
302 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
303 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x60, 0x80, 0x00, 0x00,
305 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
306 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x10, 0x08, 0x07, 0x00,
307 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80,
308 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
309 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07,
310 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
311 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
312 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
313 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
314 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
315 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
316 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
317 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
318 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
319 }
320 };
321static const char PROGMEM tap_frames[NUM_TAP_FRAMES][NUM_OLED_BYTES] = {
322 { //Tap 1 flipped
323 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
325 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
326 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
327 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
328 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
329 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
331 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
332 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
333 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
334 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
335 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x42, 0x44, 0x84, 0x88, 0x08,
336 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0xf0, 0x20, 0x26, 0x26, 0x29, 0x10, 0xd5,
338 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
339 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
340 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00,
341 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
342 0x02, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03,
343 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80,
344 0x80, 0x40, 0x20, 0x10, 0x08, 0x84, 0xc2, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00,
345 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfd, 0xfd, 0x01, 0x07,
346 0x78, 0x80, 0x38, 0xf8, 0xf8, 0xf1, 0xe1, 0xc3, 0x83, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00,
347 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x00, 0x00,
348 0x00, 0x07, 0x78, 0x81, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
349 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
350 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
351 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
352 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
353 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
354 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
355 },
356 { //Tap 2 flipped
357 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
358 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
359 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
360 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
361 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
362 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
363 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
364 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
365 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
366 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
367 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
368 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
369 0x00, 0x7e, 0xfe, 0xfe, 0xfe, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08,
370 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
371 0x00, 0x00, 0x01, 0x01, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
372 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
373 0x0f, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
374 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00,
375 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
376 0x02, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03,
377 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0x80,
378 0x81, 0x01, 0x31, 0x32, 0x8a, 0x24, 0x86, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
379 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
380 0x78, 0x81, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
381 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
382 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
383 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
384 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
385 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
386 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
387 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
388 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
389 },
390 };
391#endif //USE_BITMAP_COMPRESSION
392#endif //OLED_ENABLE
diff --git a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/animation_process.h b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/animation_process.h
deleted file mode 100644
index 4280574a46..0000000000
--- a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/animation_process.h
+++ /dev/null
@@ -1,97 +0,0 @@
1// Copyright 2022 Arturo Avila (@ADPenrose)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5#include "animation_frames.h"
6
7#ifdef OLED_ENABLE
8#define IDLE_FRAME_DURATION 200 // Idle animation iteration rate in ms
9
10oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
11
12uint32_t anim_timer = 0;
13uint32_t anim_sleep = 0;
14uint8_t current_idle_frame = 0;
15
16bool tap_anim = false;
17bool tap_anim_toggle = false;
18
19
20// Decompress and write a precompressed bitmap frame to the OLED.
21// Documentation and python compression script available at:
22// https://github.com/nullbitsco/squeez-o
23#ifdef USE_OLED_BITMAP_COMPRESSION
24static void oled_write_compressed_P(const char* input_block_map, const char* input_block_list) {
25 uint16_t block_index = 0;
26 for (uint16_t i=0; i<NUM_OLED_BYTES; i++) {
27 uint8_t bit = i%8;
28 uint8_t map_index = i/8;
29 uint8_t _block_map = (uint8_t)pgm_read_byte_near(input_block_map + map_index);
30 uint8_t nonzero_byte = (_block_map & (1 << bit));
31 if (nonzero_byte) {
32 const char data = (const char)pgm_read_byte_near(input_block_list + block_index++);
33 oled_write_raw_byte(data, i);
34 } else {
35 const char data = (const char)0x00;
36 oled_write_raw_byte(data, i);
37 }
38 }
39}
40#endif
41
42static void render_anim(void) {
43 // Idle animation
44 void animation_phase(void) {
45 if (!tap_anim) {
46 current_idle_frame = (current_idle_frame + 1) % NUM_IDLE_FRAMES;
47 uint8_t idx = abs((NUM_IDLE_FRAMES - 1) - current_idle_frame);
48 #ifdef USE_OLED_BITMAP_COMPRESSION
49 oled_write_compressed_P(idle_block_map[idx], idle_frames[idx]);
50 #else
51 oled_write_raw_P(idle_frames[idx], NUM_OLED_BYTES);
52 #endif
53 }
54 }
55
56 // Idle behaviour
57 if (get_current_wpm() != 000) { // prevent sleep
58 oled_on();
59 if (timer_elapsed32(anim_timer) > IDLE_FRAME_DURATION) {
60 anim_timer = timer_read32();
61 animation_phase();
62 }
63 anim_sleep = timer_read32();
64 } else { // Turn off screen when timer threshold elapsed or reset time since last input
65 if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
66 oled_off();
67 } else {
68 if (timer_elapsed32(anim_timer) > IDLE_FRAME_DURATION) {
69 anim_timer = timer_read32();
70 animation_phase();
71 }
72 }
73 }
74}
75#endif
76
77// Animate tap
78bool process_record_user(uint16_t keycode, keyrecord_t *record) {
79 #ifdef OLED_ENABLE
80 // Check if non-mod
81 if ((keycode >= KC_TAB && keycode <= KC_SLASH) || // Tab - Slash (Symbols, Punctuation, Space)
82 (keycode >= KC_KP_SLASH && keycode <= KC_KP_COMMA) || // Keypad slash - Keypad Dot
83 (keycode >= KC_F1 && keycode <= KC_F12)) { // F1 - F12
84 if (record->event.pressed) {
85 // Display tap frames
86 tap_anim_toggle = !tap_anim_toggle;
87 #ifdef USE_OLED_BITMAP_COMPRESSION
88 oled_write_compressed_P(tap_block_map[tap_anim_toggle], tap_frames[tap_anim_toggle]);
89 #else
90 oled_write_raw_P(tap_frames[tap_anim_toggle], NUM_OLED_BYTES);
91 #endif
92 }
93 }
94 #endif
95
96 return true;
97}
diff --git a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/config.h b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/config.h
deleted file mode 100644
index 8667314cd4..0000000000
--- a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/config.h
+++ /dev/null
@@ -1,17 +0,0 @@
1// Copyright 2022 Arturo Avila (@ADPenrose)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6#ifdef AUDIO_ENABLE
7# define NO_MUSIC_MODE
8#endif
9
10#ifdef OLED_ENABLE
11# define OLED_TIMEOUT 120000
12#endif
13
14#undef LOCKING_SUPPORT_ENABLE
15#undef LOCKING_RESYNC_ENABLE
16#define NO_ACTION_ONESHOT
17#define LAYER_STATE_8BIT
diff --git a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/keymap.c b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/keymap.c
deleted file mode 100644
index f9ccfbe769..0000000000
--- a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/keymap.c
+++ /dev/null
@@ -1,177 +0,0 @@
1// Copyright 2022 Arturo Avila (@ADPenrose), Christopher Courtney/Drashna Jael're (@drashna)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5#include "animation_process.h"
6
7/* Structure that helps store settings in memory and write to the EEPROM: */
8typedef union {
9 uint32_t raw;
10 struct {
11 bool split_zero :1;
12 bool split_enter :1;
13 bool split_plus :1;
14 };
15} via_layout_t;
16
17via_layout_t via_layouts;
18
19/* Keymap */
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_all(
22 MO(1), MO(2), MO(3), CK_TOGG,
23 KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
24 KC_P7, KC_P8, KC_P9, KC_PPLS,
25 KC_P4, KC_P5, KC_P6, KC_PPLS,
26 KC_P1, KC_P2, KC_P3, KC_PENT,
27 KC_MUTE, KC_P0, KC_P0, KC_PDOT, KC_PENT
28 ),
29 [1] = LAYOUT_all(
30 KC_TRNS, CK_DOWN, CK_UP, CK_RST,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
36 ),
37 [2] = LAYOUT_all(
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
44 ),
45 [3] = LAYOUT_all(
46 QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
51 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
52 )
53};
54
55#if defined(ENCODER_MAP_ENABLE)
56const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
57 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
58 [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) },
59 [2] = { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
60 [3] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
61};
62#endif
63
64/* Setting layout options and debuggin text */
65void via_set_layout_options_kb(uint32_t value) {
66 via_layouts.raw = value;
67 #ifdef CONSOLE_ENABLE
68 if (via_layouts.split_zero && via_layouts.split_enter && via_layouts.split_plus){
69 xprintf("All three layouts are active with a value of: %d\n", value);
70 } else if (!(via_layouts.split_zero) && via_layouts.split_enter && via_layouts.split_plus){
71 xprintf("SE and SP layouts are active with a value of: %d\n", value);
72 } else if (via_layouts.split_zero && !(via_layouts.split_enter) && via_layouts.split_plus){
73 xprintf("SZ and SP layouts are active with a value of: %d\n", value);
74 } else if (!(via_layouts.split_zero) && !(via_layouts.split_enter) && via_layouts.split_plus){
75 xprintf("SP is the only layout active with a value of: %d\n", value);
76 } else if (via_layouts.split_zero && via_layouts.split_enter && !(via_layouts.split_plus)){
77 xprintf("SE and SZ layouts are active with a value of: %d\n", value);
78 } else if (!(via_layouts.split_zero) && via_layouts.split_enter && !(via_layouts.split_plus)) {
79 xprintf("SE is the only layout active with a value of: %d\n", value);
80 } else if (via_layouts.split_zero && !(via_layouts.split_enter) && !(via_layouts.split_plus)){
81 xprintf("SZ is the only layout active with a value of: %d\n", value);
82 } else {
83 xprintf("The base layout is active with a value of: %d\n", value);
84 }
85 #endif
86}
87
88/* Turing LEDs on/off depending on the layout selected on VIA */
89bool rgb_matrix_indicators_user(void){
90 if (via_layouts.split_zero && via_layouts.split_enter && via_layouts.split_plus){
91 rgb_matrix_set_color(12, 0, 0, 0);
92 rgb_matrix_set_color(21, 0, 0, 0);
93 rgb_matrix_set_color(23, 0, 0, 0);
94 } else if (!(via_layouts.split_zero) && via_layouts.split_enter && via_layouts.split_plus){
95 rgb_matrix_set_color(12, 0, 0, 0);
96 rgb_matrix_set_color(21, 0, 0, 0);
97 rgb_matrix_set_color(22, 0, 0, 0);
98 rgb_matrix_set_color(24, 0, 0, 0);
99 } else if (via_layouts.split_zero && !(via_layouts.split_enter) && via_layouts.split_plus){
100 rgb_matrix_set_color(12, 0, 0, 0);
101 rgb_matrix_set_color(20, 0, 0, 0);
102 rgb_matrix_set_color(23, 0, 0, 0);
103 rgb_matrix_set_color(26, 0, 0, 0);
104 } else if (!(via_layouts.split_zero) && !(via_layouts.split_enter) && via_layouts.split_plus){
105 rgb_matrix_set_color(12, 0, 0, 0);
106 rgb_matrix_set_color(20, 0, 0, 0);
107 rgb_matrix_set_color(22, 0, 0, 0);
108 rgb_matrix_set_color(24, 0, 0, 0);
109 rgb_matrix_set_color(26, 0, 0, 0);
110 } else if (via_layouts.split_zero && via_layouts.split_enter && !(via_layouts.split_plus)){
111 rgb_matrix_set_color(11, 0, 0, 0);
112 rgb_matrix_set_color(16, 0, 0, 0);
113 rgb_matrix_set_color(21, 0, 0, 0);
114 rgb_matrix_set_color(23, 0, 0, 0);
115 } else if (!(via_layouts.split_zero) && via_layouts.split_enter && !(via_layouts.split_plus)) {
116 rgb_matrix_set_color(11, 0, 0, 0);
117 rgb_matrix_set_color(16, 0, 0, 0);
118 rgb_matrix_set_color(21, 0, 0, 0);
119 rgb_matrix_set_color(22, 0, 0, 0);
120 rgb_matrix_set_color(24, 0, 0, 0);
121 } else if (via_layouts.split_zero && !(via_layouts.split_enter) && !(via_layouts.split_plus)){
122 rgb_matrix_set_color(11, 0, 0, 0);
123 rgb_matrix_set_color(16, 0, 0, 0);
124 rgb_matrix_set_color(20, 0, 0, 0);
125 rgb_matrix_set_color(23, 0, 0, 0);
126 rgb_matrix_set_color(26, 0, 0, 0);
127 } else {
128 rgb_matrix_set_color(11, 0, 0, 0);
129 rgb_matrix_set_color(16, 0, 0, 0);
130 rgb_matrix_set_color(20, 0, 0, 0);
131 rgb_matrix_set_color(22, 0, 0, 0);
132 rgb_matrix_set_color(24, 0, 0, 0);
133 rgb_matrix_set_color(26, 0, 0, 0);
134 }
135 return false;
136}
137
138/* OLED stuff */
139#ifdef OLED_ENABLE
140bool oled_task_user(void) {
141 render_anim();
142
143 // WPM render
144 oled_set_cursor(1, 0);
145 oled_write_P(PSTR(">"), false);
146 oled_write(get_u8_str(get_current_wpm(), '0'), false);
147
148 // Host Keyboard LED Status
149 led_t led_state = host_keyboard_led_state();
150 oled_set_cursor(0,14);
151 oled_write_P(led_state.caps_lock ? PSTR("CPSLK") :" ", true);
152 oled_set_cursor(0,15);
153 oled_write_P(led_state.num_lock ? PSTR("NUMLK") :" ", true);
154
155 return false;
156}
157
158/* WPM calculation considerations */
159bool wpm_keycode_user(uint16_t keycode) {
160 if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
161 (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) ||
162 (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) {
163 keycode = keycode & 0xFF;
164 } else if (keycode > 0xFF) {
165 keycode = 0;
166 }
167
168 // Include keys in WPM calculation
169 if ((keycode >= KC_TAB && keycode <= KC_SLASH) || // Tab - Slash (Symbols, Punctuation, Space)
170 (keycode >= KC_KP_SLASH && keycode <= KC_KP_COMMA) || // Keypad numbers - Keypad Dot
171 (keycode >= KC_F1 && keycode <= KC_F12)) { // F1 - F12
172 return true;
173 }
174
175 return false;
176}
177#endif
diff --git a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/readme.md b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/readme.md
deleted file mode 100644
index 5ae1b2280e..0000000000
--- a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/readme.md
+++ /dev/null
@@ -1,19 +0,0 @@
1# The Bongo Cat VIA-compatible keymap for the AkemiPad
2
3# Features
4- Audio Click capabilitiy.
5- RGB Matrix Lighting (cycles left-right and up-down).
6- LEDs turn on and off depending on the layout selected on the VIA UI.
7- Encoder Map feature.
8- Bongo Cat animation with WPM counter and Caps Lock/Num Lock indicators.
9
10This keymap is optimized for a numpad and can fit the RGB matrix (with
11very few animations due to AVR constraints), the encoder map, the audio
12click feature and the display of the OLED animations. This was possible
13thanks to the [squeez-o](https://github.com/nullbitsco/squeez-o) compression tool.
14
15![Bongo Cat](https://i.imgur.com/Ty0qKnV.gif)
16
17___
18
19###### *This keymap is an adaptation designed to work with the AkemiPad. The reference keymap used was created for the Nibble keyboard, and you can check it [here](https://github.com/qmk/qmk_firmware/tree/master/keyboards/nullbitsco/nibble/keymaps/oled_bongocat).*
diff --git a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/rules.mk b/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/rules.mk
deleted file mode 100644
index d313f3a4f9..0000000000
--- a/keyboards/adpenrose/akemipad/keymaps/oled_bongocat/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
3SPACE_CADET_ENABLE = no
4GRAVE_ESC_ENABLE = no
5MAGIC_ENABLE = no
6ENCODER_MAP_ENABLE = yes
7OLED_ENABLE = yes
8WPM_ENABLE = yes
diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h
deleted file mode 100644
index 4a97accdde..0000000000
--- a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h
+++ /dev/null
@@ -1,405 +0,0 @@
1/* Copyright 2022 adpenrose
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#ifdef OLED_ENABLE
19
20// Enable OLED bitmpa compression selectively.
21#define USE_OLED_BITMAP_COMPRESSION
22
23#define NUM_IDLE_FRAMES 5
24#define NUM_TAP_FRAMES 2
25#define NUM_OLED_BYTES 512
26
27#ifdef USE_OLED_BITMAP_COMPRESSION
28
29static const char PROGMEM idle_1_block_map[] = { //IDLE_1 and IDLE_2 flipped
30 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
31 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0xf0, 0xb0, 0xc1, 0x07,
32 0xf0, 0xcf, 0x00, 0x1c, 0x00, 0xb8, 0x8f, 0x3f, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00,
33 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
34};
35
36static const char PROGMEM idle_2_block_map[] = { //IDLE_3 flipped
37 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
38 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xf0, 0xd8, 0xe0, 0x03,
39 0xf0, 0x6f, 0x00, 0x3e, 0x00, 0xf8, 0xc7, 0x7f, 0x00, 0x98, 0x7f, 0x00, 0x00, 0xf0, 0x03, 0x00,
40 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
41};
42
43static const char PROGMEM idle_3_block_map[] = { //IDLE_4 flipped
44 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
45 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0xf0, 0xb0, 0xc1, 0x07,
46 0xf0, 0xcf, 0x00, 0x7c, 0x00, 0xb8, 0x8f, 0xff, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00,
47 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
48};
49
50static const char PROGMEM idle_4_block_map[] = { //IDLE_5 flipped
51 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
52 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xf0, 0xb0, 0xc1, 0x07,
53 0xf0, 0xcf, 0x00, 0x3c, 0x00, 0xb8, 0x8f, 0x7f, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00,
54 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
55};
56
57static const char PROGMEM tap_1_block_map[] = { //TAP_1 flipped
58 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
59 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x80, 0xff, 0xc1, 0x07,
60 0x00, 0xce, 0x00, 0x7c, 0x00, 0xb8, 0x8d, 0xff, 0x00, 0x98, 0xff, 0x1f, 0xc0, 0xff, 0xff, 0x1f,
61 0x00, 0x3f, 0xfe, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
62};
63
64static const char PROGMEM tap_2_block_map[] = { //TAP_2 flipped
65 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
66 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xde, 0xff, 0xff, 0x01, 0xfc, 0x80, 0xc1, 0x07,
67 0xf1, 0xcf, 0x00, 0x7c, 0x00, 0xb8, 0x8d, 0xff, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x80, 0x3f, 0x00,
68 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01
69};
70
71static const char PROGMEM idle_1_block_list[] = { //IDLE_1 and IDLE_2 flipped
72 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02,
73 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0xe0, 0x18, 0x06, 0x01, 0x78, 0x78,
74 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x30,
75 0xc8, 0x01, 0x3e, 0xc0, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10,
76 0x10, 0x08, 0x07, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x01, 0x01,
77 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0
78};
79
80static const char PROGMEM idle_2_block_list[] = { //IDLE_3 flipped
81 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x06, 0x04,
82 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0xe0, 0x18, 0x06, 0x01, 0x78,
83 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0,
84 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80,
85 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04,
86 0x02, 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01,
87 0x1e, 0xe0
88};
89
90static const char PROGMEM idle_3_block_list[] = { //IDLE_4 flipped
91 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04,
92 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0xe0, 0x18, 0x06, 0x01,
93 0x78, 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c,
94 0xe0, 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18,
95 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10,
96 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f,
97 0xe0, 0x01, 0x1e, 0xe0
98};
99
100static const char PROGMEM idle_4_block_list[] = { //IDLE_5 flipped
101 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04,
102 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xe4, 0x18, 0xe0, 0x18, 0x06, 0x01, 0x78,
103 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0,
104 0x30, 0xc8, 0x01, 0x1e, 0x60, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, 0x40,
105 0x20, 0x10, 0x10, 0x10, 0x08, 0x07, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02,
106 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e,
107 0xe0
108};
109
110static const char PROGMEM tap_1_block_list[] = { //TAP_1 flipped
111 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x42, 0x44,
112 0x84, 0x88, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x01, 0x0e, 0xf0, 0x20,
113 0x26, 0x26, 0x29, 0x10, 0xd5, 0xce, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x1c, 0xe0, 0x30, 0xc8,
114 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0x02, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10,
115 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x84, 0xc2, 0xc1,
116 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfd, 0xfd, 0x01, 0x07, 0x78,
117 0x80, 0x38, 0xf8, 0xf8, 0xf1, 0xe1, 0xc3, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x03, 0x03,
118 0x07, 0x07, 0x07, 0x78, 0x81, 0x07, 0x07, 0x03, 0x03, 0x01, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e,
119 0xe0
120};
121
122static const char PROGMEM tap_2_block_list[] = { //TAP_2 flipped
123 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x7e, 0xfe, 0xfe, 0xfe, 0x07, 0xf9, 0x01,
124 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18,
125 0x01, 0x01, 0xe0, 0x18, 0x06, 0x01, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x0f, 0x03, 0x04,
126 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0,
127 0x03, 0x02, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0x0f, 0x70, 0x80,
128 0x81, 0x01, 0x31, 0x32, 0x8a, 0x24, 0x86, 0x79, 0x07, 0x78, 0x81, 0x01, 0x01, 0x01, 0x01, 0x07,
129 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0
130};
131
132// idle_1 and idle_2 are identical, so share them and save some space
133const char* idle_frames[NUM_IDLE_FRAMES] = {
134 idle_1_block_list,
135 idle_1_block_list,
136 idle_2_block_list,
137 idle_3_block_list,
138 idle_4_block_list
139};
140
141const char* tap_frames[NUM_TAP_FRAMES] = {
142 tap_1_block_list,
143 tap_2_block_list
144};
145
146// idle_1 and idle_2 are identical, so save some space
147const char* idle_block_map[NUM_IDLE_FRAMES] = {
148 idle_1_block_map,
149 idle_1_block_map,
150 idle_2_block_map,
151 idle_3_block_map,
152 idle_4_block_map
153};
154
155const char* tap_block_map[NUM_TAP_FRAMES] = {
156 tap_1_block_map,
157 tap_2_block_map
158};
159
160#else
161
162static const char PROGMEM idle_frames[NUM_IDLE_FRAMES][NUM_OLED_BYTES] = {
163 { // IDLE 1 flipped
164 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
165 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
166 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
167 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
168 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
169 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
170 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
171 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
172 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
173 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
174 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
175 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
176 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, 0x08,
177 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0,
179 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
180 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
181 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00,
182 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
183 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00,
184 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80,
185 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
186 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07,
187 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
188 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
189 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
190 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
191 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
192 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
193 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
194 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
195 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
196 },
197 { //IDLE 2 flipped
198 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
199 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
200 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
201 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
202 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
203 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
204 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
205 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
206 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
208 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
209 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
210 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, 0x08,
211 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
212 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0,
213 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
214 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
215 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00,
216 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
217 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00,
218 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80,
219 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07,
221 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
222 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
223 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
224 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
225 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
227 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
228 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
229 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
230 },
231 { //IDLE 3 flipped
232 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
233 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
234 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
235 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
236 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
237 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
238 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
239 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
240 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
241 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
242 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
243 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
244 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x06, 0x04, 0x08, 0x08, 0x04,
245 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
246 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, 0xc0,
247 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
248 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x30, 0xc8, 0x00,
249 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, 0x00,
250 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x03, 0xc2,
251 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0x00,
252 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x83,
253 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
254 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07,
255 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
256 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
257 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
258 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
259 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
260 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
261 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
262 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
263 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
264 },
265 { //IDLE 4 flipped
266 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
267 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
268 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
269 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
270 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
271 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
272 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
273 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
274 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
275 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
276 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
277 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
278 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08,
279 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
280 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0,
281 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
282 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
283 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00,
284 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
285 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03,
286 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80,
287 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
288 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07,
289 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
290 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
291 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
292 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
293 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
294 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
295 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
296 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
297 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
298 },
299 { //IDLE 5 flipped
300 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
301 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
302 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
304 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
305 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
306 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
307 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
308 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
309 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
310 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
311 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
312 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08,
313 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xe4, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
314 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0,
315 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
316 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
317 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x60, 0x80, 0x00, 0x00,
318 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
319 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x10, 0x08, 0x07, 0x00,
320 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80,
321 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
322 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07,
323 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
325 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
326 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
327 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
328 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
329 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
331 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
332 }
333 };
334static const char PROGMEM tap_frames[NUM_TAP_FRAMES][NUM_OLED_BYTES] = {
335 { //Tap 1 flipped
336 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
338 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
339 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
340 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
341 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
342 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
343 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
344 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
345 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
346 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
347 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
348 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x42, 0x44, 0x84, 0x88, 0x08,
349 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
350 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0xf0, 0x20, 0x26, 0x26, 0x29, 0x10, 0xd5,
351 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
352 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
353 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00,
354 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
355 0x02, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03,
356 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80,
357 0x80, 0x40, 0x20, 0x10, 0x08, 0x84, 0xc2, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00,
358 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfd, 0xfd, 0x01, 0x07,
359 0x78, 0x80, 0x38, 0xf8, 0xf8, 0xf1, 0xe1, 0xc3, 0x83, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00,
360 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x00, 0x00,
361 0x00, 0x07, 0x78, 0x81, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
362 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
363 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
364 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
365 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
366 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
367 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
368 },
369 { //Tap 2 flipped
370 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
371 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
372 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
373 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
374 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
375 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
376 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
377 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
378 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
379 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
380 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
381 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
382 0x00, 0x7e, 0xfe, 0xfe, 0xfe, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08,
383 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
384 0x00, 0x00, 0x01, 0x01, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
385 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
386 0x0f, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8,
387 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00,
388 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03,
389 0x02, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03,
390 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0x80,
391 0x81, 0x01, 0x31, 0x32, 0x8a, 0x24, 0x86, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
392 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
393 0x78, 0x81, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
394 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
395 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
396 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
397 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
398 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
399 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
400 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
401 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
402 },
403 };
404#endif //USE_BITMAP_COMPRESSION
405#endif //OLED_ENABLE
diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c
deleted file mode 100644
index 900bb3e265..0000000000
--- a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c
+++ /dev/null
@@ -1,181 +0,0 @@
1/* Copyright 2022 adpenrose
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#include QMK_KEYBOARD_H
17#include "animation_frames.h"
18
19/* Base layout:
20 * ,---------------------------------------------------------------------|
21 * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace| OLED|
22 * |--------------------------------------------------------------- |
23 * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ OLED|
24 * |---------------------------------------------------------------------|
25 * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC |
26 * |---------------------------------------------------------------------|
27 * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) |
28 * |---------------------------------------------------------------------|
29 * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt |
30 * `---------------------------------------------------------------------|'
31 */
32
33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 /* Base */
35 [0] = LAYOUT(
36 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
37 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
38 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_MUTE,
39 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(3),
40 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT
41 ),
42 [1] = LAYOUT(
43 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______
48 ),
49 [2] = LAYOUT(
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT,
53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
54 _______, _______, _______, _______, _______, _______, _______, _______, _______
55 ),
56 [3] = LAYOUT(
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
60 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
61 _______, _______, _______, _______, _______, _______, _______, _______, _______
62 ),
63};
64
65/* Encoder */
66#if defined(ENCODER_MAP_ENABLE)
67const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
68 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
69 [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
70 [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
71 [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
72};
73#endif
74
75#ifdef OLED_ENABLE
76#define IDLE_FRAME_DURATION 200 // Idle animation iteration rate in ms
77
78oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
79
80uint32_t anim_timer = 0;
81uint32_t anim_sleep = 0;
82uint8_t current_idle_frame = 0;
83
84bool tap_anim = false;
85bool tap_anim_toggle = false;
86
87
88// Decompress and write a precompressed bitmap frame to the OLED.
89// Documentation and python compression script available at:
90// https://github.com/nullbitsco/squeez-o
91#ifdef USE_OLED_BITMAP_COMPRESSION
92static void oled_write_compressed_P(const char* input_block_map, const char* input_block_list) {
93 uint16_t block_index = 0;
94 for (uint16_t i=0; i<NUM_OLED_BYTES; i++) {
95 uint8_t bit = i%8;
96 uint8_t map_index = i/8;
97 uint8_t _block_map = (uint8_t)pgm_read_byte_near(input_block_map + map_index);
98 uint8_t nonzero_byte = (_block_map & (1 << bit));
99 if (nonzero_byte) {
100 const char data = (const char)pgm_read_byte_near(input_block_list + block_index++);
101 oled_write_raw_byte(data, i);
102 } else {
103 const char data = (const char)0x00;
104 oled_write_raw_byte(data, i);
105 }
106 }
107}
108#endif
109
110static void render_anim(void) {
111 // Idle animation
112 void animation_phase(void) {
113 if (!tap_anim) {
114 current_idle_frame = (current_idle_frame + 1) % NUM_IDLE_FRAMES;
115 uint8_t idx = abs((NUM_IDLE_FRAMES - 1) - current_idle_frame);
116 #ifdef USE_OLED_BITMAP_COMPRESSION
117 oled_write_compressed_P(idle_block_map[idx], idle_frames[idx]);
118 #else
119 oled_write_raw_P(idle_frames[idx], NUM_OLED_BYTES);
120 #endif
121 }
122 }
123
124 // Idle behaviour
125 if (get_current_wpm() != 000) { // prevent sleep
126 oled_on();
127 if (timer_elapsed32(anim_timer) > IDLE_FRAME_DURATION) {
128 anim_timer = timer_read32();
129 animation_phase();
130 }
131 anim_sleep = timer_read32();
132 } else { // Turn off screen when timer threshold elapsed or reset time since last input
133 if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
134 oled_off();
135 } else {
136 if (timer_elapsed32(anim_timer) > IDLE_FRAME_DURATION) {
137 anim_timer = timer_read32();
138 animation_phase();
139 }
140 }
141 }
142}
143
144bool oled_task_user(void) {
145 render_anim();
146 oled_set_cursor(0, 0);
147
148 uint8_t n = get_current_wpm();
149 char wpm_counter[6];
150 wpm_counter[5] = '\0';
151 wpm_counter[4] = '0' + n % 10;
152 wpm_counter[3] = '0' + (n /= 10) % 10;
153 wpm_counter[2] = '0' + n / 10 ;
154 wpm_counter[1] = '0';
155 wpm_counter[0] = '>';
156 oled_write_ln(wpm_counter, false);
157
158 return false;
159}
160#endif
161
162// Animate tap
163bool process_record_user(uint16_t keycode, keyrecord_t *record) {
164 #ifdef OLED_ENABLE
165 // Check if non-mod
166 if ((keycode >= KC_A && keycode <= KC_0) || (keycode >= KC_TAB && keycode <= KC_SLASH)) {
167 if (record->event.pressed) {
168 // Display tap frames
169 tap_anim_toggle = !tap_anim_toggle;
170 #ifdef USE_OLED_BITMAP_COMPRESSION
171 oled_write_compressed_P(tap_block_map[tap_anim_toggle], tap_frames[tap_anim_toggle]);
172 #else
173 oled_write_raw_P(tap_frames[tap_anim_toggle], NUM_OLED_BYTES);
174 #endif
175 }
176 }
177 #endif
178
179 return true;
180
181}
diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk
deleted file mode 100644
index 24719cefb2..0000000000
--- a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
3WPM_ENABLE = yes
4SPACE_CADET_ENABLE = no
5MAGIC_ENABLE = no
6ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c
deleted file mode 100644
index 7a9e6fb24e..0000000000
--- a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c
+++ /dev/null
@@ -1,401 +0,0 @@
1/* Copyright 2022 adpenrose
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#include QMK_KEYBOARD_H
17
18/* Base layout:
19 * ,---------------------------------------------------------------------|
20 * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace| OLED|
21 * |--------------------------------------------------------------- |
22 * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ OLED|
23 * |---------------------------------------------------------------------|
24 * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC |
25 * |---------------------------------------------------------------------|
26 * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) |
27 * |---------------------------------------------------------------------|
28 * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt |
29 * `---------------------------------------------------------------------|'
30 */
31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 /* Base */
34 [0] = LAYOUT(
35 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
36 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
37 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_MUTE,
38 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(3),
39 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT
40 ),
41 [1] = LAYOUT(
42 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______
47 ),
48 [2] = LAYOUT(
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT,
52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
53 _______, _______, _______, _______, _______, _______, _______, _______, _______
54 ),
55 [3] = LAYOUT(
56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
60 _______, _______, _______, _______, _______, _______, _______, _______, _______
61 ),
62};
63
64/* Encoder */
65#if defined(ENCODER_MAP_ENABLE)
66const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
67 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
68 [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
69 [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
70 [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
71};
72#endif
73
74#ifdef OLED_ENABLE
75/*=========================================== OLED CONFIGURATION ===========================================*/
76bool oled_horizontal = true; // OLED rotation (true = horizontal, false = vertical)
77bool graph_direction = false; // Graph movement (true = right to left, false = left to right)
78float graph_top_wpm = 100.0; // Minimum WPM required to reach the top of the graph
79int graph_refresh = 1000; // In milliseconds, determines the graph-line frequency
80int icon_med_wpm = 50; // WPM required to display the medium snail
81int icon_fast_wpm = 72; // WPM required to display the fast snail
82// Layer names: Should be exactly 5 characters in length if vertical display, or 6 characters if horizontal
83#define MA_LAYER_NAME "QWRTY" // Layer 0 name
84#define L1_LAYER_NAME "FUNCT" // Layer 1 name
85#define L2_LAYER_NAME "NMPAD" // Layer 2 name
86#define L3_LAYER_NAME "RANDM" // Layer 3 name
87// Constants required for the background render, the graph render and the WPM counter. THESE VALUES SHOULD NOT BE CHANGED.
88bool first_loop = true;
89int timer = 0;
90int wpm_limit = 20;
91int max_wpm = -1;
92int wpm_icon = -1;
93int graph_lines[65];
94/*================================================================================================================*/
95
96/* Rotation of the OLED: */
97oled_rotation_t oled_init_user(oled_rotation_t rotation) {
98 if (oled_horizontal) {
99 return OLED_ROTATION_180;
100 } else {
101 return OLED_ROTATION_270;
102 }
103}
104
105// Toggles pixel on/off, converts horizontal coordinates to vertical equivalent if necessary
106static void write_pixel(int x, int y, bool onoff) {
107 if (oled_horizontal) {
108 oled_write_pixel(x, y, onoff);
109 } else {
110 oled_write_pixel(y, 127 - x, onoff);
111 }
112}
113
114/*====================================== BASE KEYBOARD MATRIX IMAGES =======================================*/
115// Draw static background image to OLED (keyboard with no bottom row)
116static void render_background(void) {
117 if (oled_horizontal) {
118 static const char PROGMEM oled_keymap_horizontal[] = {
119 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
120 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
121 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
122 0x84, 0x80, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04,
123 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00,
124 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00,
125 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00,
126 0x80, 0x04, 0x04, 0x04, 0x04, 0x84, 0x84, 0x84, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
127 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
128 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
129 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
130 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10,
131 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
132 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
133 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
134 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
135 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
136 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
137 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
138 0x42, 0x42, 0x02, 0x02, 0x02, 0x02, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x40, 0x00, 0x00,
139 0x00, 0x02, 0x40, 0x40, 0x40, 0x40, 0x42, 0x40, 0x40, 0x40, 0x40, 0x42, 0x40, 0x40, 0x40, 0x40,
140 0x42, 0x40, 0x40, 0x40, 0x40, 0x42, 0x40, 0x40, 0x40, 0x40, 0x42, 0x40, 0x40, 0x40, 0x40, 0x42,
141 0x40, 0x40, 0x40, 0x00, 0x02, 0x00, 0x00, 0x40, 0x40, 0x02, 0x00, 0x00, 0x00, 0x40, 0x42, 0x02,
142 0x02, 0x02, 0x02, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00,
143 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
144 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
145 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
146 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
147 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
148 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
149 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
150 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
151 };
152 oled_write_raw_P(oled_keymap_horizontal, sizeof(oled_keymap_horizontal));
153 } else {
154 static const char PROGMEM oled_keymap_vertical[] = {
155 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
156 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
157 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00,
158 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
159 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
160 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
161 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
162 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
163 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
164 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
165 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
166 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
167 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
168 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
169 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
170 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
171 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
172 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
173 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00,
174 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
175 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
176 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
177 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
179 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
180 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
181 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
182 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
183 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
184 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
185 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
186 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
187 };
188 oled_write_raw_P(oled_keymap_vertical, sizeof(oled_keymap_vertical));
189 }
190}
191/*================================================================================================================*/
192
193
194/*=============================== PIXEL'S COORDINATES FOR EACH PHYSICAL KEY ================================*/
195// Location of OLED keyboard's top left pixel, relative to the display
196static const int keymap_template[2] = {46, 0};
197// Location of key highlights top left pixels, relative to keymap_template {X, Y, Key length in px}
198static int keymap_coords[MATRIX_ROWS][MATRIX_COLS][3] = {
199 { {0, 0, 1}, {5, 0, 1}, {10, 0, 1}, {15, 0, 1}, {20, 0, 1}, {25, 0, 1}, {30, 0, 1} },
200 { {0, 5, 5}, {9, 5, 1}, {14, 5, 1}, {19, 5, 1}, {24, 5, 1}, {29, 5, 1}, {34, 5, 1} },
201 { {0, 10, 6}, {10, 10, 1}, {15, 10, 1}, {20, 10, 1}, {25, 10, 1}, {30, 10, 1}, {35, 10, 1} },
202 { {0, 15, 8}, {12, 15, 1}, {17, 15, 1}, {22, 15, 1}, {27, 15, 1}, {32, 15, 1}, {37, 15, 1} },
203 { {0, 20, 2}, {6, 20, 2}, {12, 20, 2}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {18, 20, 33} },
204 { {35, 0, 1}, {40, 0, 1}, {45, 0, 1}, {50, 0, 1}, {55, 0, 1}, {60, 0, 1}, {65, 0, 8} },
205 { {39, 5, 1}, {44, 5, 1}, {49, 5, 1}, {54, 5, 1}, {59, 5, 1}, {64, 5, 1}, {69, 5, 4} },
206 { {40, 10, 1}, {45, 10, 1}, {50, 10, 1}, {55, 10, 1}, {60, 10, 1}, {65, 10, 8}, {77, 10, 1} },
207 { {42, 15, 1}, {47, 15, 1}, {52, 15, 1}, {57, 15, 1}, {62, 15, 6}, {72, 15, 1}, {77, 15, 1} },
208 { {0, 0, 0}, {0, 0, 0}, {55, 20, 2}, {61, 20, 2}, {67, 20, 1}, {72, 20, 1}, {77, 20, 1} },
209 };
210
211// Toggles pixels surrounding key
212static void render_keymap(uint8_t key_row, uint8_t key_col, bool onoff) {
213 int length = keymap_coords[key_row][key_col][2] + 4;
214 int left = keymap_coords[key_row][key_col][0] + keymap_template[0];
215 int top = keymap_coords[key_row][key_col][1] + keymap_template[1];
216 int right = left + length - 1;
217 int bottom = top + 4;
218
219 // Draw top and bottom walls (horizontal for <length>px)
220 for (int x = 0; x < length; x++) {
221 write_pixel(left + x, top, onoff);
222 write_pixel(left + x, bottom, onoff);
223 }
224 // Draw left and right walls (vertical for 5px)
225 for (int y = 0; y < 5; y++) {
226 write_pixel(left, top + y, onoff);
227 write_pixel(right, top + y, onoff);
228 }
229}
230/*================================================================================================================*/
231
232/*============================================= LAYER'S NAME ===============================================*/
233// Write active layer name
234static void render_layer_state(void) {
235 if (oled_horizontal) {
236 oled_set_cursor(0, 0);
237 } else {
238 oled_set_cursor(0, 15);
239 }
240 switch (get_highest_layer(layer_state)) {
241 case 0:
242 oled_write_P(PSTR(MA_LAYER_NAME), false);
243 break;
244 case 1:
245 oled_write_P(PSTR(L1_LAYER_NAME), false);
246 break;
247 case 2:
248 oled_write_P(PSTR(L2_LAYER_NAME), false);
249 break;
250 case 3:
251 oled_write_P(PSTR(L3_LAYER_NAME), false);
252 break;
253 default:
254 oled_write("ERROR", false);
255 break;
256 }
257}
258/*================================================================================================================*/
259
260/*==================================== WPM COUNTERS (CURRENT AND MAX) ======================================*/
261// Update WPM counters
262static void render_wpm_counters(int current_wpm) {
263 int cursorposition_cur = 2;
264 int cursorposition_max = 1;
265 if (oled_horizontal == false) {
266 cursorposition_cur = 13;
267 cursorposition_max = 14;
268 }
269
270 oled_set_cursor(0, cursorposition_cur);
271 oled_write(get_u8_str(get_current_wpm(), '0'), false);
272
273 char wpm_counter[4];
274 wpm_counter[3] = '\0';
275 wpm_counter[2] = '0' + current_wpm % 10;
276 wpm_counter[1] = '0' + (current_wpm / 10) % 10;
277 wpm_counter[0] = '0' + (current_wpm / 100) % 10;
278
279 if (current_wpm > max_wpm) {
280 max_wpm = current_wpm;
281 wpm_limit = max_wpm + 20;
282 oled_set_cursor(0, cursorposition_max);
283 oled_write(wpm_counter, false);
284 }
285}
286/*================================================================================================================*/
287
288/*============================================== WPM GRAPH =================================================*/
289// Update WPM graph
290static void render_wpm_graph(int current_wpm) {
291 int line_height = ((current_wpm / graph_top_wpm) * 7);
292 if (line_height > 7) {
293 line_height = 7;
294 }
295 // Count graph line pixels, return if nothing to draw
296 int pixel_count = line_height;
297 for (int i = 0; i < 64; i++) {
298 pixel_count += graph_lines[i];
299 }
300 if (pixel_count == 0) {
301 return;
302 }
303 // Shift array elements left or right depending on graph_direction, append new graph line
304 if (graph_direction) {
305 for (int i = 0; i < 64; i++) {
306 graph_lines[i] = graph_lines[i + 1];
307 }
308 graph_lines[64] = line_height;
309 } else {
310 for (int i = 64; i > 0; i--) {
311 graph_lines[i] = graph_lines[i - 1];
312 }
313 graph_lines[0] = line_height;
314 }
315 // Draw all graph lines (left to right, bottom to top)
316 int draw_count, arrpos;
317 for (int x = 1; x <= 127; x += 2) {
318 arrpos = x / 2;
319 draw_count = graph_lines[arrpos];
320 for (int y = 31; y >= 25; y--) {
321 if (draw_count > 0) {
322 write_pixel(x, y, true);
323 draw_count--;
324 } else {
325 write_pixel(x, y, false);
326 }
327 }
328 }
329}
330/*================================================================================================================*/
331
332/*======================================== WPM BASED SNAIL ICON ============================================*/
333// Update WPM snail icon
334static void render_wpm_icon(int current_wpm) {
335 // wpm_icon is used to prevent unnecessary redraw
336 if ((current_wpm < icon_med_wpm) && (wpm_icon != 0)) {
337 wpm_icon = 0;
338 } else if ((current_wpm >= icon_med_wpm) && (current_wpm < icon_fast_wpm) && (wpm_icon != 1)) {
339 wpm_icon = 1;
340 } else if ((current_wpm >= icon_fast_wpm) && (wpm_icon != 2)) {
341 wpm_icon = 2;
342 } else {
343 return;
344 }
345 static const char PROGMEM snails[][2][24] = {
346 {{0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0xA0, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x50, 0x88, 0x04, 0x00, 0x00},
347 {0x40, 0x60, 0x50, 0x4E, 0x51, 0x64, 0x4A, 0x51, 0x54, 0x49, 0x41, 0x62, 0x54, 0x49, 0x46, 0x41, 0x40, 0x30, 0x09, 0x04, 0x02, 0x01, 0x00, 0x00}},
348 {{0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x04, 0x98, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00},
349 {0x60, 0x50, 0x54, 0x4A, 0x51, 0x64, 0x4A, 0x51, 0x55, 0x49, 0x41, 0x62, 0x54, 0x49, 0x46, 0x41, 0x21, 0x10, 0x0A, 0x08, 0x05, 0x02, 0x00, 0x00}},
350 {{0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x10, 0x10, 0x10, 0x20, 0x40, 0x40, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00},
351 {0x60, 0x58, 0x54, 0x62, 0x49, 0x54, 0x52, 0x51, 0x55, 0x49, 0x62, 0x52, 0x4D, 0x45, 0x46, 0x22, 0x21, 0x11, 0x10, 0x0A, 0x08, 0x05, 0x02, 0x00}}
352 };
353 if (oled_horizontal) {
354 oled_set_cursor(3, 1);
355 oled_write_raw_P(snails[wpm_icon][0], sizeof(snails[wpm_icon][0]));
356 oled_set_cursor(3, 2);
357 oled_write_raw_P(snails[wpm_icon][1], sizeof(snails[wpm_icon][1]));
358 } else {
359 oled_set_cursor(0, 11);
360 oled_write_raw_P(snails[wpm_icon][0], sizeof(snails[wpm_icon][0]));
361 oled_set_cursor(0, 12);
362 oled_write_raw_P(snails[wpm_icon][1], sizeof(snails[wpm_icon][1]));
363 }
364}
365/*================================================================================================================*/
366
367/* Function that renders stuff on the oled */
368bool oled_task_user(void) {
369 // Draw OLED keyboard, preventing redraw.
370 if (first_loop) {
371 render_background();
372 first_loop = false;
373 }
374
375 // Get current WPM
376 int current_wpm = get_current_wpm();
377 // Write active layer name to display
378 render_layer_state();
379 // Update WPM counters
380 render_wpm_counters(current_wpm);
381 // Update WPM snail icon
382 render_wpm_icon(current_wpm);
383 // Update WPM graph every graph_refresh milliseconds
384 if (timer_elapsed(timer) > graph_refresh) {
385 render_wpm_graph(current_wpm);
386 timer = timer_read();
387 }
388
389 return false;
390}
391#endif
392
393// Called by QMK during key processing
394bool process_record_user(uint16_t keycode, keyrecord_t *record) {
395 #ifdef OLED_ENABLE
396 // Toggle pixels surrounding key
397 render_keymap(record->event.key.row, record->event.key.col, record->event.pressed);
398 #endif
399
400 return true;
401}
diff --git a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/readme.md b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/readme.md
deleted file mode 100644
index eb7b7577af..0000000000
--- a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/readme.md
+++ /dev/null
@@ -1,30 +0,0 @@
1# SnailMap-ported keymap for the Kintsugi
2
3## Features
4
5- Keyboard matrix that highlights whichever key is currently pressed.
6- Little cute snail icon that changes acording to the current WPM.
7- Counters for current and max WPM values.
8- Active layer name.
9- Mini WPM graph.
10
11## How to customize
12
13The `OLED configuration variables` can be used to easily customize the display:
14
15```
16oled_horizontal - Horizontal or vertical orientation
17graph_direction - Graph movement direction
18graph_refresh - Frequency of graph lines
19graph_top_wpm - WPM required to reach the top of the graph
20icon_med_wpm - WPM required to display the medium snail
21icon_fast_wpm - WPM required to display the fast snail
22MA_LAYER_NAME - Layer 0 display name
23L1_LAYER_NAME - Layer 1 display name
24L2_LAYER_NAME - Layer 2 display name
25L3_LAYER_NAME - Layer 3 display name
26```
27
28___
29
30###### *This keymap is an adaptation designed to work with the Kintsugi keyboard. The original SnailMap keymap was created by [dogspace](https://github.com/dogspace) for the Nibble keyboard, and you can check it [here](https://github.com/qmk/qmk_firmware/tree/master/keyboards/nullbitsco/nibble/keymaps/snailmap).* \ No newline at end of file
diff --git a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk
deleted file mode 100644
index 24719cefb2..0000000000
--- a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
3WPM_ENABLE = yes
4SPACE_CADET_ENABLE = no
5MAGIC_ENABLE = no
6ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/adpenrose/mine/keymaps/solenoid/keymap.c b/keyboards/adpenrose/mine/keymaps/solenoid/keymap.c
deleted file mode 100644
index cd9e1768eb..0000000000
--- a/keyboards/adpenrose/mine/keymaps/solenoid/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
1// Copyright 2022 Arturo Avila (@Arturo Avila)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 [0] = LAYOUT_all(
8 HF_TOGG,
9 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_END, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
10 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_P7, KC_P8, KC_P9, KC_PPLS,
11 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P4, KC_P5, KC_P6,
12 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P1, KC_P2, KC_P3, KC_PENT,
13 KC_LSFT, MO(1), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P0, KC_PDOT,
14 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
15 ),
16
17 [1] = LAYOUT_all(
18 KC_TRNS,
19 QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
20 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
21 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
22 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
23 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
24 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
25 )
26};
27
28#if defined(ENCODER_MAP_ENABLE)
29const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
30 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
31 [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
32};
33#endif
34
35#ifdef HAPTIC_ENABLE
36bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record) {
37 switch (keycode) {
38 case KC_VOLU ... KC_VOLD:
39 return false;
40 }
41 return true;
42}
43#endif
diff --git a/keyboards/adpenrose/mine/keymaps/solenoid/rules.mk b/keyboards/adpenrose/mine/keymaps/solenoid/rules.mk
deleted file mode 100644
index 345c10cdd4..0000000000
--- a/keyboards/adpenrose/mine/keymaps/solenoid/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
1VIA_ENABLE = yes
2HAPTIC_ENABLE = yes
3HAPTIC_DRIVER = solenoid
4ENCODER_MAP_ENABLE = yes # Encoder mapping functionality \ No newline at end of file
diff --git a/keyboards/adpenrose/shisaku/keymaps/solenoid/keymap.c b/keyboards/adpenrose/shisaku/keymaps/solenoid/keymap.c
deleted file mode 100644
index 0d69e305d1..0000000000
--- a/keyboards/adpenrose/shisaku/keymaps/solenoid/keymap.c
+++ /dev/null
@@ -1,32 +0,0 @@
1// Copyright 2022 Arturo Avila (@ADPenrose)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 [0] = LAYOUT(
8 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
9 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
10 KC_LSFT, MO(2), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
11 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT
12 ),
13 [1] = LAYOUT(
14 KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, HF_TOGG,
15 KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS,
16 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH,
17 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS
18 ),
19 [2] = LAYOUT(
20 KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
21 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL,
22 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
23 KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
24 ),
25 [3] = LAYOUT(
26 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
27 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
28 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
30 )
31
32};
diff --git a/keyboards/adpenrose/shisaku/keymaps/solenoid/readme.md b/keyboards/adpenrose/shisaku/keymaps/solenoid/readme.md
deleted file mode 100644
index e9d4bb6af9..0000000000
--- a/keyboards/adpenrose/shisaku/keymaps/solenoid/readme.md
+++ /dev/null
@@ -1 +0,0 @@
1# Solenoid keymap for Shisaku
diff --git a/keyboards/adpenrose/shisaku/keymaps/solenoid/rules.mk b/keyboards/adpenrose/shisaku/keymaps/solenoid/rules.mk
deleted file mode 100644
index 6bec144827..0000000000
--- a/keyboards/adpenrose/shisaku/keymaps/solenoid/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
3HAPTIC_ENABLE = yes
4HAPTIC_DRIVER = solenoid \ No newline at end of file
diff --git a/keyboards/afternoonlabs/breeze/keymaps/eithanshavit/keymap.c b/keyboards/afternoonlabs/breeze/keymaps/eithanshavit/keymap.c
deleted file mode 100644
index 9732230b05..0000000000
--- a/keyboards/afternoonlabs/breeze/keymaps/eithanshavit/keymap.c
+++ /dev/null
@@ -1,73 +0,0 @@
1/* Copyright 2021 eithanshavit
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#include QMK_KEYBOARD_H
18
19enum layer_names {
20 _MAIN,
21 _FUNCTION,
22 _NUMPAD,
23};
24
25#define FUNCTION MO(_FUNCTION)
26#define NUMPAD MO(_NUMPAD)
27
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29
30 [_NUMPAD] = LAYOUT(
31 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
32 _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, LCA(KC_D),LCA(KC_F),LCA(KC_G),
33 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
34 _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, LCA(KC_E),LCA(KC_ENT),LCA(KC_T),
35 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
36 _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______,
37 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
38 _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
39 //└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
40 _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
41 // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
42 ),
43
44
45 [_FUNCTION] = LAYOUT(
46 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
47 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LCA(KC_D),LCA(KC_F),LCA(KC_G),
48 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
49 _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, LCA(KC_E),LCA(KC_ENT),LCA(KC_T),
50 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
51 _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,_______, _______,
52 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
54 //└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
55 _______, _______, _______, _______, _______, _______, _______, _______
56 // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
57 ),
58
59 [_MAIN] = LAYOUT(
60 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
61 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV,
62 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
63 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS,
64 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
65 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP,
66 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
67 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT,
68 //└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
69 NUMPAD, KC_LALT, KC_LCMD, KC_SPC, KC_ENT, FUNCTION,LCMD(KC_GRV),LALT(KC_SPC)
70 // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
71 )
72
73};
diff --git a/keyboards/ai03/duet/keymaps/coordinate/keymap.c b/keyboards/ai03/duet/keymaps/coordinate/keymap.c
deleted file mode 100644
index 821c029534..0000000000
--- a/keyboards/ai03/duet/keymaps/coordinate/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
1// Copyright 2023 QMK
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6
7/* Coordinate keymap - designed to send a string in the format [a-r][0-5] corresponding to the matrix position, where a0 is the top left and r5 is bottom right */
8
9const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
10
11 [0] = LAYOUT(
12 KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
13 KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
14 KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
15 KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
16 KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0,
17 KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0
18 ),
19};
20
21
22/* String generation */
23
24bool process_record_user(uint16_t keycode, keyrecord_t *record) {
25
26 if (record->event.pressed) {
27 char col = record->event.key.col + 'a';
28 char row = record->event.key.row + '0';
29 char result[2] = {col, row};
30 send_string(result);
31 }
32
33 return false;
34}
diff --git a/keyboards/ai03/duet/keymaps/coordinate/readme.md b/keyboards/ai03/duet/keymaps/coordinate/readme.md
deleted file mode 100644
index de8245875d..0000000000
--- a/keyboards/ai03/duet/keymaps/coordinate/readme.md
+++ /dev/null
@@ -1,4 +0,0 @@
1# The coordinate keymap for Duet
2
3An example keymap which sends a string `[a-r][0-5]` corresponding to the column-row position of the pressed switch.
4Possibly useful for pairing to a kiosk device provided the display application can parse and handle this format.
diff --git a/keyboards/ai03/equinox/keymaps/crd/keymap.c b/keyboards/ai03/equinox/keymaps/crd/keymap.c
deleted file mode 100644
index a3203cd312..0000000000
--- a/keyboards/ai03/equinox/keymaps/crd/keymap.c
+++ /dev/null
@@ -1,41 +0,0 @@
1/* Copyright 2019 Ryota Goto
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#include QMK_KEYBOARD_H
17
18#define KC_CTES RCTL_T(KC_ESC)
19#define KC_BSM1 LT(1, KC_BSPC)
20#define KC_SPM1 LT(1, KC_SPC)
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23 [0] = LAYOUT_all( /* Base */
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_GRV,
25 KC_CTES, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, XXXXXXX, KC_ENT,
26 KC_LSFT, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT,
27 KC_LCTL, XXXXXXX, KC_RGUI, KC_BSM1, MO(2), KC_SPM1, KC_RALT, XXXXXXX, KC_RCTL
28 ),
29 [1] = LAYOUT_all( /* Extra Keys */
30 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
31 _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______,
33 _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______
34 ),
35 [2] = LAYOUT_all( /* Num and FN */
36 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_MINS, KC_EQL, _______,
37 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_SCLN, KC_QUOT, XXXXXXX, _______,
38 _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______,
39 _______, XXXXXXX, _______, _______, _______, _______, _______, XXXXXXX, _______
40 )
41};
diff --git a/keyboards/ai03/equinox/keymaps/crd/readme.md b/keyboards/ai03/equinox/keymaps/crd/readme.md
deleted file mode 100644
index c1f50e5ebf..0000000000
--- a/keyboards/ai03/equinox/keymaps/crd/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
1# crd's keymap for equinox
2
3[KLE](http://www.keyboard-layout-editor.com/#/gists/0be9c4a916dba80ebb5533cd00c5304c)
diff --git a/keyboards/ai03/polaris/keymaps/mekberg/config.h b/keyboards/ai03/polaris/keymaps/mekberg/config.h
deleted file mode 100644
index ef8caf8709..0000000000
--- a/keyboards/ai03/polaris/keymaps/mekberg/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
1/*
2Copyright 2019 Ryota Goto
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*/
17
18#pragma once
19
20// Define some configuration for modtap behavior
21// #define TAPPING_TERM 150
22#define PERMISSIVE_HOLD
diff --git a/keyboards/ai03/polaris/keymaps/mekberg/keymap.c b/keyboards/ai03/polaris/keymaps/mekberg/keymap.c
deleted file mode 100644
index 6a15c93fa1..0000000000
--- a/keyboards/ai03/polaris/keymaps/mekberg/keymap.c
+++ /dev/null
@@ -1,97 +0,0 @@
1/* Copyright 2019 Ryota Goto
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#include QMK_KEYBOARD_H
17
18enum layer_names {
19 _BASE,
20 _NAV,
21 _FN
22};
23
24#define MY_LOCK C(LCMD(KC_L)) // Mac: Custom lock hotkey in BTT (when Alt/Command have been swapped in macOS)
25
26/*
27KBD6x ANSI physical layout
281u == 8chars
29 ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
30 | | | | | | | | | | | | | | | |
31 |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
32 | 1,5u | | | | | | | | | | | | | 1,5u |
33 |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
34 | 1,75u | | | | | | | | | | | | 1,25u |
35 |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
36 | 2,25u | | | | | | | | | | | 1,75u | |
37 └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
38 | | 1,25u | | 1,25u | |
39 └────────────────────────────────────────────────────────────────────────────────────────────────────┘
40*/
41
42const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
43 [_BASE] = LAYOUT_60_tsangan_hhkb(
44// ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
45// | | | | | | | | | | | | | | | |
46 QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NUBS, KC_RBRC,
47// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
48// | 1,5u | | | | | | | | | | | | | 1,5u |
49 LT(_NAV,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_NUHS, KC_BSPC,
50// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
51// | 1,75u | | | | | | | | | | | | 1,25u |
52 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
53// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
54// | 1,25u | | | | | | | | | | | 1,75u | |
55 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
56// └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
57// | | 1,25u | | 1,25u | |
58 XXXXXXX, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, XXXXXXX
59// └────────────────────────────────────────────────────────────────────────────────────────────────────┘
60 ),
61 [_NAV] = LAYOUT_60_tsangan_hhkb(
62// ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
63// | | | | | | | | | | | | | | | |
64 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_BSPC,
65// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
66// | 1,5u | | | | | | | | | | | | | 1,5u |
67 _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, _______, _______, KC_DEL,
68// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
69// | 1,75u | | | | | | | | | | | | 1,25u |
70 _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
71// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
72// | 1,25u | | | | | | | | | | | 1,75u | |
73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
74// └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
75// | | 1,25u | | 1,25u | |
76 XXXXXXX, _______, _______, _______, _______, _______, XXXXXXX
77// └────────────────────────────────────────────────────────────────────────────────────────────────────┘
78 ),
79 [_FN] = LAYOUT_60_tsangan_hhkb(
80// ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
81// | | | | | | | | | | | | | | | |
82 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
83// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
84// | 1,5u | | | | | | | | | | | | | 1,5u |
85 _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______,
86// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
87// | 1,75u | | | | | | | | | | | | 1,25u |
88 KC_RCTL, KC_VOLD, KC_VOLU, KC_MUTE, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, MY_LOCK,
89// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
90// | 1,25u | | | | | | | | | | | 1,75u | |
91 _______, BL_TOGG, BL_UP, BL_DOWN,BL_STEP, _______, _______, _______, KC_MRWD, KC_MFFD, _______, _______, _______,
92// └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
93// | | 1,25u | | 1,25u | |
94 XXXXXXX, _______, _______, KC_MPLY, _______, _______, XXXXXXX
95// └────────────────────────────────────────────────────────────────────────────────────────────────────┘
96 ),
97};
diff --git a/keyboards/ai03/polaris/keymaps/mekberg/readme.md b/keyboards/ai03/polaris/keymaps/mekberg/readme.md
deleted file mode 100644
index b9ae9642f5..0000000000
--- a/keyboards/ai03/polaris/keymaps/mekberg/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
1# General Information
2
3This is more or less a HHKB base layout, but with completely different Fn layers. I don't use most of the HHKB secondary key positions because, honestly, they make no sense to me at all.
4
5Fn key layer is focused mostly on keyboard firmware features (like RGB) as well as some of the necessary alternate functions. It also hold media controls, F-keys and Reset.
6
7Left Tab-Hold layer is focused on nav cluster functionality, and turns Backspace into Delete (and moves Backspace up into the top right 1u position).
8
9
10# Build instructions
11
12To simply build the firmware file: `make clean && make ai03/polaris:mekberg`
13
14To build and immediately flash: `make clean && make ai03/polaris:mekberg:flash`
diff --git a/keyboards/ai03/polaris/keymaps/mekberg/rules.mk b/keyboards/ai03/polaris/keymaps/mekberg/rules.mk
deleted file mode 100644
index e47bb9e6df..0000000000
--- a/keyboards/ai03/polaris/keymaps/mekberg/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
1BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality
2RGBLIGHT_ENABLE = no # Disable keyboard RGB underglow
diff --git a/keyboards/ai03/quasar/keymaps/ai03/keymap.c b/keyboards/ai03/quasar/keymaps/ai03/keymap.c
deleted file mode 100644
index c564b8aa38..0000000000
--- a/keyboards/ai03/quasar/keymaps/ai03/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
1/* Copyright 2019 Ryota Goto
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#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT( /* Base */
20 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
21 KC_LGUI, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
23 MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
25 KC_LCTL, KC_LALT, KC_SPC, KC_GRV, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT
26 ),
27 [1] = LAYOUT( /* FN */
28 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
29 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, _______,
30 KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_PGUP, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______,
31 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_VOLU, KC_VOLD, KC_HOME, KC_PGDN, KC_END, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_PGUP,
33 _______, _______, _______, _______, KC_BSPC, KC_HOME, KC_PGDN, KC_END
34 )
35};
diff --git a/keyboards/ai03/quasar/keymaps/ai03/readme.md b/keyboards/ai03/quasar/keymaps/ai03/readme.md
deleted file mode 100644
index 6f6a0b4fef..0000000000
--- a/keyboards/ai03/quasar/keymaps/ai03/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
1# The ai03 keymap for Quasar
2
3Focuses functionality mainly into the 60% cluster. \ No newline at end of file
diff --git a/keyboards/akb/raine/keymaps/mehadviceguy/keymap.c b/keyboards/akb/raine/keymaps/mehadviceguy/keymap.c
deleted file mode 100644
index 522651f1c6..0000000000
--- a/keyboards/akb/raine/keymaps/mehadviceguy/keymap.c
+++ /dev/null
@@ -1,75 +0,0 @@
1/* Copyright 2019 Elliot Powell
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#include QMK_KEYBOARD_H
17
18/*
19BLANK
20 ,----------------------------------------------------------------. ,--------------.
21 | | | | | | | | | | | | | | | | | |
22 |----------------------------------------------------------------| |--------------|
23 | | | | | | | | | | | | | | | | |
24 |------------------------------------------------------------ | |--------------|
25 | | | | | | | | | | | | | | | | |
26 |----------------------------------------------------------------' |--------------|
27 | | | | | | | | | | | | ,----. | | | |
28 |-----------------------------------------------------------' | | `--------------|
29 | | | | | | ,--------------. | | |
30 `------` '------------------------------` '-----' | | | | `---------'
31 `--------------'
32*/
33
34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35 [0] = LAYOUT( /* Base
36 ,----------------------------------------------------------------. ,--------------.
37 |Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | Bac| | / | * | + |
38 |----------------------------------------------------------------| |--------------|
39 | Tab | Q | W | E | R | T | Y | U | I | O | P | Enter| | 7 | 8 | 9 |
40 |------------------------------------------------------------ | |--------------|
41 |CapsLock | A | S | D | F | G | H | J | K | L | : | | | 4 | 5 | 6 |
42 |----------------------------------------------------------------' |--------------|
43 |Shift | \ | Z | X | C | V | B | N | M | , | . | ,----. | 1 | 2 | 3 |
44 |-----------------------------------------------------------' | Up | `--------------|
45 | Ctrl | | SPACE | |AltGr| ,--------------. | 0 | . |
46 `------` '------------------------------` '-----' |L/fn|Down|Rght| `---------'
47 `--------------'
48 */
49KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, KC_PSLS, KC_PAST, KC_PPLS,
50KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, _______, KC_P7, KC_P8, KC_P9,
51KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_P4, KC_P5, KC_P6,
52KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_UP, KC_P1, KC_P2, KC_P3,
53KC_LCTL, _______, _______, _______, KC_SPC, _______, _______, KC_RALT, LT(1, KC_LEFT), KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
54
55 [1] = LAYOUT( /* Second
56 ,----------------------------------------------------------------. ,--------------.
57 | GRV| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9| F10| F11| F12 | |Nlck|Pscr| = |
58 |----------------------------------------------------------------| |--------------|
59 | | | | | | | | | | | ? | DEL | |Home| Up |PgUp|
60 |------------------------------------------------------------ | |--------------|
61 | | | | | | | | | | | ' |DEL | |Left|ScrL|Rght|
62 |----------------------------------------------------------------' |--------------|
63 | | | | | | | | | | [ | ] | ,----. |End |Down|PgDn|
64 |-----------------------------------------------------------' | | `--------------|
65 | GUI | | | | | ,--------------. | |Rest|
66 `------` '------------------------------` '-----' | | | | `---------'
67 `--------------'
68 */
69KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUM, KC_PSCR, KC_EQUAL,
70_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, KC_HOME, KC_UP, KC_PGUP,
71_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_DEL, KC_LEFT, KC_SCRL, KC_RGHT,
72_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, KC_END, KC_DOWN, KC_PGDN,
73KC_LGUI, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______, QK_BOOT),
74};
75
diff --git a/keyboards/akb/raine/keymaps/mehadviceguy/readme.md b/keyboards/akb/raine/keymaps/mehadviceguy/readme.md
deleted file mode 100644
index e9e411bc5b..0000000000
--- a/keyboards/akb/raine/keymaps/mehadviceguy/readme.md
+++ /dev/null
@@ -1,68 +0,0 @@
1# Eyecandy
2![Eyecandy](https://i.imgur.com/gYWNDlF.png)
3
4# MehAdviceGuy Raine layout
5
6Welcome to one of the most useless layouts you will find this side of town!
7The layout is born out of the need for AltGr to get to æø and å when you don't have a full bottom row.
8
9## Base Layer (0)
10The base layer borrows alot from the Default Raine layer in regards to the alphas, and the numpad. But deviates ever so slightly by putting the layer key on the Left arrow key, relacing it from its original location with AltGr. And putting , and . on what was normally ? and right shift.
11```
12 ,----------------------------------------------------------------. ,--------------.
13 |Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | Bac| | / | * | + |
14 |----------------------------------------------------------------| |--------------|
15 | Tab | Q | W | E | R | T | Y | U | I | O | P | Enter| | 7 | 8 | 9 |
16 |------------------------------------------------------------ | |--------------|
17 |CapsLock | A | S | D | F | G | H | J | K | L | : | | | 4 | 5 | 6 |
18 |----------------------------------------------------------------' |--------------|
19 |Shift | \ | Z | X | C | V | B | N | M | , | . | ,----. | 1 | 2 | 3 |
20 |-----------------------------------------------------------' | Up | `--------------|
21 | Ctrl | | SPACE | |AltGr| ,--------------. | 0 | . |
22 `------` '------------------------------` '-----' |L/fn|Down|Rght| `---------'
23 `--------------'
24```
25
26## Modifier Layer (1)
27The Modifier layer also borrows a few things from the Default Raine layout, but changes a fair bit of things in it. These changes include:
28* Moving Delete to Enter and completing the F-row
29* Moving [ and ] to , and .
30* Adding GUI to Left Ctrl
31* Replacing insert with =
32* Adding / to the P position
33* Moving ' one to the left
34
35```
36 ,----------------------------------------------------------------. ,--------------.
37 | GRV| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9| F10| F11| F12 | |Nlck|Pscr| = |
38 |----------------------------------------------------------------| |--------------|
39 | | | | | | | | | | | ? | DEL | |Home| Up |PgUp|
40 |------------------------------------------------------------ | |--------------|
41 | | | | | | | | | | | ' |DEL | |Left|ScrL|Rght|
42 |----------------------------------------------------------------' |--------------|
43 | | | | | | | | | | [ | ] | ,----. |End |Down|PgDn|
44 |-----------------------------------------------------------' | | `--------------|
45 | GUI | | | | | ,--------------. | |Rest|
46 `------` '------------------------------` '-----' | | | | `---------'
47 `--------------'
48```
49
50### Blank ASKII version if anyone needs!
51```
52 ,----------------------------------------------------------------. ,--------------.
53 | | | | | | | | | | | | | | | | | |
54 |----------------------------------------------------------------| |--------------|
55 | | | | | | | | | | | | | | | | |
56 |------------------------------------------------------------ | |--------------|
57 | | | | | | | | | | | | | | | | |
58 |----------------------------------------------------------------' |--------------|
59 | | | | | | | | | | | | ,----. | | | |
60 |-----------------------------------------------------------' | | `--------------|
61 | | | | | | ,--------------. | | |
62 `------` '------------------------------` '-----' | | | | `---------'
63 `--------------'
64```
65
66### KLE
67![KLE Layout](https://i.imgur.com/JDc1oM4.png)
68![KLE Link](http://www.keyboard-layout-editor.com/##@@=Esc%0A%60&=!%0A1&=%2F@%0A2&=%23%0A3&=$%0A4&=%25%0A5&=%5E%0A6&=%2F&%0A7&=*%0A8&=(%0A9&=)%0A0&=%2F_%0A-&=+%0A%2F=&_x:0.25%3B&=%2F%2F&=*&=+%3B&@_w:1.5%3B&=Tab&=Q&=W&=E&=R&=T&=Y&=U&=I&=O&=P&_x:0.25&w:1.25&h:2&w2:1.5&h2:1&x2:-0.25%3B&=Enter&_x:0.25%3B&=7&=8&=9%3B&@_w:1.75%3B&=Caps%20Lock&=A&=S&=D&=F&=G&=H&=J&=K&=L&=%2F:%0A%2F%3B&_x:1.5%3B&=4&=5&=6%3B&@_w:1.25%3B&=Shift&=%7C%0A%5C&=Z&=X&=C&=V&=B&=N&=M&=%3C%0A,&_w:1.5%3B&=%3E%0A.&_x:1.5%3B&=1&=2&=3%3B&@_y:-0.75&x:12%3B&=%E2%86%91%3B&@_y:-0.25&w:1.25%3B&=Ctrl&_x:1&a:7&w:6.25%3B&=&_x:1&a:4&w:1.25%3B&=AltGr&_x:3.5%3B&=0&=.%3B&@_y:-0.75&x:11%3B&=%E2%86%90%0AFN&=%E2%86%93&=%E2%86%92%3B&@_y:0.25%3B&=%60&=F1&=F2&=F3&=F4&=F5&=F6&=F7&=F8&=F9&=F10&=F11&=F12&_x:0.25%3B&=NLock&=Print&=%2F=%3B&@_a:7&w:1.5%3B&=&=&=&=&=&=&=&=&=&=&_a:4%3B&=%2F%2F&_x:0.25&w:1.25&h:2&w2:1.5&h2:1&x2:-0.25%3B&=Del&_x:0.25%3B&=Home&=Up&=PgUp%3B&@_a:7&w:1.75%3B&=&=&=&=&=&=&=&=&=&=&_a:4%3B&='&_x:1.5%3B&=Left&=ScrLc&=Right%3B&@_a:7&w:1.25%3B&=&=&=&=&=&=&=&=&=&_a:4%3B&=%5B&_w:1.5%3B&=%5D&_x:1.5%3B&=End&=Down&=PgDn%3B&@_y:-0.75&x:12&a:7%3B&=%3B&@_y:-0.25&a:4&w:1.25%3B&=Win&_x:1&w:6.25%3B&=RAlt&_x:1&a:7&w:1.25%3B&=&_x:3.5%3B&=&_a:4%3B&=Rst%3B&@_y:-0.75&x:11&a:7%3B&=&=&=) \ No newline at end of file
diff --git a/keyboards/al1/keymaps/splitbs/keymap.c b/keyboards/al1/keymaps/splitbs/keymap.c
deleted file mode 100644
index 71f2b80544..0000000000
--- a/keyboards/al1/keymaps/splitbs/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
1/* Copyright 2018 MechMerlin
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#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 LAYOUT_split_bs(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_INS, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
26 ),
27
28 LAYOUT_split_bs(
29 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DOWN, BL_UP, _______, _______
34 )
35};
diff --git a/keyboards/aleblazer/zodiark/keymaps/slimoled/config.h b/keyboards/aleblazer/zodiark/keymaps/slimoled/config.h
deleted file mode 100644
index e2df253c3f..0000000000
--- a/keyboards/aleblazer/zodiark/keymaps/slimoled/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
1/*
2Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 3 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*/
17#pragma once
18
19#ifdef OLED_ENABLE
20 #define OLED_DISPLAY_128X32
21 #define OLED_TIMEOUT 400000
22#endif
diff --git a/keyboards/aleblazer/zodiark/keymaps/slimoled/keymap.c b/keyboards/aleblazer/zodiark/keymaps/slimoled/keymap.c
deleted file mode 100644
index 690fe6c71a..0000000000
--- a/keyboards/aleblazer/zodiark/keymaps/slimoled/keymap.c
+++ /dev/null
@@ -1,332 +0,0 @@
1/*
2Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 3 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*/
17#include QMK_KEYBOARD_H
18
19enum sofle_layers {
20 /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */
21 _QWERTY,
22 _COLEMAK,
23 _LOWER,
24 _RAISE,
25 _ADJUST,
26};
27
28enum custom_keycodes {
29 KC_QWERTY = SAFE_RANGE,
30 KC_COLEMAK,
31 KC_LOWER,
32 KC_RAISE,
33 KC_ADJUST,
34 KC_PRVWD,
35 KC_NXTWD,
36 KC_LSTRT,
37 KC_LEND,
38 KC_DLINE
39};
40
41const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42
43 [_QWERTY] = LAYOUT(
44 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
45 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
46 KC_ADJUST, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
47 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
48 KC_LCTL, KC_LALT, KC_LGUI, LALT(KC_TAB), KC_LOWER, KC_SPC, KC_ENT, KC_ENT, KC_SPC, KC_RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
49 ),
50
51 [_LOWER] = LAYOUT(
52 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
53 KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NUM, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
54 KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NUM, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NUM,
55 _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
56 _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
57 ),
58
59 [_RAISE] = LAYOUT(
60 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
61 KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NUM, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
62 KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NUM, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NUM,
63 _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
64 _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
65 ),
66
67 [_ADJUST] = LAYOUT(
68 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
69 _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, KC_F12,
70 _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______,
71 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,
72 _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD
73 )
74
75};
76#ifdef OLED_ENABLE
77
78static void render_logo(void) {
79 static const char PROGMEM qmk_logo[] = {
80 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
81 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
82 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
83 };
84
85 oled_write_P(qmk_logo, false);
86}
87
88static void print_status_narrow(void) {
89 // Print current mode
90 oled_write_P(PSTR("\n\n"), false);
91 oled_write_ln_P(PSTR("MODE"), false);
92 oled_write_ln_P(PSTR(""), false);
93 if (keymap_config.swap_lctl_lgui) {
94 oled_write_ln_P(PSTR("MAC"), false);
95 } else {
96 oled_write_ln_P(PSTR("WIN"), false);
97 }
98
99 switch (get_highest_layer(default_layer_state)) {
100 case _QWERTY:
101 oled_write_ln_P(PSTR("Qwrt"), false);
102 break;
103 case _COLEMAK:
104 oled_write_ln_P(PSTR("Clmk"), false);
105 break;
106 default:
107 oled_write_P(PSTR("Undef"), false);
108 }
109 oled_write_P(PSTR("\n\n"), false);
110 // Print current layer
111 oled_write_ln_P(PSTR("LAYER"), false);
112 switch (get_highest_layer(layer_state)) {
113 case _COLEMAK:
114 case _QWERTY:
115 oled_write_P(PSTR("Base\n"), false);
116 break;
117 case _RAISE:
118 oled_write_P(PSTR("Raise"), false);
119 break;
120 case _LOWER:
121 oled_write_P(PSTR("Lower"), false);
122 break;
123 case _ADJUST:
124 oled_write_P(PSTR("Adj\n"), false);
125 break;
126 default:
127 oled_write_ln_P(PSTR("Undef"), false);
128 }
129 oled_write_P(PSTR("\n\n"), false);
130 led_t led_usb_state = host_keyboard_led_state();
131 oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
132}
133
134oled_rotation_t oled_init_user(oled_rotation_t rotation) {
135 if (is_keyboard_master()) {
136 return OLED_ROTATION_90;
137 }
138 return rotation;
139}
140
141bool oled_task_user(void) {
142 if (is_keyboard_master()) {
143 print_status_narrow();
144 } else {
145 render_logo();
146 }
147 return false;
148}
149
150#endif
151
152bool process_record_user(uint16_t keycode, keyrecord_t *record) {
153 switch (keycode) {
154 case KC_QWERTY:
155 if (record->event.pressed) {
156 set_single_persistent_default_layer(_QWERTY);
157 }
158 return false;
159 case KC_COLEMAK:
160 if (record->event.pressed) {
161 set_single_persistent_default_layer(_COLEMAK);
162 }
163 return false;
164 case KC_LOWER:
165 if (record->event.pressed) {
166 layer_on(_LOWER);
167 update_tri_layer(_LOWER, _RAISE, _ADJUST);
168 } else {
169 layer_off(_LOWER);
170 update_tri_layer(_LOWER, _RAISE, _ADJUST);
171 }
172 return false;
173 case KC_RAISE:
174 if (record->event.pressed) {
175 layer_on(_RAISE);
176 update_tri_layer(_LOWER, _RAISE, _ADJUST);
177 } else {
178 layer_off(_RAISE);
179 update_tri_layer(_LOWER, _RAISE, _ADJUST);
180 }
181 return false;
182 case KC_ADJUST:
183 if (record->event.pressed) {
184 layer_on(_ADJUST);
185 } else {
186 layer_off(_ADJUST);
187 }
188 return false;
189 case KC_PRVWD:
190 if (record->event.pressed) {
191 if (keymap_config.swap_lctl_lgui) {
192 register_mods(mod_config(MOD_LALT));
193 register_code(KC_LEFT);
194 } else {
195 register_mods(mod_config(MOD_LCTL));
196 register_code(KC_LEFT);
197 }
198 } else {
199 if (keymap_config.swap_lctl_lgui) {
200 unregister_mods(mod_config(MOD_LALT));
201 unregister_code(KC_LEFT);
202 } else {
203 unregister_mods(mod_config(MOD_LCTL));
204 unregister_code(KC_LEFT);
205 }
206 }
207 break;
208 case KC_NXTWD:
209 if (record->event.pressed) {
210 if (keymap_config.swap_lctl_lgui) {
211 register_mods(mod_config(MOD_LALT));
212 register_code(KC_RIGHT);
213 } else {
214 register_mods(mod_config(MOD_LCTL));
215 register_code(KC_RIGHT);
216 }
217 } else {
218 if (keymap_config.swap_lctl_lgui) {
219 unregister_mods(mod_config(MOD_LALT));
220 unregister_code(KC_RIGHT);
221 } else {
222 unregister_mods(mod_config(MOD_LCTL));
223 unregister_code(KC_RIGHT);
224 }
225 }
226 break;
227 case KC_LSTRT:
228 if (record->event.pressed) {
229 if (keymap_config.swap_lctl_lgui) {
230 //CMD-arrow on Mac, but we have CTL and GUI swapped
231 register_mods(mod_config(MOD_LCTL));
232 register_code(KC_LEFT);
233 } else {
234 register_code(KC_HOME);
235 }
236 } else {
237 if (keymap_config.swap_lctl_lgui) {
238 unregister_mods(mod_config(MOD_LCTL));
239 unregister_code(KC_LEFT);
240 } else {
241 unregister_code(KC_HOME);
242 }
243 }
244 break;
245 case KC_LEND:
246 if (record->event.pressed) {
247 if (keymap_config.swap_lctl_lgui) {
248 //CMD-arrow on Mac, but we have CTL and GUI swapped
249 register_mods(mod_config(MOD_LCTL));
250 register_code(KC_RIGHT);
251 } else {
252 register_code(KC_END);
253 }
254 } else {
255 if (keymap_config.swap_lctl_lgui) {
256 unregister_mods(mod_config(MOD_LCTL));
257 unregister_code(KC_RIGHT);
258 } else {
259 unregister_code(KC_END);
260 }
261 }
262 break;
263 case KC_DLINE:
264 if (record->event.pressed) {
265 register_mods(mod_config(MOD_LCTL));
266 register_code(KC_BSPC);
267 } else {
268 unregister_mods(mod_config(MOD_LCTL));
269 unregister_code(KC_BSPC);
270 }
271 break;
272 case KC_COPY:
273 if (record->event.pressed) {
274 register_mods(mod_config(MOD_LCTL));
275 register_code(KC_C);
276 } else {
277 unregister_mods(mod_config(MOD_LCTL));
278 unregister_code(KC_C);
279 }
280 return false;
281 case KC_PASTE:
282 if (record->event.pressed) {
283 register_mods(mod_config(MOD_LCTL));
284 register_code(KC_V);
285 } else {
286 unregister_mods(mod_config(MOD_LCTL));
287 unregister_code(KC_V);
288 }
289 return false;
290 case KC_CUT:
291 if (record->event.pressed) {
292 register_mods(mod_config(MOD_LCTL));
293 register_code(KC_X);
294 } else {
295 unregister_mods(mod_config(MOD_LCTL));
296 unregister_code(KC_X);
297 }
298 return false;
299 break;
300 case KC_UNDO:
301 if (record->event.pressed) {
302 register_mods(mod_config(MOD_LCTL));
303 register_code(KC_Z);
304 } else {
305 unregister_mods(mod_config(MOD_LCTL));
306 unregister_code(KC_Z);
307 }
308 return false;
309 }
310 return true;
311}
312
313#ifdef ENCODER_ENABLE
314
315bool encoder_update_user(uint8_t index, bool clockwise) {
316 if (index == 0) {
317 if (clockwise) {
318 tap_code(KC_VOLU);
319 } else {
320 tap_code(KC_VOLD);
321 }
322 } else if (index == 1) {
323 if (clockwise) {
324 rgblight_step();
325 } else {
326 rgblight_step_reverse();
327 }
328 }
329 return true;
330}
331
332#endif
diff --git a/keyboards/aleblazer/zodiark/keymaps/slimoled/rules.mk b/keyboards/aleblazer/zodiark/keymaps/slimoled/rules.mk
deleted file mode 100644
index 1e3cebb145..0000000000
--- a/keyboards/aleblazer/zodiark/keymaps/slimoled/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1RGBLIGHT_ENABLE = yes
diff --git a/keyboards/alhenkb/macropad5x4/keymaps/numpad/keymap.c b/keyboards/alhenkb/macropad5x4/keymaps/numpad/keymap.c
deleted file mode 100644
index 7a1e287e38..0000000000
--- a/keyboards/alhenkb/macropad5x4/keymaps/numpad/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
1// Copyright 2023 QMK
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 /*
8 * ┌───┬───┬───┬───┐
9 * │TG1│ / │ * │ - │
10 * ├───┼───┼───┼───┤
11 * │ 7 │ 8 │ 9 │ │
12 * ├───┼───┼───┤ + │
13 * │ 4 │ 5 │ 6 │ │
14 * ├───┼───┼───┼───┤
15 * │ 1 │ 2 │ 3 │ │
16 * ├───┴───┼───┤Ent│
17 * │ 0 │ . │ │
18 * └───────┴───┴───┘
19 */
20 [0] = LAYOUT_numpad_5x4(
21 TG(1), KC_PSLS, KC_PAST, KC_PMNS,
22 KC_P7, KC_P8, KC_P9,
23 KC_P4, KC_P5, KC_P6, KC_PPLS,
24 KC_P1, KC_P2, KC_P3,
25 KC_P0, KC_PDOT, KC_PENT
26 ),
27
28 /*
29 * ┌───┬───┬───┬───┐
30 * │TG1│ / │ * │ - │
31 * ┌───┬───┬───┐───┤
32 * │Hom│ ↑ │PgU│ │
33 * ├───┼───┼───┤ + │
34 * │ ← │ │ → │ │
35 * ├───┼───┼───┤───┤
36 * │End│ ↓ │PgD│ │
37 * ├───┴───┼───┤Ent│
38 * │Insert │Del│ │
39 * └───────┴───┘───┘
40 */
41 [1] = LAYOUT_numpad_5x4(
42 _______, _______, _______, _______,
43 KC_HOME, KC_UP, KC_PGUP,
44 KC_LEFT, XXXXXXX, KC_RGHT, _______,
45 KC_END, KC_DOWN, KC_PGDN,
46 KC_INS, KC_DEL, _______
47 )
48};
diff --git a/keyboards/alpha/keymaps/vderm/README.md b/keyboards/alpha/keymaps/vderm/README.md
deleted file mode 100644
index 26a8ab3e85..0000000000
--- a/keyboards/alpha/keymaps/vderm/README.md
+++ /dev/null
@@ -1,35 +0,0 @@
1# Alpha 28-Key Keyboard Alternate Keymap
2Alternate keymap for [Alpha 28-key keyboard](https://github.com/qmk/qmk_firmware/tree/master/keyboards/alpha).
3
4## How-to
5Assuming you've followed all the instructions from the original post, put my "keymap.c" file in "$qmk-firmware-folder$/keyboards/alpha/keymaps/vderm/" and then run your make command ("make alpha:vderm" while in $qmk-firmware-folder$ where this folder is what you've downloaded from the official github page) to compile the hex file to upload to your microcontroller. I've also uploaded my hex file.
6
7## Description
8Instead of going up and down layers like in the original Alpha keyboard, I've made the bottom row keys all have alternate functions:
9+ Like in the original Alpha28 keymap, the 2U spacebar is a shift key when held down and space when tapped
10+ Z and M are Ctrl keys when held down or Z and M when tapped
11+ X and N are Alt keys
12+ C activates the function keys layer (arrows, page up/dn, esc, tab, etc.)
13+ V activates the characters and numbers layer
14+ C and V combined activated the F-keys layer (F1, F2, F3, etc.)
15+ The enter key is an enter key in the home layer, backspace in the function keys and characters/numbers layer and a delete in the F-keys layer
16+ While in the other layers, the bottom row acts like a "regular" bottom modified row: ctrl, alt, winkey
17
18## Keymap
19![keymap](https://imgur.com/ZbDz0eL.jpg)
20
21## Build Images
22Here is my keyboard.
23+ Switches: Aliaz Silent Switches (Tactile), PCB mount, 80g from [KBDfans](https://kbdfans.cn/collections/aliaz-switches/products/pre-orderaliaz-silent-switch-tactile?variant=2519899832333)
24+ PCB board: ordered from JLCPCB, in white
25+ Keycaps: ebay, can't find link :S
26+ Bottom plate: I cut a piece of canary wood that was laying around, needs to be varnished; I also need to actually screw the pcb to the wood instead of relying on double-sided tape
27
28![vderm_alpha0](https://imgur.com/MjjoVtr.jpg)
29![vderm_alpha1](https://imgur.com/mIFu9WV.jpg)
30![vderm_alpha2](https://imgur.com/A70Iemw.jpg)
31![vderm_alpha3](https://imgur.com/eYljPWh.jpg)
32![vderm_alpha4](https://imgur.com/OhUKowj.jpg)
33
34Good luck on your build!
35//vderm
diff --git a/keyboards/alpha/keymaps/vderm/keymap.c b/keyboards/alpha/keymaps/vderm/keymap.c
deleted file mode 100644
index e3ac94807d..0000000000
--- a/keyboards/alpha/keymaps/vderm/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
1#include QMK_KEYBOARD_H
2
3#define HOME 0
4#define FN 1
5#define FNCHAR 2
6#define FKEYS 3
7
8const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
9 [HOME] = LAYOUT(
10 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
11 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
12 MT(MOD_LCTL, KC_Z), MT(MOD_LALT, KC_X), LT(1, KC_C), LT(2, KC_V), MT(MOD_LSFT, KC_SPC), MT(MOD_RGUI,KC_B), MT(MOD_RALT, KC_N), MT(MOD_RCTL, KC_M)),
13
14 [FN] = LAYOUT(
15 KC_ESC, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO,
16 KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BSPC,
17 KC_LCTL, KC_LALT, KC_TRNS, MO(3), MT(MOD_LSFT, KC_SPC), KC_RGUI, KC_RALT, KC_RCTL),
18
19 [FNCHAR] = LAYOUT(
20 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
21 KC_GRV,KC_NO,KC_MINS,KC_EQL,KC_BSLS,KC_LBRC,KC_RBRC,KC_SCLN,KC_QUOT,KC_BSPC,
22 KC_LCTL, KC_LALT, MO(3), KC_TRNS, MT(MOD_LSFT, KC_SPC), KC_COMM, KC_DOT, KC_SLSH),
23
24 [FKEYS] = LAYOUT(
25 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
26 KC_F11,KC_F12,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_DEL,
27 KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, MT(MOD_LSFT, KC_SPC), KC_RGUI, KC_RALT, KC_RCTL),
28};
29
30void matrix_init_user(void) {
31}
32
33void matrix_scan_user(void) {
34}
diff --git a/keyboards/alps64/keymaps/crd/keymap.c b/keyboards/alps64/keymaps/crd/keymap.c
deleted file mode 100644
index e68977d867..0000000000
--- a/keyboards/alps64/keymaps/crd/keymap.c
+++ /dev/null
@@ -1,30 +0,0 @@
1#include QMK_KEYBOARD_H
2
3enum keyboard_layers {
4 _BL = 0, // Base Layer
5 _FL // Function Layer
6};
7
8// Custom #defined keycodes (shorter macros for readability)
9#define KC_CTES CTL_T(KC_ESC)
10#define KC_RSUP RSFT_T(KC_UP)
11#define KC_FNDN LT(_FL, KC_DOWN)
12#define KC_RGLT RCMD_T(KC_LEFT)
13#define KC_RCRT RCTL_T(KC_RIGHT)
14
15const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16 [_BL] = LAYOUT_aek_103(
17 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
18 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
19 KC_CTES, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
20 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSUP,
21 MO(_FL), KC_LALT, KC_LGUI, KC_SPC, KC_RGLT, KC_FNDN, KC_RCRT
22 ),
23 [_FL] = LAYOUT_aek_103(
24 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
25 _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, QK_BOOT,
26 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SCRL, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______,
27 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
28 _______, _______, _______, _______, _______, _______, _______
29 )
30};
diff --git a/keyboards/amag23/keymaps/qwert/keymap.c b/keyboards/amag23/keymaps/qwert/keymap.c
deleted file mode 100644
index 0b29c46072..0000000000
--- a/keyboards/amag23/keymaps/qwert/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
1/* Copyright 2021
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#include QMK_KEYBOARD_H
17
18// Defines names for use in layer keycodes and the keymap
19enum layer_names {
20 BASE,
21 FN1
22};
23
24// clang-format off
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [BASE] = LAYOUT( /* Base Layer */
27 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
28 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
29 MO(FN1), KC_A, KC_S, KC_D, KC_F, KC_G,
30 KC_LSFT, KC_Z, KC_X, KC_C, KC_SPC
31 ),
32 [FN1] = LAYOUT( /* Function Layer */
33 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
34 _______, RGB_TOG, RGB_VAI, RGB_MOD, RGB_HUI, _______,
35 _______, _______, RGB_VAD, RGB_RMOD,RGB_HUD, _______,
36 _______, _______, _______, _______, _______
37 ),
38};
39// clang-format on
40
diff --git a/keyboards/amag23/keymaps/qwert/readme.md b/keyboards/amag23/keymaps/qwert/readme.md
deleted file mode 100644
index c3a7df467d..0000000000
--- a/keyboards/amag23/keymaps/qwert/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
1# QWERT Keymap for Koolertron AMAG23
2
3## Additional Notes
4QWERT keymap, based on the left hand of an ortholinear layout.
5
6## Keymap
7
8![AMAG23 QWERT Layout](https://i.imgur.com/fiDUo77.png)
9
10## Build
11
12To build the factory keymap, simply run:
13
14 make amag23:qwert
diff --git a/keyboards/amjkeyboard/amj40/keymaps/myee/config.h b/keyboards/amjkeyboard/amj40/keymaps/myee/config.h
deleted file mode 100644
index 8e6c4dfa43..0000000000
--- a/keyboards/amjkeyboard/amj40/keymaps/myee/config.h
+++ /dev/null
@@ -1,10 +0,0 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3#include "../../config.h"
4
5#define TAPPING_TERM 25
6#define RETRO_TAPPING
7#define PERMISSIVE_HOLD
8
9
10#endif \ No newline at end of file
diff --git a/keyboards/amjkeyboard/amj40/keymaps/myee/keymap.c b/keyboards/amjkeyboard/amj40/keymaps/myee/keymap.c
deleted file mode 100644
index a39e2af969..0000000000
--- a/keyboards/amjkeyboard/amj40/keymaps/myee/keymap.c
+++ /dev/null
@@ -1,93 +0,0 @@
1
2
3
4#include QMK_KEYBOARD_H
5
6// Keymap myee
7// Each layer gets a name for readability, which is then used in the keymap matrix below.
8// The underscores don't mean anything - you can have a layer called STUFF or any other name.
9// Layer names don't all need to be of the same length, obviously, and you can also skip them
10// entirely and just use numbers.
11#define _QWERTY 0
12#define _LOWER 1
13#define _RAISE 2
14#define _ADJUST 3
15
16#define LOW_SPC LT(_LOWER, KC_SPC)
17#define RSE_SPC LT(_RAISE, KC_SPC)
18#define ADJ_TAB LT(ADJUST, KC_TAB)
19
20enum custom_keycodes {
21 QWERTY = SAFE_RANGE,
22 LOWER,
23 RAISE,
24 ADJUST,
25};
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28
29 [_QWERTY] = LAYOUT(
30 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
31 ADJ_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
32 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
33 KC_LCTL, KC_LGUI,KC_LALT, LOW_SPC, RSE_SPC, KC_RGUI,KC_RALT, KC_RCTL
34 ),
35
36 [_LOWER] = LAYOUT(
37 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_UP, KC_MINS, KC_EQL, KC_DEL,
38 _______, _______, KC_ASTR, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQUO, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSLS,
39 _______, _______, _______, KC_LPRN, KC_RPRN, KC_HOME, KC_PGUP, KC_PGDN, KC_END, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______
41 ),
42
43 [_RAISE] = LAYOUT(
44 KC_GRV, KC_LPRN, KC_RPRN, KC_DQUO, KC_QUOT, KC_SCLN, KC_COLON,KC_UNDS, KC_PLUS, _______, _______, KC_BSPC,
45 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
46 _______, _______, _______, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, BL_UP, BL_DOWN
48 ),
49
50 [_ADJUST] = LAYOUT(
51 _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
54 KC_SYSTEM_SLEEP, _______, _______, _______, _______, _______, _______, _______
55 ),
56
57};
58
59bool process_record_user(uint16_t keycode, keyrecord_t *record) {
60
61 switch (keycode) {
62
63 case LOWER:
64 if (record->event.pressed) {
65 layer_on(_LOWER);
66 update_tri_layer(_LOWER, _RAISE, _ADJUST);
67 } else {
68 layer_off(_LOWER);
69 update_tri_layer(_LOWER, _RAISE, _ADJUST);
70 }
71 return false;
72 break;
73 case RAISE:
74 if (record->event.pressed) {
75 layer_on(_RAISE);
76 update_tri_layer(_LOWER, _RAISE, _ADJUST);
77 } else {
78 layer_off(_RAISE);
79 update_tri_layer(_LOWER, _RAISE, _ADJUST);
80 }
81 return false;
82 break;
83 case ADJUST:
84 if (record->event.pressed) {
85 layer_on(_ADJUST);
86 } else {
87 layer_off(_ADJUST);
88 }
89 return false;
90 break;
91 }
92 return true;
93}
diff --git a/keyboards/amjkeyboard/amj40/keymaps/myee/readme.md b/keyboards/amjkeyboard/amj40/keymaps/myee/readme.md
deleted file mode 100644
index 2659292ae5..0000000000
--- a/keyboards/amjkeyboard/amj40/keymaps/myee/readme.md
+++ /dev/null
@@ -1,11 +0,0 @@
1AMJ40 Default Layout
2=====================
3
4##Quantum MK Firmware
5For the full Quantum feature list, see the parent readme.md.
6
7# Features
8* Based on a combination of the original AMJ40 keymap from the TMK firmware as well as the Planck Ortholinear keyboard's "Lower," "Raise," and "Adjust" layers.
9* View the keymap.c file to understand they layout of the keymap.
10* Has keys to toggle both the switch LEDs and underglow LEDs.
11
diff --git a/keyboards/amjkeyboard/amj40/keymaps/myee/rules.mk b/keyboards/amjkeyboard/amj40/keymaps/myee/rules.mk
deleted file mode 100644
index b8cc8b42c7..0000000000
--- a/keyboards/amjkeyboard/amj40/keymaps/myee/rules.mk
+++ /dev/null
@@ -1,19 +0,0 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
6MOUSEKEY_ENABLE = no # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
17
18# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
19SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/amjkeyboard/amj40/keymaps/myee/updatemerge.sh b/keyboards/amjkeyboard/amj40/keymaps/myee/updatemerge.sh
deleted file mode 100644
index da5457e195..0000000000
--- a/keyboards/amjkeyboard/amj40/keymaps/myee/updatemerge.sh
+++ /dev/null
@@ -1,4 +0,0 @@
1#!/bin/bash
2git checkout amj60 # gets you on branch amj60
3git fetch origin # gets you up to date with origin
4git merge origin/master
diff --git a/keyboards/an_achronism/tetromino/keymaps/indicators/config.h b/keyboards/an_achronism/tetromino/keymaps/indicators/config.h
deleted file mode 100644
index f117063fb1..0000000000
--- a/keyboards/an_achronism/tetromino/keymaps/indicators/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
1/*
2Copyright 2022 an_achronism (@an-achronism)
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*/
17
18#pragma once
19#define RGB_TRIGGER_ON_KEYDOWN
20
21/* disable debug print */
22//#define NO_DEBUG
23
24/* disable print */
25//#define NO_PRINT
26
27/* disable action features */
28//#define NO_ACTION_LAYER
29//#define NO_ACTION_TAPPING
30//#define NO_ACTION_ONESHOT
diff --git a/keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c b/keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c
deleted file mode 100644
index 17d8386089..0000000000
--- a/keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c
+++ /dev/null
@@ -1,125 +0,0 @@
1/*
2Copyright 2022 an_achronism (@an-achronism)
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*/
17
18#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 /*
22 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
23 * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Del│
24 * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
25 * │Tab| Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bsp│
26 * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
27 * │Ctl│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │UK#│Rtn|
28 * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
29 * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Sft│ ↑ │App|
30 * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
31 * │Esc│Ctl│Alt│GUI│L_1│Spc│L_2|GUI│Alt│Ctl|UK\│ ← │ ↓ │ → │
32 * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
33 */
34 [0] = LAYOUT_ortho_5x14(
35 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL,
36 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
37 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
38 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, RSFT_T(KC_APP),
39 KC_ESC, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_RGUI, KC_RALT, KC_RCTL, KC_NUBS, KC_LEFT, KC_DOWN, KC_RGHT
40 ),
41 [1] = LAYOUT_ortho_5x14(
42 KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_NUM, KC_PSLS, KC_PAST, KC_PEQL, _______, _______, _______, KC_PWR,
43 _______, _______, KC_UP, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_PAUS, KC_ESC, _______, KC_SLEP,
44 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, KC_CALC,
45 KC_CAPS, _______, _______, _______, _______, KC_PAUS, KC_P1, KC_P2, KC_P3, KC_PENT, _______, KC_CAPS, _______, _______,
46 _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______, _______, _______, _______, _______, _______
47 ),
48 [2] = LAYOUT_ortho_5x14(
49 _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP,
50 _______, KC_F4, KC_F3, KC_F2, KC_F1, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, C(KC_BRK), KC_ESC, _______, _______,
51 _______, KC_F8, KC_F7, KC_F6, KC_F5, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MPRV, KC_MNXT, KC_MPLY,
52 KC_CAPS, KC_F12, KC_F11, KC_F10, KC_F9, C(KC_BRK),_______, _______, _______, _______, _______, KC_CAPS, _______, KC_PSCR,
53 _______, _______, _______, _______, MO(3), _______, _______, _______, _______, _______, _______, _______, _______, _______
54 ),
55 [3] = LAYOUT_ortho_5x14(
56 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
60 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
61 )
62};
63
64// Initialise RBG matrix with all LEDs set to solid colour and zero HSV (i.e. off):
65void keyboard_post_init_user(void) {
66 rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
67 rgb_matrix_sethsv_noeeprom(HSV_OFF);
68};
69
70// Custom RGB indicator behaviour:
71bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
72 uint8_t led_processed_count = 0;
73 for (uint8_t row = 0; row < MATRIX_ROWS; ++row) {
74 for (uint8_t col = 0; col < MATRIX_COLS; ++col) {
75 if (led_processed_count == RGB_MATRIX_LED_PROCESS_LIMIT){
76 return;
77 }
78 uint8_t led_index = g_led_config.matrix_co[row][col];
79 uint16_t keycode = keymap_key_to_keycode(0, (keypos_t){col,row});
80 if (led_index >= led_min && led_index <= led_max && led_index != NO_LED) {
81 // Light base layer arrow keys orange if Scroll Lock is on, otherwise light them magenta:
82 led_processed_count++;
83 if (keycode >= KC_RIGHT && keycode <= KC_UP) {
84 if (host_keyboard_led_state().scroll_lock) {
85 rgb_matrix_set_color(led_index, RGB_ORANGE);
86 } else {
87 rgb_matrix_set_color(led_index, RGB_MAGENTA);
88 }
89 }
90 // Light alpha keys (A-Z only) red if Caps Lock is on:
91 if (host_keyboard_led_state().caps_lock && keycode >= KC_A && keycode <= KC_Z) {
92 rgb_matrix_set_color(led_index, RGB_RED);
93 }
94 // Whenever a layer above base is active, recolour only the keys that are different on that layer:
95 if (get_highest_layer(layer_state) > 0) {
96 uint8_t layer = get_highest_layer(layer_state);
97 uint16_t momentary_keycode = keymap_key_to_keycode(layer, (keypos_t){col,row});
98 if (momentary_keycode > KC_TRNS) {
99 switch(layer) {
100 case 2:
101 // The uppermost layer is blue:
102 rgb_matrix_set_color(led_index, RGB_BLUE);
103 break;
104 case 1:
105 // The middle layer is green, except that the numpad section turns
106 // orange when Num Lock is on:
107 if (host_keyboard_led_state().num_lock &&
108 (momentary_keycode == KC_KP_EQUAL ||
109 (momentary_keycode >= KC_NUM_LOCK && momentary_keycode <= KC_KP_DOT)
110 )) {
111 rgb_matrix_set_color(led_index, RGB_ORANGE);
112 } else {
113 rgb_matrix_set_color(led_index, RGB_GREEN);
114 }
115 break;
116 default:
117 break;
118 }
119 }
120 }
121 }
122 }
123 }
124 return false;
125}
diff --git a/keyboards/anavi/macropad8/keymaps/git/config.h b/keyboards/anavi/macropad8/keymaps/git/config.h
deleted file mode 100644
index 370eb86ca8..0000000000
--- a/keyboards/anavi/macropad8/keymaps/git/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
1/* Copyright 2021 Leon Anavi <leon@anavi.org>
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#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
20#undef RGBLIGHT_EFFECT_KNIGHT
21#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
22#undef RGBLIGHT_EFFECT_RGB_TEST
23#undef RGBLIGHT_EFFECT_ALTERNATING
24#undef RGBLIGHT_EFFECT_TWINKLE
diff --git a/keyboards/anavi/macropad8/keymaps/git/keymap.c b/keyboards/anavi/macropad8/keymaps/git/keymap.c
deleted file mode 100644
index 9b7afb5d69..0000000000
--- a/keyboards/anavi/macropad8/keymaps/git/keymap.c
+++ /dev/null
@@ -1,145 +0,0 @@
1/* Copyright 2021 Leon Anavi <leon@anavi.org>
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#include QMK_KEYBOARD_H
18
19#define _MAIN 0
20#define _FN 1
21
22/*
23 * This keymap contains the following shortcuts for Git. On the
24 * first row from left to right:
25 *
26 * git status
27 * git log
28 * git pull
29 * git push
30 *
31 * On the second row from left to right:
32 *
33 * git diff
34 * git add
35 * git commit
36 * FN key to switch to the 2nd layout and control lights
37 *
38 */
39
40enum custom_keycodes {
41 GITCOMMIT = SAFE_RANGE,
42 GITPUSH,
43 GITPULL,
44 GITSTATUS,
45 GITDIFF,
46 GITLOG,
47 GITADD
48};
49
50bool process_record_user(uint16_t keycode, keyrecord_t *record) {
51 switch (keycode) {
52 case GITCOMMIT:
53 if (record->event.pressed) {
54 SEND_STRING("git commit -s\n");
55 }
56 break;
57 case GITPUSH:
58 if (record->event.pressed) {
59 SEND_STRING("git push\n");
60 }
61 break;
62 case GITPULL:
63 if (record->event.pressed) {
64 SEND_STRING("git pull\n");
65 }
66 break;
67 case GITSTATUS:
68 if (record->event.pressed) {
69 SEND_STRING("git status\n");
70 }
71 break;
72 case GITDIFF:
73 if (record->event.pressed) {
74 SEND_STRING("git diff ");
75 }
76 break;
77 case GITLOG:
78 if (record->event.pressed) {
79 SEND_STRING("git log\n");
80 }
81 break;
82 case GITADD:
83 if (record->event.pressed) {
84 SEND_STRING("git add ");
85 }
86 break;
87 }
88 return true;
89};
90
91const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
92 [_MAIN] = LAYOUT_ortho_2x4(
93 GITSTATUS, GITLOG, GITPULL, GITPUSH,
94 GITDIFF, GITADD, GITCOMMIT, MO(_FN)
95 ),
96
97 [_FN] = LAYOUT_ortho_2x4(
98 RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN,
99 BL_TOGG, BL_STEP, BL_BRTG, _______
100 )
101};
102
103#ifdef OLED_ENABLE
104oled_rotation_t oled_init_user(oled_rotation_t rotation) {
105 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
106}
107
108bool oled_task_user(void) {
109 // Host Keyboard Layer Status
110 oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
111 oled_write_P(PSTR("Active layer: "), false);
112
113 switch (get_highest_layer(layer_state)) {
114 case _MAIN:
115 oled_write_ln_P(PSTR("Git"), false);
116 break;
117 case _FN:
118 oled_write_ln_P(PSTR("FN"), false);
119 break;
120 default:
121 // Or use the write_ln shortcut over adding '\n' to the end of your string
122 oled_write_ln_P(PSTR("N/A"), false);
123 }
124
125 // Host Keyboard LED Status
126 led_t led_state = host_keyboard_led_state();
127 oled_write_P(PSTR("Num Lock: "), false);
128 oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false);
129 oled_write_P(PSTR("Caps Lock: "), false);
130 oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);
131 oled_write_P(PSTR("Scroll Lock: "), false);
132 oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false);
133 oled_write_P(PSTR("Backlit: "), false);
134 oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false);
135#ifdef RGBLIGHT_ENABLE
136 static char rgbStatusLine1[26] = {0};
137 snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode());
138 oled_write_ln(rgbStatusLine1, false);
139 static char rgbStatusLine2[26] = {0};
140 snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
141 oled_write_ln(rgbStatusLine2, false);
142#endif
143 return false;
144}
145#endif
diff --git a/keyboards/anavi/macropad8/keymaps/kicad/keymap.c b/keyboards/anavi/macropad8/keymaps/kicad/keymap.c
deleted file mode 100644
index e75d588478..0000000000
--- a/keyboards/anavi/macropad8/keymaps/kicad/keymap.c
+++ /dev/null
@@ -1,118 +0,0 @@
1 /* Copyright 2020 Leon Anavi <leon@anavi.org>
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#include QMK_KEYBOARD_H
18
19#define _SCH 0
20#define _PCB 1
21#define _FN 2
22
23#define KC_X0 LT(_FN, KC_ESC)
24
25#ifdef RGBLIGHT_ENABLE
26// How long (in ms) to wait between animation steps for the rainbow mode
27const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {60, 30, 15};
28// How long (in milliseconds) to wait between animation steps for each of the "Swirling rainbow" animations
29const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {20, 10, 4};
30#endif
31
32/*
33 * The keymap contains 2 layers for KiCad hotkeys and a 3rd layer
34 * for controlling the backlighting and the underlighting.
35 *
36 * - Layer for KiCad Schematic hotkeys:
37 * m - to move selected component
38 * r - to rotate selected component
39 * w - to wire components
40 * v - to edit component value
41 * F1 - zoom in
42 * F2 - zoom out
43 * F4 - zoom center
44 *
45 * - Layer for KiCad PCB layout hotkets:
46 * m - to move selected component
47 * r - to rotate selected component
48 * x - to route a new track
49 * v - to add a via
50 * F1 - zoom in
51 * F2 - zoom out
52 * F4 - zoom center
53 *
54 */
55
56const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
57 [_SCH] = LAYOUT_ortho_2x4(
58 KC_M, KC_R, KC_W, KC_V,
59 KC_F1, KC_F2, KC_F4, TO(_PCB)
60 ),
61
62 [_PCB] = LAYOUT_ortho_2x4(
63 KC_M, KC_R, KC_X, KC_V,
64 KC_F1, KC_F2, KC_F4, TO(_FN)
65 ),
66
67 [_FN] = LAYOUT_ortho_2x4(
68 RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN,
69 BL_TOGG, BL_STEP, BL_BRTG, TO(_SCH)
70 )
71};
72
73#ifdef OLED_ENABLE
74oled_rotation_t oled_init_user(oled_rotation_t rotation) {
75 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
76}
77
78bool oled_task_user(void) {
79 // Host Keyboard Layer Status
80 oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
81 oled_write_P(PSTR("Layer: "), false);
82
83 switch (get_highest_layer(layer_state)) {
84 case _SCH:
85 oled_write_ln_P(PSTR("KiCad Schema"), false);
86 break;
87 case _PCB:
88 oled_write_ln_P(PSTR("KiCad PCB"), false);
89 break;
90 case _FN:
91 oled_write_ln_P(PSTR("FN "), false);
92 break;
93 default:
94 // Or use the write_ln shortcut over adding '\n' to the end of your string
95 oled_write_ln_P(PSTR("N/A"), false);
96 }
97
98 // Host Keyboard LED Status
99 led_t led_state = host_keyboard_led_state();
100 oled_write_P(PSTR("Num Lock: "), false);
101 oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false);
102 oled_write_P(PSTR("Caps Lock: "), false);
103 oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);
104 oled_write_P(PSTR("Scroll Lock: "), false);
105 oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false);
106 oled_write_P(PSTR("Backlit: "), false);
107 oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false);
108#ifdef RGBLIGHT_ENABLE
109 static char rgbStatusLine1[26] = {0};
110 snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode());
111 oled_write_ln(rgbStatusLine1, false);
112 static char rgbStatusLine2[26] = {0};
113 snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
114 oled_write_ln(rgbStatusLine2, false);
115#endif
116 return false;
117}
118#endif
diff --git a/keyboards/anavi/macropad8/keymaps/kodi/keymap.c b/keyboards/anavi/macropad8/keymaps/kodi/keymap.c
deleted file mode 100644
index f99a22d723..0000000000
--- a/keyboards/anavi/macropad8/keymaps/kodi/keymap.c
+++ /dev/null
@@ -1,81 +0,0 @@
1#include QMK_KEYBOARD_H
2
3#define _MAIN 0
4#define _FN 1
5
6#define KC_X0 LT(_FN, KC_ESC)
7
8#ifdef RGBLIGHT_ENABLE
9// How long (in ms) to wait between animation steps for the rainbow mode
10const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {60, 30, 15};
11// How long (in milliseconds) to wait between animation steps for each of the "Swirling rainbow" animations
12const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {20, 10, 4};
13#endif
14
15/**
16 * Kodi shortcuts:
17 *
18 * ESC - Previous menu OR Home screen
19 * Enter - Select
20 * X - Stop
21 * Arrows to move
22 *
23 * For details have a look at:
24 * https://kodi.wiki/view/Keyboard_controls
25 */
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28 [_MAIN] = LAYOUT_ortho_2x4(
29 KC_ESC, KC_UP, KC_ENTER, KC_X,
30 KC_LEFT, KC_DOWN, KC_RIGHT, MO(_FN)
31 ),
32
33 [_FN] = LAYOUT_ortho_2x4(
34 RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN,
35 BL_TOGG, BL_STEP, BL_BRTG, _______
36 )
37};
38
39#ifdef OLED_ENABLE
40oled_rotation_t oled_init_user(oled_rotation_t rotation) {
41 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
42}
43
44bool oled_task_user(void) {
45 // Host Keyboard Layer Status
46 oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
47 oled_write_P(PSTR("Active layer: "), false);
48
49 switch (get_highest_layer(layer_state)) {
50 case _MAIN:
51 oled_write_ln_P(PSTR("Kodi"), false);
52 break;
53 case _FN:
54 oled_write_ln_P(PSTR("FN"), false);
55 break;
56 default:
57 // Or use the write_ln shortcut over adding '\n' to the end of your string
58 oled_write_ln_P(PSTR("N/A"), false);
59 }
60
61 // Host Keyboard LED Status
62 led_t led_state = host_keyboard_led_state();
63 oled_write_P(PSTR("Num Lock: "), false);
64 oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false);
65 oled_write_P(PSTR("Caps Lock: "), false);
66 oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);
67 oled_write_P(PSTR("Scroll Lock: "), false);
68 oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false);
69 oled_write_P(PSTR("Backlit: "), false);
70 oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false);
71#ifdef RGBLIGHT_ENABLE
72 static char rgbStatusLine1[26] = {0};
73 snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode());
74 oled_write_ln(rgbStatusLine1, false);
75 static char rgbStatusLine2[26] = {0};
76 snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
77 oled_write_ln(rgbStatusLine2, false);
78#endif
79 return false;
80}
81#endif
diff --git a/keyboards/anavi/macropad8/keymaps/obs/keymap.c b/keyboards/anavi/macropad8/keymaps/obs/keymap.c
deleted file mode 100644
index 1d9fd38eed..0000000000
--- a/keyboards/anavi/macropad8/keymaps/obs/keymap.c
+++ /dev/null
@@ -1,98 +0,0 @@
1 /* Copyright 2020 Leon Anavi <leon@anavi.org>
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#include QMK_KEYBOARD_H
18
19#define _MAIN 0
20#define _FN 1
21
22#define KC_X0 LT(_FN, KC_ESC)
23
24#ifdef RGBLIGHT_ENABLE
25// How long (in ms) to wait between animation steps for the rainbow mode
26const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {60, 30, 15};
27// How long (in milliseconds) to wait between animation steps for each of the "Swirling rainbow" animations
28const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {20, 10, 4};
29#endif
30
31/*
32 * This keymap contains the following shortcuts for OBS:
33 *
34 * - Shortcuts useful for switching scenes on the 1st row:
35 * Hold Left Control, Shift, Alt and GUI and press F9
36 * Hold Left Control, Shift, Alt and GUI and press F10
37 * Hold Left Control, Shift, Alt and GUI and press F11
38 * Hold Left Control, Shift, Alt and GUI and press F12
39 * - Center to screen: Ctrl+D
40 * - Fit to screen: Ctrl+F
41 * - Move source to top of sources list: Ctrl+Home
42 */
43
44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 [_MAIN] = LAYOUT_ortho_2x4(
46 HYPR(KC_F9), HYPR(KC_F10), HYPR(KC_F11), HYPR(KC_F12),
47 LCTL(KC_D), LCTL(KC_F), LCTL(KC_HOME), MO(_FN)
48 ),
49
50 [_FN] = LAYOUT_ortho_2x4(
51 RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN,
52 BL_TOGG, BL_STEP, BL_BRTG, _______
53 )
54};
55
56#ifdef OLED_ENABLE
57oled_rotation_t oled_init_user(oled_rotation_t rotation) {
58 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
59}
60
61bool oled_task_user(void) {
62 // Host Keyboard Layer Status
63 oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
64 oled_write_P(PSTR("Active layer: "), false);
65
66 switch (get_highest_layer(layer_state)) {
67 case _MAIN:
68 oled_write_ln_P(PSTR("OBS"), false);
69 break;
70 case _FN:
71 oled_write_ln_P(PSTR("FN"), false);
72 break;
73 default:
74 // Or use the write_ln shortcut over adding '\n' to the end of your string
75 oled_write_ln_P(PSTR("N/A"), false);
76 }
77
78 // Host Keyboard LED Status
79 led_t led_state = host_keyboard_led_state();
80 oled_write_P(PSTR("Num Lock: "), false);
81 oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false);
82 oled_write_P(PSTR("Caps Lock: "), false);
83 oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);
84 oled_write_P(PSTR("Scroll Lock: "), false);
85 oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false);
86 oled_write_P(PSTR("Backlit: "), false);
87 oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false);
88#ifdef RGBLIGHT_ENABLE
89 static char rgbStatusLine1[26] = {0};
90 snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode());
91 oled_write_ln(rgbStatusLine1, false);
92 static char rgbStatusLine2[26] = {0};
93 snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
94 oled_write_ln(rgbStatusLine2, false);
95#endif
96 return false;
97}
98#endif
diff --git a/keyboards/anavi/macropad8/keymaps/vlc/keymap.c b/keyboards/anavi/macropad8/keymaps/vlc/keymap.c
deleted file mode 100644
index 3ea53c57cb..0000000000
--- a/keyboards/anavi/macropad8/keymaps/vlc/keymap.c
+++ /dev/null
@@ -1,139 +0,0 @@
1 /* Copyright 2021 Marc Nause <marc.nause@gmx.de>
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#include QMK_KEYBOARD_H
18
19enum custom_layers {
20 _PLAY,
21 _FRAME,
22 _DVD,
23 _FN
24};
25
26#define KC_X0 LT(_FN, KC_ESC)
27
28#ifdef RGBLIGHT_ENABLE
29// How long (in ms) to wait between animation steps for the rainbow mode
30const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {60, 30, 15};
31// How long (in milliseconds) to wait between animation steps for each of the "Swirling rainbow" animations
32const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {20, 10, 4};
33#endif
34
35/*
36 * The keymap contains 3 layers for vlc hotkeys and a 4th layer
37 * for controlling the backlighting and the underlighting.
38 *
39 * See https://wiki.videolan.org/QtHotkeys/ for VLC hotkeys
40 *
41 * - Layer for VLC media play hotkeys:
42 * Space - Play/pause
43 * P - Previous track
44 * S - Stop
45 * N - Next track
46 * + - Slower
47 * - - Faster
48 * = - Normal rate
49 *
50 * - Layer for VLC frame control hotkeys:
51 * Shift + right arrow - Jump 5 seconds forward
52 * Alt + right arrow - Jump 10 seconds forward
53 * Control + right arrow - Jump 1 minute forward
54 * E - Next frame
55 * Shift + left arrow - Jump 5 seconds back
56 * Alt + left arrow - Jump 10 seconds back
57 * Control + left arrow - Jump 1 minute back
58 *
59 * - Layer for VLC DVD hotkeys:
60 * Shift + M - Disc menu
61 * Arrow up - Navigate menu (up)
62 * Enter - Select menu entry
63 * Shift + V - Toggle subtitles
64 * Arrow left - Navigate menu (left)
65 * Arrow down - Navigate menu (down)
66 * Arrow right - Navigate menu (right)
67 */
68
69const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
70 [_PLAY] = LAYOUT_ortho_2x4(
71 KC_SPC, KC_P, KC_S, KC_N,
72 KC_KP_PLUS, KC_KP_MINUS, KC_KP_EQUAL, TO(_FRAME)
73 ),
74
75 [_FRAME] = LAYOUT_ortho_2x4(
76 LSFT(KC_RIGHT), LALT(KC_RIGHT), LCTL(KC_RIGHT), KC_E,
77 LSFT(KC_LEFT), LALT(KC_LEFT), LCTL(KC_LEFT), TO(_DVD)
78 ),
79
80 [_DVD] = LAYOUT_ortho_2x4(
81 LSFT(KC_M), KC_UP, KC_ENTER, LSFT(KC_V),
82 KC_LEFT, KC_DOWN, KC_RIGHT, TO(_FN)
83 ),
84
85 [_FN] = LAYOUT_ortho_2x4(
86 RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN,
87 BL_TOGG, BL_STEP, BL_BRTG, TO(_PLAY)
88 )
89};
90
91#ifdef OLED_ENABLE
92oled_rotation_t oled_init_user(oled_rotation_t rotation) {
93 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
94}
95
96bool oled_task_user(void) {
97 // Host Keyboard Layer Status
98 oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
99 oled_write_P(PSTR("Layer: "), false);
100
101 switch (get_highest_layer(layer_state)) {
102 case _PLAY:
103 oled_write_ln_P(PSTR("VLC Play"), false);
104 break;
105 case _FRAME:
106 oled_write_ln_P(PSTR("VLC Frame"), false);
107 break;
108 case _DVD:
109 oled_write_ln_P(PSTR("VLC DVD"), false);
110 break;
111 case _FN:
112 oled_write_ln_P(PSTR("FN "), false);
113 break;
114 default:
115 // Or use the write_ln shortcut over adding '\n' to the end of your string
116 oled_write_ln_P(PSTR("N/A"), false);
117 }
118
119 // Host Keyboard LED Status
120 led_t led_state = host_keyboard_led_state();
121 oled_write_P(PSTR("Num Lock: "), false);
122 oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false);
123 oled_write_P(PSTR("Caps Lock: "), false);
124 oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);
125 oled_write_P(PSTR("Scroll Lock: "), false);
126 oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false);
127 oled_write_P(PSTR("Backlit: "), false);
128 oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false);
129#ifdef RGBLIGHT_ENABLE
130 static char rgbStatusLine1[26] = {0};
131 snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode());
132 oled_write_ln(rgbStatusLine1, false);
133 static char rgbStatusLine2[26] = {0};
134 snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
135 oled_write_ln(rgbStatusLine2, false);
136#endif
137 return false;
138}
139#endif
diff --git a/keyboards/anavi/macropad8/keymaps/vscode/config.h b/keyboards/anavi/macropad8/keymaps/vscode/config.h
deleted file mode 100644
index dd687cad58..0000000000
--- a/keyboards/anavi/macropad8/keymaps/vscode/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
1/* Copyright 2021 QMK
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#define LAYER_STATE_8BIT
diff --git a/keyboards/anavi/macropad8/keymaps/vscode/keymap.c b/keyboards/anavi/macropad8/keymaps/vscode/keymap.c
deleted file mode 100644
index 46d4a7d8b3..0000000000
--- a/keyboards/anavi/macropad8/keymaps/vscode/keymap.c
+++ /dev/null
@@ -1,227 +0,0 @@
1 /* Copyright 2022 Efthimis Iosifidis <iosifidise@gmail.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#include QMK_KEYBOARD_H
18
19enum layers {
20 _BASIC,
21 _BRACKETS,
22 _SELECTORS,
23 _FN,
24};
25
26
27#define KC_X0 LT(_FN, KC_ESC)
28
29static char current_alpha_oled [12] = "None";
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32/* _BASIC Layer
33 * ,-------------------------------------.
34 * | Toggle | Toggle | | |
35 * | Block | Line | Undo | Search |
36 * | Comment | Comment | | |
37 * |---------+---------+--------+---------+
38 * | | | | TO |
39 * | Cut | Copy | Paste | _BASIC |
40 * | | | | |
41 * `-------------------------------------'
42 */
43 [_BASIC] = LAYOUT_ortho_2x4(
44 RCS(KC_A), LCTL(KC_SLASH), LCTL(KC_Z), LCTL(KC_F),
45 LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), TO(_BRACKETS)
46 ),
47/* _BRACKETS Layer
48 * ,-----------------------------------------.
49 * | | | | |
50 * | ( | [ | { | Bksp |
51 * | | | | |
52 * |---------+---------+--------+------------+
53 * | | | | TO |
54 * | Del | Copy | Paste | _SELECTORS |
55 * | | | | |
56 * `----------------------------------------'
57 */
58 [_BRACKETS] = LAYOUT_ortho_2x4(
59 S(KC_9), KC_LBRC, S(KC_LBRC), KC_BACKSPACE,
60 KC_DEL, C(KC_C), C(KC_V), TO(_SELECTORS)
61 ),
62/* _SELECTORS Layer
63* ,-------------------------------------.
64* | | | | |
65* | Select | Save | Undo | Bksp |
66* | All | | | |
67* |---------+---------+--------+---------+
68* | | | | TO |
69* | Cut | Copy | Paste | _FN |
70* | | | | |
71* `-------------------------------------'
72*/
73 [_SELECTORS] = LAYOUT_ortho_2x4(
74 C(KC_A), C(KC_S), C(KC_Z), KC_BACKSPACE,
75 C(KC_X), C(KC_C), C(KC_V), TO(_FN)
76 ),
77/* _FN Layer
78 * ,--------------------------------------------.
79 * | RGB | RGB | RGB | RGB |
80 * | Toggle | Mode | Mode | Snake |
81 * | | Forward | Reverse | Mode |
82 * |-----------+-----------+-----------+---------+
83 * | | Cycle | Toggle | TO |
84 * | BackLight | BackLight | BackLight | _BASIC |
85 * | Toggle | Levels | Breathing | |
86 * `--------------------------------------------'
87 */
88 [_FN] = LAYOUT_ortho_2x4(
89 RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN,
90 BL_TOGG, BL_STEP, BL_BRTG, TO(_BASIC)
91 )
92};
93
94#ifdef OLED_ENABLE
95oled_rotation_t oled_init_user(oled_rotation_t rotation) {
96 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
97}
98
99bool process_record_user(uint16_t keycode, keyrecord_t *record) {
100 if (record->event.pressed) {
101 char string [33];
102 switch(keycode)
103 {
104 //First Layer with Basic Keys
105 case LCTL(KC_X):
106 strncpy(current_alpha_oled, "Cut", sizeof(current_alpha_oled));
107 break;
108 case LCTL(KC_F):
109 strncpy(current_alpha_oled, "Search", sizeof(current_alpha_oled));
110 break;
111 case LCTL(KC_Z):
112 strncpy(current_alpha_oled, "Undo", sizeof(current_alpha_oled));
113 break;
114 case LCTL(KC_C):
115 strncpy(current_alpha_oled, "Copy", sizeof(current_alpha_oled));
116 break;
117 case LCTL(KC_V):
118 strncpy(current_alpha_oled, "Paste", sizeof(current_alpha_oled));
119 break;
120 case RCS(KC_A):
121 strncpy(current_alpha_oled, "Block cmt.", sizeof(current_alpha_oled));
122 break;
123 case LCTL(KC_SLASH):
124 strncpy(current_alpha_oled, "Line cmt.", sizeof(current_alpha_oled));
125 break;
126 //Second Layer with Brackets
127 case S(KC_9):
128 strncpy(current_alpha_oled, "()", sizeof(current_alpha_oled));
129 break;
130 case KC_LBRC:
131 strncpy(current_alpha_oled, "[]", sizeof(current_alpha_oled));
132 break;
133 case S(KC_LBRC):
134 strncpy(current_alpha_oled, "{}", sizeof(current_alpha_oled));
135 break;
136 case KC_BACKSPACE:
137 strncpy(current_alpha_oled, "Backspace", sizeof(current_alpha_oled));
138 break;
139 case KC_DEL:
140 strncpy(current_alpha_oled, "Del", sizeof(current_alpha_oled));
141 break;
142 // Selector Layer keys
143 case C(KC_A):
144 strncpy(current_alpha_oled, "Select All", sizeof(current_alpha_oled));
145 break;
146 case C(KC_S):
147 strncpy(current_alpha_oled, "Save", sizeof(current_alpha_oled));
148 break;
149 // FN Layer keys
150 case RGB_TOG:
151 strncpy(current_alpha_oled, "RGB Toggle", sizeof(current_alpha_oled));
152 break;
153 case RGB_MOD:
154 strncpy(current_alpha_oled, "RGB Fwd", sizeof(current_alpha_oled));
155 break;
156 case RGB_M_R:
157 strncpy(current_alpha_oled, "RGB Rev", sizeof(current_alpha_oled));
158 break;
159 case RGB_MODE_SNAKE:
160 strncpy(current_alpha_oled, "RGB Snk", sizeof(current_alpha_oled));
161 break;
162 case BL_TOGG:
163 strncpy(current_alpha_oled, "BkLgt Tog", sizeof(current_alpha_oled));
164 break;
165 case BL_STEP:
166 strncpy(current_alpha_oled, "BkLgt Lvl", sizeof(current_alpha_oled));
167 break;
168 case BL_BRTG:
169 strncpy(current_alpha_oled, "BkLgt Brth", sizeof(current_alpha_oled));
170 break;
171 //FN Key keycodes
172 case TO(_BASIC) ... TO(_FN):
173 strncpy(current_alpha_oled, "Switcher", sizeof(current_alpha_oled));
174 break;
175 default:
176 strncpy(current_alpha_oled, itoa(keycode, string, 10), sizeof(current_alpha_oled));
177 break;
178 }
179 }
180 return true;
181}
182
183bool oled_task_user(void) {
184 // Host Keyboard Layer Status
185 oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
186 oled_write_P(PSTR("Active layer: "), false);
187
188 switch (get_highest_layer(layer_state)) {
189 case _BASIC:
190 oled_write_ln_P(PSTR("Basic"), false);
191 break;
192 case _BRACKETS:
193 oled_write_ln_P(PSTR("Brkts"), false);
194 break;
195 case _SELECTORS:
196 oled_write_ln_P(PSTR("Selct"), false);
197 break;
198 case _FN:
199 oled_write_ln_P(PSTR("FN"), false);
200 break;
201 default:
202 // Or use the write_ln shortcut over adding '\n' to the end of your string
203 oled_write_ln_P(PSTR("N/A"), false);
204 }
205
206
207 // Host Keyboard LED Status
208 led_t led_state = host_keyboard_led_state();
209 oled_write_P(PSTR("Num Lock: "), false);
210 oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false);
211 oled_write_P(PSTR("Caps Lock: "), false);
212 oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);
213 oled_write_P(PSTR("Backlit: "), false);
214 oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false);
215 oled_write_P(PSTR("Last Key: "), false);
216 oled_write_ln(current_alpha_oled, false);
217#ifdef RGBLIGHT_ENABLE
218 static char rgbStatusLine1[26] = {0};
219 snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode());
220 oled_write_ln(rgbStatusLine1, false);
221 static char rgbStatusLine2[26] = {0};
222 snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
223 oled_write_ln(rgbStatusLine2, false);
224#endif
225 return false;
226}
227#endif
diff --git a/keyboards/anavi/macropad8/keymaps/zoom/keymap.c b/keyboards/anavi/macropad8/keymaps/zoom/keymap.c
deleted file mode 100644
index 965bbec429..0000000000
--- a/keyboards/anavi/macropad8/keymaps/zoom/keymap.c
+++ /dev/null
@@ -1,97 +0,0 @@
1 /* Copyright 2020 Leon Anavi <leon@anavi.org>
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#include QMK_KEYBOARD_H
18
19#define _MAIN 0
20#define _FN 1
21
22#define KC_X0 LT(_FN, KC_ESC)
23
24#ifdef RGBLIGHT_ENABLE
25// How long (in ms) to wait between animation steps for the rainbow mode
26const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {60, 30, 15};
27// How long (in milliseconds) to wait between animation steps for each of the "Swirling rainbow" animations
28const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {20, 10, 4};
29#endif
30
31/*
32 * The keymap contains the following shortcuts for Zoom meeting:
33 *
34 * Alt+V: Start/stop video
35 * Alt+A: Mute/unmute my audio
36 * Alt+M: Mute/unmute audio for everyone except the host
37 * Alt+S: Start/stop screen sharing
38 * Alt+R: Start/stop local recording
39 * Alt+P: Pause/resume recording
40 * Alt+C: Start/stop cloud recording
41 */
42
43const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
44 [_MAIN] = LAYOUT_ortho_2x4(
45 LALT(KC_V), LALT(KC_A), LALT(KC_M), LALT(KC_S),
46 LALT(KC_R), LALT(KC_P), LALT(KC_C), MO(_FN)
47 ),
48
49 [_FN] = LAYOUT_ortho_2x4(
50 RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN,
51 BL_TOGG, BL_STEP, BL_BRTG, _______
52 )
53};
54
55#ifdef OLED_ENABLE
56oled_rotation_t oled_init_user(oled_rotation_t rotation) {
57 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
58}
59
60bool oled_task_user(void) {
61 // Host Keyboard Layer Status
62 oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
63 oled_write_P(PSTR("Active layer: "), false);
64
65 switch (get_highest_layer(layer_state)) {
66 case _MAIN:
67 oled_write_ln_P(PSTR("Zoom"), false);
68 break;
69 case _FN:
70 oled_write_ln_P(PSTR("FN"), false);
71 break;
72 default:
73 // Or use the write_ln shortcut over adding '\n' to the end of your string
74 oled_write_ln_P(PSTR("N/A"), false);
75 }
76
77 // Host Keyboard LED Status
78 led_t led_state = host_keyboard_led_state();
79 oled_write_P(PSTR("Num Lock: "), false);
80 oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false);
81 oled_write_P(PSTR("Caps Lock: "), false);
82 oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);
83 oled_write_P(PSTR("Scroll Lock: "), false);
84 oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false);
85 oled_write_P(PSTR("Backlit: "), false);
86 oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false);
87#ifdef RGBLIGHT_ENABLE
88 static char rgbStatusLine1[26] = {0};
89 snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode());
90 oled_write_ln(rgbStatusLine1, false);
91 static char rgbStatusLine2[26] = {0};
92 snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
93 oled_write_ln(rgbStatusLine2, false);
94#endif
95 return false;
96}
97#endif
diff --git a/keyboards/aos/tkl/keymaps/aholland909/keymap.c b/keyboards/aos/tkl/keymaps/aholland909/keymap.c
deleted file mode 100644
index 87f12d1763..0000000000
--- a/keyboards/aos/tkl/keymaps/aholland909/keymap.c
+++ /dev/null
@@ -1,38 +0,0 @@
1/*
2Copyright 2020 aholland909
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*/
17
18#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_tkl_iso_wkl(
22 QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUSE,
23
24 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
25 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN,
26 LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
27 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
28 KC_LCTL, KC_LALT, KC_SPC, KC_RGUI, TG(1), KC_LEFT, KC_DOWN, KC_RGHT),
29
30 [1] = LAYOUT_tkl_iso_wkl(
31 QK_BOOT, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, _______, _______,
32
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, _______,
35 _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______,
36 _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI,
37 _______, _______, KC_MPLY, _______, _______, RGB_SAD, RGB_HUD, RGB_VAI),
38};
diff --git a/keyboards/arisu/keymaps/fate/keymap.c b/keyboards/arisu/keymaps/fate/keymap.c
deleted file mode 100644
index 9db8fcdbd1..0000000000
--- a/keyboards/arisu/keymaps/fate/keymap.c
+++ /dev/null
@@ -1,67 +0,0 @@
1/* Copyright 2019 Fate
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#include QMK_KEYBOARD_H
17
18enum arisu_layers {
19 _QWERTY,
20 _FN,
21 _ADJUST
22};
23
24// Tap Dance Declarations
25enum {
26 TD_LALT_LGUI = 0,
27 TD_RALT_RGUI
28};
29
30#define FN MO(_FN)
31#define ADJUST MO(_ADJUST)
32#define LALT_LG TD(TD_LALT_LGUI)
33#define RALT_RG TD(TD_RALT_RGUI)
34
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36 [_QWERTY] = LAYOUT(
37 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_PGUP,
38 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGDN,
39 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, ADJUST,
40 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
41 KC_LCTL, LALT_LG, KC_SPC, FN, KC_SPC, RALT_RG, KC_LEFT, KC_DOWN, KC_RGHT
42 ),
43
44 [_FN] = LAYOUT(
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 KC_CAPS, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, KC_DEL, _______,
47 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, _______, _______, _______, _______,
48 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_APP, _______, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, _______
50 ),
51
52 [_ADJUST] = LAYOUT(
53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME,
54 KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END,
55 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______,
56 _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_VOLU,
57 _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
58 )
59};
60
61// Tap Dance Definitions
62tap_dance_action_t tap_dance_actions[] = {
63 // Tap once for L-Alt, twice for L-GUI
64 [TD_LALT_LGUI] = ACTION_TAP_DANCE_DOUBLE(KC_LALT, KC_LGUI),
65 // Tap once for R-Alt, twice for R-GUI
66 [TD_RALT_RGUI] = ACTION_TAP_DANCE_DOUBLE(KC_RALT, KC_RGUI)
67};
diff --git a/keyboards/arisu/keymaps/fate/readme.md b/keyboards/arisu/keymaps/fate/readme.md
deleted file mode 100644
index c1239a09ff..0000000000
--- a/keyboards/arisu/keymaps/fate/readme.md
+++ /dev/null
@@ -1 +0,0 @@
1# The keymap of arisu's creator \ No newline at end of file
diff --git a/keyboards/arisu/keymaps/fate/rules.mk b/keyboards/arisu/keymaps/fate/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/arisu/keymaps/fate/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1TAP_DANCE_ENABLE = yes
diff --git a/keyboards/arisu/keymaps/kresnak/keymap.c b/keyboards/arisu/keymaps/kresnak/keymap.c
deleted file mode 100644
index 05a0e6ba4c..0000000000
--- a/keyboards/arisu/keymaps/kresnak/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
1/* Copyright 2019 Fate
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#include QMK_KEYBOARD_H
17
18
19// Defines the keycodes used by our macros in process_record_user
20
21#define FN MO(1)
22
23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24 [0] = LAYOUT( /* Base */
25 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP,
26 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGDN,
27 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, FN,
28 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
29 KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
30 ),
31
32 [1] = LAYOUT(
33 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, KC_HOME,
34 _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, KC_END,
35 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, _______, _______, _______, _______,
36 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_BSLS, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______
38 )
39};
diff --git a/keyboards/ask55/keymaps/iic/keymap.c b/keyboards/ask55/keymaps/iic/keymap.c
deleted file mode 100644
index 5784307af9..0000000000
--- a/keyboards/ask55/keymaps/iic/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
1/* Copyright 2022 Yiancar / Keyboard-Magpie
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#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT( /* Base */
20 LT(1,KC_ESC),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
21 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_NUBS,
22 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
23 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT,
24 KC_LCAP, KC_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_LEFT, KC_RGHT, KC_DOWN, KC_UP
25),
26 [1] = LAYOUT( /* Momentary Layer 1 */
27 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,RGB_TOG,
28 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
29 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
30 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
31 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS
32),
33};
diff --git a/keyboards/ask55/keymaps/iic/readme.md b/keyboards/ask55/keymaps/iic/readme.md
deleted file mode 100644
index e9300cc04d..0000000000
--- a/keyboards/ask55/keymaps/iic/readme.md
+++ /dev/null
@@ -1 +0,0 @@
1# The IIc keymap for the ASK55 \ No newline at end of file
diff --git a/keyboards/ask55/keymaps/mac-portable/keymap.c b/keyboards/ask55/keymaps/mac-portable/keymap.c
deleted file mode 100644
index 056d0aee5a..0000000000
--- a/keyboards/ask55/keymaps/mac-portable/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
1/* Copyright 2022 Yiancar / Keyboard-Magpie
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#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT( /* Base */
20 LT(1,KC_ESC),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
21 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_NUBS,
22 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
23 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT,
24 KC_LCAP, KC_LALT, KC_LGUI, KC_GRV, KC_SPC, KC_ENT, KC_LEFT, KC_RGHT, KC_DOWN, KC_UP
25),
26 [1] = LAYOUT( /* Momentary Layer 1 */
27 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,RGB_TOG,
28 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
29 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
30 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
31 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS
32),
33};
diff --git a/keyboards/ask55/keymaps/mac-portable/readme.md b/keyboards/ask55/keymaps/mac-portable/readme.md
deleted file mode 100644
index 9c24da4736..0000000000
--- a/keyboards/ask55/keymaps/mac-portable/readme.md
+++ /dev/null
@@ -1 +0,0 @@
1# The Mac Portable keymap for the ASK55
diff --git a/keyboards/ask55/keymaps/next/keymap.c b/keyboards/ask55/keymaps/next/keymap.c
deleted file mode 100644
index ea095ed795..0000000000
--- a/keyboards/ask55/keymaps/next/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
1/* Copyright 2022 Yiancar / Keyboard-Magpie
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#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT( /* Base */
20 LT(1,KC_ESC),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
21 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_NUBS,
22 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
23 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT,
24 KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_RGUI, KC_RGUI, KC_RALT
25),
26 [1] = LAYOUT( /* Momentary Layer 1 */
27 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,RGB_TOG,
28 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
29 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
30 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
31 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS
32),
33};
diff --git a/keyboards/ask55/keymaps/next/readme.md b/keyboards/ask55/keymaps/next/readme.md
deleted file mode 100644
index 5cb6d33d1b..0000000000
--- a/keyboards/ask55/keymaps/next/readme.md
+++ /dev/null
@@ -1 +0,0 @@
1# The NeXT (both) keymaps for the ASK55 \ No newline at end of file
diff --git a/keyboards/atlantis/ps17/keymaps/multimedia/keymap.c b/keyboards/atlantis/ps17/keymaps/multimedia/keymap.c
deleted file mode 100644
index 8546cfb71f..0000000000
--- a/keyboards/atlantis/ps17/keymaps/multimedia/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
1// Copyright 2023 mjbogusz (@mjbogusz)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 // Default layer: numpad + volume control
8 [0] = LAYOUT(
9 KC_MUTE,
10 TO(1), KC_PSLS, KC_PAST, KC_PMNS,
11 KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS,
12 KC_KP_4, KC_KP_5, KC_KP_6,
13 KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT,
14 KC_KP_0, KC_PDOT
15 ),
16 [1] = LAYOUT(
17 KC_MUTE,
18 TO(2), XXXXXXX, XXXXXXX, KC_VOLD,
19 XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU,
20 KC_MRWD, KC_MPLY, KC_MFFD,
21 KC_MPRV, KC_MSTP, KC_MNXT, KC_MSEL,
22 XXXXXXX, XXXXXXX
23 ),
24 [2] = LAYOUT(
25 RGB_MOD,
26 TO(3), KC_TRNS, KC_TRNS, KC_TRNS,
27 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
28 KC_TRNS, KC_TRNS, KC_TRNS,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_TRNS
31 ),
32 [3] = LAYOUT(
33 KC_TRNS,
34 TO(0), KC_TRNS, KC_TRNS, KC_TRNS,
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS
39 ),
40};
41
42#if defined(ENCODER_MAP_ENABLE)
43const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
44 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
45 [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
46 [2] = { ENCODER_CCW_CW(RGB_HUI, RGB_HUD) },
47 [3] = { ENCODER_CCW_CW(RGB_HUI, RGB_HUD) },
48};
49#endif
diff --git a/keyboards/atlantis/ps17/keymaps/multimedia/rules.mk b/keyboards/atlantis/ps17/keymaps/multimedia/rules.mk
deleted file mode 100644
index ee32568148..0000000000
--- a/keyboards/atlantis/ps17/keymaps/multimedia/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/atomic/keymaps/abienz/keymap.c b/keyboards/atomic/keymaps/abienz/keymap.c
deleted file mode 100644
index c499807d76..0000000000
--- a/keyboards/atomic/keymaps/abienz/keymap.c
+++ /dev/null
@@ -1,19 +0,0 @@
1#include QMK_KEYBOARD_H
2#include "keymap_colemak.h"
3
4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
5 [0] = LAYOUT_ortho_5x15(/* Colemak */
6 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, XXXXXXX,
7 KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
8 KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, XXXXXXX, KC_PGUP,
9 KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN,
10 KC_LCTL, KC_LGUI, XXXXXXX, KC_LALT, MO(1), KC_SPC, XXXXXXX, KC_RALT, MO(1), KC_RGUI, XXXXXXX, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
11 ),
12 [1] = LAYOUT_ortho_5x15(/* function */
13 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, XXXXXXX,
14 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
15 _______, _______, _______, KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
16 _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_MPLY,
17 _______, _______, XXXXXXX, _______, MO(1), _______, XXXXXXX, _______, MO(1), _______, XXXXXXX, _______, KC_MPRV, KC_VOLD, KC_MNXT
18 ),
19};
diff --git a/keyboards/atomic/keymaps/michelle/keymap.c b/keyboards/atomic/keymaps/michelle/keymap.c
deleted file mode 100644
index da69427168..0000000000
--- a/keyboards/atomic/keymaps/michelle/keymap.c
+++ /dev/null
@@ -1,25 +0,0 @@
1#include QMK_KEYBOARD_H
2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 [0] = LAYOUT_ortho_5x15( /* Dvorak */
5 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, XXXXXXX,
6 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL,
7 KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, XXXXXXX, KC_PGUP,
8 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN,
9 KC_LCTL, MO(1), XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT
10 ),
11 [1] = LAYOUT_ortho_5x15( /* Qwerty + F keys */
12 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, XXXXXXX,
13 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_INS, KC_DEL,
14 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, KC_PGUP,
15 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN,
16 KC_LCTL, _______, XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT
17 ),
18 [2] = LAYOUT_ortho_5x15( /* Numpad + qwerty shortcut keys */
19 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, XXXXXXX,
20 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL,
21 KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, XXXXXXX, KC_PGUP,
22 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN,
23 KC_LCTL, _______, XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT
24 ),
25};
diff --git a/keyboards/atomic/keymaps/twolayer/keymap.c b/keyboards/atomic/keymaps/twolayer/keymap.c
deleted file mode 100644
index af235441ba..0000000000
--- a/keyboards/atomic/keymaps/twolayer/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
1#include QMK_KEYBOARD_H
2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4
5 /* QWERTY - MIT ENHANCED / GRID COMPATIBLE
6 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
7 * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
8 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
9 * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
10 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
11 * | LCTRL1 | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP |
12 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
13 * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
14 * |--------+--------+--------+--------+--------+- 6.25u ---------+--------+--------+--------+--------+-----------------+--------+--------|
15 * | BRITE | LALT | FN | XXXXXX . SPACE | RCTRL | RALT | FN | LEFT | DOWN | RIGHT |
16 * '--------------------------------------------------------------------------------------------------------------------------------------'
17 */
18 [0] = LAYOUT_ortho_5x15( /* QWERTY */
19 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
20 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
21 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
22 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
23 BL_STEP, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RCTL, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
24 ),
25
26 /* FUNCTION
27 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
28 * | GRV | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
29 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
30 * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR |
31 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
32 * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ |
33 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
34 * | NUM LK | | | | | | | | INSERT | END1 | HOME | XXXXXX . | MOUS U | WHEEL- |
35 * |--------+--------+--------+--------+--------+- 6.25 ------------+--------+--------+------+--------+-----------------+--------+--------|
36 * | | | FN | XXXXXX . MS BT1 | | | FN | MOUS L | MOUS D | MOUS R |
37 * '--------------------------------------------------------------------------------------------------------------------------------------'
38 */
39 [1] = LAYOUT_ortho_5x15( /* FUNCTION LAYER*/
40 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
41 KC_SCRL, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
42 KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, KC_WH_U,
43 KC_NUM, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_END, KC_HOME, _______, _______, KC_MS_U, KC_WH_D,
44 _______, _______, MO(1), _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, MO(1), KC_MS_L, KC_MS_D, KC_MS_R
45 ),
46};
diff --git a/keyboards/atreus/keymaps/clash/keymap.c b/keyboards/atreus/keymaps/clash/keymap.c
deleted file mode 100644
index 449f816f79..0000000000
--- a/keyboards/atreus/keymaps/clash/keymap.c
+++ /dev/null
@@ -1,41 +0,0 @@
1#include QMK_KEYBOARD_H
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7#define _QW 0
8#define _RS 1
9#define _LW 2
10
11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12 [_QW] = LAYOUT( /* Qwerty */
13 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P ,
14 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,
15 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH ,
16 KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT
17 ),
18
19 /*
20 * ! @ up { } || pgup 7 8 9 *
21 * # left down right $ || pgdn 4 5 6 +
22 * [ ] ( ) & || ` 1 2 3 \
23 * lower insert super shift del ctrl || alt space fn . 0 =
24 */
25 [_RS] = LAYOUT( /* [> RAISE <] */
26 KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR ,
27 KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS ,
28 KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS ,
29 TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_DEL, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL ),
30 /*
31 * insert home mup end pgup || mouse1 F7 F8 F9 F10
32 * USB mlft mdwn mrght pgdn || mouse2 F4 F5 F6 F11
33 * Blue volup reset || mouse3 F1 F2 F3 F12
34 * auto voldn super shift bksp ctrl || alt space L0 prtsc scroll pause
35 */
36 [_LW] = LAYOUT( /* [> LOWER <] */
37 KC_INS, KC_HOME, KC_MS_U, KC_END, KC_PGUP, KC_BTN1, KC_F7, KC_F8, KC_F9, KC_F10 ,
38 OU_USB, KC_MS_L, KC_MS_D, KC_MS_R, KC_PGDN, KC_BTN2, KC_F4, KC_F5, KC_F6, KC_F11 ,
39 OU_BT, KC_VOLU, KC_NO, KC_NO, QK_BOOT, KC_BTN3, KC_F1, KC_F2, KC_F3, KC_F12 ,
40 OU_AUTO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, TO(_QW), KC_PSCR, KC_SCRL, KC_PAUS )
41};
diff --git a/keyboards/atreus/keymaps/clash/rules.mk b/keyboards/atreus/keymaps/clash/rules.mk
deleted file mode 100644
index db1870fb15..0000000000
--- a/keyboards/atreus/keymaps/clash/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1BLUETOOTH_ENABLE=yes
diff --git a/keyboards/atreus/keymaps/classic/keymap.c b/keyboards/atreus/keymaps/classic/keymap.c
deleted file mode 100644
index 2777edd8e5..0000000000
--- a/keyboards/atreus/keymaps/classic/keymap.c
+++ /dev/null
@@ -1,32 +0,0 @@
1#include QMK_KEYBOARD_H
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7#define _QW 0
8#define _RS 1
9#define _LW 2
10
11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12 [_QW] = LAYOUT( /* Qwerty */
13 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P ,
14 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,
15 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH ,
16 KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT
17 ),
18
19 [_RS] = LAYOUT( /* [> RAISE <] */
20 KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR ,
21 KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS ,
22 KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS ,
23 TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL
24 ),
25
26 [_LW] = LAYOUT( /* [> LOWER <] */
27 KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10 ,
28 KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11 ,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12 ,
30 KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, DF(_QW), KC_TRNS, KC_TRNS, QK_BOOT
31 ),
32};
diff --git a/keyboards/atreus/keymaps/erlandsona/config.h b/keyboards/atreus/keymaps/erlandsona/config.h
deleted file mode 100644
index aa1d8445c6..0000000000
--- a/keyboards/atreus/keymaps/erlandsona/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#pragma once
2
3// place overrides here
4
5/* Make Overloaded Keys switch faster */
6#define TAPPING_TERM 150
diff --git a/keyboards/atreus/keymaps/erlandsona/keymap.c b/keyboards/atreus/keymaps/erlandsona/keymap.c
deleted file mode 100644
index 64d2408040..0000000000
--- a/keyboards/atreus/keymaps/erlandsona/keymap.c
+++ /dev/null
@@ -1,32 +0,0 @@
1#include QMK_KEYBOARD_H
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7#define BASE 0
8#define NUMS 1
9#define MOUS 2
10
11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12 [BASE] = LAYOUT( /* Qwerty */
13 KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,
14 KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN ,
15 SFT_T(KC_Z), KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , SFT_T(KC_QUOT),
16 KC_LCTL , KC_LALT, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, MO(NUMS),KC_RALT, KC_SLSH, KC_BSLS
17 ),
18
19 [NUMS] = LAYOUT( /* Numbers / Arrows / Symbols */
20 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_LPRN, KC_RPRN, KC_MINS, KC_EQL , KC_LBRC,
21 KC_TAB , KC_5 , KC_6 , KC_7 , KC_8 , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_RBRC,
22 _______, KC_9 , KC_0 , KC_DOT , KC_COMM, KC_HOME, KC_PGDN, KC_PGUP, KC_END , _______,
23 _______, _______, _______, _______, KC_DEL , TG(MOUS), _______, _______, _______, _______, _______, _______
24 ),
25
26 [MOUS] = LAYOUT( /* Mouse and Media Keys */
27 KC_SCRL, KC_PAUSE, KC_F11 , KC_F10 , KC_F9 , KC_F8 , KC_F7 , KC_F6 , KC_F5 , KC_F4,
28 KC_VOLD, KC_ACL0 , KC_ACL1, KC_ACL2, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_F3,
29 KC_MUTE, KC_MPRV , KC_MPLY, KC_MNXT, KC_MUTE, KC_WH_R, KC_WH_U, KC_WH_D, KC_WH_L, KC_F2,
30 _______, _______ , _______, _______, _______, _______, _______, KC_BTN1, TO(BASE), QK_BOOT, KC_F12 , KC_F1
31 ),
32};
diff --git a/keyboards/atreus/keymaps/gerb/keymap.c b/keyboards/atreus/keymaps/gerb/keymap.c
deleted file mode 100644
index e122c5f12f..0000000000
--- a/keyboards/atreus/keymaps/gerb/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
1// This is the personal keymap of Chris Gerber (@gerbercj). I haven't worked out the kinks
2// with the Colemak and Dvorak support yet, but everything else works nicely.
3
4#include QMK_KEYBOARD_H
5
6// Each layer gets a name for readability, which is then used in the keymap matrix below.
7// The underscores don't mean anything - you can have a layer called STUFF or any other name.
8// Layer names don't all need to be of the same length, obviously, and you can also skip them
9// entirely and just use numbers.
10#define _QW 0
11#define _CM 1
12#define _DV 2
13#define _L1 3
14#define _L2 4
15
16const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
17 [_QW] = LAYOUT( /* Qwerty */
18 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
19 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
20 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
21 KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT
22 ),
23 [_CM] = LAYOUT( /* Colemak */
24 KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
25 KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
26 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH,
27 KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT
28 ),
29 [_DV] = LAYOUT( /* Dvorak */
30 KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L,
31 KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S,
32 KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z,
33 KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_ENT
34 ),
35 [_L1] = LAYOUT( /* LAYER 1 */
36 KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_7, KC_8, KC_9, KC_LBRC,
37 KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_VOLD, KC_4, KC_5, KC_6, KC_RBRC,
38 KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_MINS, KC_MUTE, KC_1, KC_2, KC_3, KC_BSLS,
39 TG(_L2), KC_APP, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_RCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL
40 ),
41 [_L2] = LAYOUT( /* LAYER 2 */
42 KC_TRNS, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, DF(_QW), KC_F7, KC_F8, KC_F9, KC_F10,
43 KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, DF(_CM), KC_F6, KC_F5, KC_F6, KC_F11,
44 KC_BTN4, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, DF(_DV), KC_F1, KC_F2, KC_F3, KC_F12,
45 KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_RCTL, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
46 ),
47};
diff --git a/keyboards/atreus/keymaps/henxing/Readme.md b/keyboards/atreus/keymaps/henxing/Readme.md
deleted file mode 100644
index a615adf966..0000000000
--- a/keyboards/atreus/keymaps/henxing/Readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
1# Hugh's Atreus Keymap
2
3This keymap is the same as the [default](../default) layout for the Atreus, but
4uses the programming style found in the Let's
5Split [default](../../../lets_split/keymaps/default) keymap. See
6[`keymap.c`](keymap.c) for the layout.
diff --git a/keyboards/atreus/keymaps/henxing/keymap.c b/keyboards/atreus/keymaps/henxing/keymap.c
deleted file mode 100644
index 8db85d04c3..0000000000
--- a/keyboards/atreus/keymaps/henxing/keymap.c
+++ /dev/null
@@ -1,103 +0,0 @@
1#include QMK_KEYBOARD_H
2#include "action_layer.h"
3#include "eeconfig.h"
4
5extern keymap_config_t keymap_config;
6
7// Each layer gets a name for readability, which is then used in the keymap matrix below.
8// The underscores don't mean anything - you can have a layer called STUFF or any other name.
9// Layer names don't all need to be of the same length, obviously, and you can also skip them
10// entirely and just use numbers.
11#define _QWERTY 0
12#define _LOWER 1
13#define _RAISE 2
14
15enum custom_keycodes {
16 QWERTY = SAFE_RANGE,
17 LOWER,
18 RAISE
19};
20
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 /*
23 * q w e r t || y u i o p
24 * a s d f g || h j k l ;
25 * z x c v b || n m , . /
26 * esc tab gui shift bksp ctrl || alt space lower - ' enter
27 */
28 [_QWERTY] = LAYOUT(
29 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
30 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
31 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
32 KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, LOWER, KC_MINS, KC_QUOT, KC_ENT
33 ),
34
35 /*
36 * ! @ up { } || pgup 7 8 9 *
37 * # left down right $ || pgdn 4 5 6 +
38 * [ ] ( ) & || ` 1 2 3 \
39 * raise insert gui shift bksp ctrl || alt space ____ . 0 =
40 */
41 [_LOWER] = LAYOUT(
42 KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR,
43 KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS,
44 KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS,
45 RAISE, KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL
46 ),
47
48 /*
49 * insert home up end pgup || up F7 F8 F9 F10
50 * del left down right pgdn || down F4 F5 F6 F11
51 * volup reset || F1 F2 F3 F12
52 * voldn super shift bksp ctrl || alt space QWERTY prtsc scroll pause
53 */
54 [_RAISE] = LAYOUT(
55 KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10,
56 KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11,
57 KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12,
58 KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, QWERTY, KC_PSCR, KC_SCRL, KC_PAUS
59 ),
60};
61
62void persistent_default_layer_set(uint16_t default_layer) {
63 eeconfig_update_default_layer(default_layer);
64 default_layer_set(default_layer);
65}
66
67bool process_record_user(uint16_t keycode, keyrecord_t *record) {
68
69 // The value to return
70 bool return_value = false;
71
72 switch (keycode) {
73 case QWERTY:
74 if (record->event.pressed) {
75 persistent_default_layer_set(1UL<<_QWERTY);
76 }
77 break;
78
79 case LOWER:
80 // Toggle LOWER layer on when key pressed and off when released
81 if (record->event.pressed) {
82 layer_on(_LOWER);
83 } else {
84 layer_off(_LOWER);
85 }
86 break;
87
88 case RAISE:
89 if (record->event.pressed) {
90 persistent_default_layer_set(1UL<<_RAISE);
91 }
92 break;
93
94 default:
95
96 // If the keycode is not handled by any of the other cases, the
97 // function should return true
98 return_value = true;
99 break;
100 }
101
102 return return_value;
103}
diff --git a/keyboards/atreus/keymaps/jeremy/keymap.c b/keyboards/atreus/keymaps/jeremy/keymap.c
deleted file mode 100644
index 7ca35b3d9a..0000000000
--- a/keyboards/atreus/keymaps/jeremy/keymap.c
+++ /dev/null
@@ -1,56 +0,0 @@
1// This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer.
2
3#include QMK_KEYBOARD_H
4#include "action_layer.h"
5#include "keymap_colemak.h"
6
7// Each layer gets a name for readability, which is then used in the keymap matrix below.
8#define ALPH 0
9#define NUMS 1
10#define CURS 2
11#define SYMB 3
12#define FKEY 4
13
14// Some handy macros to keep the keymaps clean and easier to maintain
15#define KM_SAVE LGUI(CM_S)
16#define KM_CLSE LGUI(CM_W)
17#define KM_OPEN LGUI(CM_O)
18
19#define KM_COPY LGUI(KC_C)
20#define KM_CUT LGUI(KC_X)
21#define KM_PAST LGUI(KC_V)
22#define KM_UNDO LGUI(KC_Z)
23#define KM_REDO LGUI(LSFT(KC_Z))
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [ALPH] = LAYOUT(
27 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
28 KC_A, LT(NUMS, KC_S), LT(FKEY, KC_D), KC_F, KC_G, KC_H, KC_J, LT(CURS, KC_K), LT(SYMB, KC_L), KC_SCLN,
29 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
30 KC_LCTL, KC_ESC, KC_NO, KC_LSFT, KC_SPC, KC_LALT, KC_LGUI, KC_ENT, KC_RSFT, KC_NO, KC_ESC, KC_RCTL
31 ),
32 [NUMS] = LAYOUT(
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_ASTR, KC_SLSH, KC_TRNS, KC_7, KC_8, KC_9, KC_SLSH,
34 KC_TRNS, KC_TRNS, KC_EQL, KC_PLUS, KC_MINS, KC_LPRN, KC_4, KC_5, KC_6, KC_ASTR,
35 KC_TRNS, KC_TRNS, KC_DOT, KC_COMM, CM_SCLN, KC_RPRN, KC_1, KC_2, KC_3, KC_MINS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_EQL, KC_PLUS
37 ),
38 [CURS] = LAYOUT(
39 KC_TRNS, KC_BSPC, KC_UP, KC_DEL, KC_PGUP, KC_TRNS, KM_SAVE, KC_TRNS, KM_OPEN, KC_TRNS,
40 KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KM_UNDO, KC_LALT, KC_TRNS, KC_LGUI, KC_TRNS,
41 KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_MPLY, KM_REDO, KM_CLSE, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TAB, KM_COPY, KM_CUT, KM_PAST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
43 ),
44 [SYMB] = LAYOUT(
45 KC_BSLS, KC_EXLM, KC_LABK, KC_RABK, CM_COLN, KC_UNDS, KC_DLR, KC_QUES, KC_TRNS, KC_PERC,
46 KC_AT, KC_AMPR, KC_LPRN, KC_RPRN, CM_SCLN, KC_COMM, KC_DOT, KC_QUOT, KC_TRNS, KC_TILD,
47 KC_HASH, KC_PIPE, KC_LCBR, KC_RCBR, KC_SLSH, KC_TRNS, KC_GRV, KC_DQT, KC_TRNS, KC_CIRC,
48 KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
49 ),
50 [FKEY] = LAYOUT(
51 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12,
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8,
53 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4,
54 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
55 ),
56};
diff --git a/keyboards/atreus/keymaps/jeremy/readme.md b/keyboards/atreus/keymaps/jeremy/readme.md
deleted file mode 100644
index df0179a8e0..0000000000
--- a/keyboards/atreus/keymaps/jeremy/readme.md
+++ /dev/null
@@ -1,45 +0,0 @@
1Jeremy's Atreus Key Mapping
2===========================
3
4I am a programmer by trade that suffers from the beginning stages of RSI. As a programmer I use letters, symbols and cursor navigation most often. To prevent strange finger gymnastics, I wrote a script to rank which non-letter characters occurred in my primary source projects most often and then placed these characters in the easiest to reach locations, for me. I made heavy use of momentary layer toggling.
5
6My layout is also geared toward a software based Colemak mapping. I would like it to be hardware, but I use my Laptop on the go frequently and thus my laptop keyboard. I have moved the keycaps to reflect the Colemak layout. My laptop is a MacBook Pro (2015).
7
8## Main Layers
9
101. [Letters](http://www.keyboard-layout-editor.com/#/gists/6861cb9df09ce78efaddf8aa7471e3ac)
112. [Symbols](http://www.keyboard-layout-editor.com/#/gists/8956a18b508a78e93b9c38ec3fcccaa5)
123. [Navigation](http://www.keyboard-layout-editor.com/#/gists/6ed492b714a7f54eb1c5de09b87fd8c4)
134. [Numbers](http://www.keyboard-layout-editor.com/#/gists/399ceb5624e8388e48a3a5eacac8e973)
145. [Function Keys](http://www.keyboard-layout-editor.com/#/gists/7fd7dc24c7048316f3724b1893c64e89)
15
16## Notes
17
18### General
19
20Some characters can be accessed multiple ways. This was done because you may be in a given layer, such as numbers, where when doing math, you may need quick access to the parentheses characters for grouping. This prevents some layer switching.
21
22I own an ErgoDox and plan on porting this as a base layer, then using the extra keys the ErgoDox provides accordingly. My goal, though, is to be fully functional on this base setup and build everything into muscle memory.
23
24### Symbol Layer
25
261. I placed characters that deal with an if statement close together, such as !, & and |.
272. All matching brace/bracket characters are together as well.
28
29### Number Layer
30
311. Everything I did was a compromise when trying to mimic a ten-key. I did the best I could.
322. Operators are duplicated on the right and left. I do not find it comfortable to use my pinky much, so I tend to use my left hand for +, -, * and / but those were also placed on the right hand to mimic the ten-key.
333. Parentheses were added for typing on the calculator.
34
35### Cursor Layer
36
371. It includes basic audio controls because they didn't really fit anywhere else
382. It contains basic file manipulation. I'm not sure that was a good idea. I do save all the time, but Cmd+S isn't exactly hard.
393. It contains the backspace and delete keys right on top of the left and right arrows.
404. Cmd and Opt keys are duplicated. This makes for very easy navigation, for example on a Mac, Opt+Left/Right moves word by word. It also backspaces or deletes word by word.
41
42### Function Layer
43
441. Almost all other layers I saw grouped the F keys into a bunch of three. This only gives nine function keys in order if you attempt to stay as close to the home row as possible. I went with a group of four, which gives all twelve function keys to the right hand, one row below and above the home row.
452. I duplicated the Command and Option keys the same as on the cursor layer. This makes it dead easy to hit modified function keys such as Cmd+Opt+F5. It's also easy to toss in a Shift modifier in there with the right thumb since the bottom row is preserved.
diff --git a/keyboards/atreus/keymaps/kejadlen/README.md b/keyboards/atreus/keymaps/kejadlen/README.md
deleted file mode 100644
index f3b8be3ee0..0000000000
--- a/keyboards/atreus/keymaps/kejadlen/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
1```shell
2make atreus/teensy2:kejadlen
3make atreus/teensy2:kejadlen:flash
4```
diff --git a/keyboards/atreus/keymaps/kejadlen/config.h b/keyboards/atreus/keymaps/kejadlen/config.h
deleted file mode 100644
index a75070e199..0000000000
--- a/keyboards/atreus/keymaps/kejadlen/config.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#pragma once
2
3#undef MATRIX_ROW_PINS
4#undef MATRIX_COL_PINS
5#define MATRIX_ROW_PINS { D0, D1, D2, D3 }
6#define MATRIX_COL_PINS { F6, F5, F4, F1, F0, F7, B0, B1, B2, B3, B7 }
7
8#define DIODE_DIRECTION COL2ROW
9
10#define QUICK_TAP_TERM 0
11
12#define USB_MAX_POWER_CONSUMPTION 50
diff --git a/keyboards/atreus/keymaps/kejadlen/keymap.c b/keyboards/atreus/keymaps/kejadlen/keymap.c
deleted file mode 100644
index 45de7824c2..0000000000
--- a/keyboards/atreus/keymaps/kejadlen/keymap.c
+++ /dev/null
@@ -1,32 +0,0 @@
1#include QMK_KEYBOARD_H
2
3#define BASE 0
4#define SYMB 1
5#define ETC 2
6
7enum macro_id {
8 TEENSY,
9};
10
11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12 [BASE] = LAYOUT(
13 KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_SCLN,
14 LT(ETC,KC_A), KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H,
15 SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
16 KC_GRV, KC_DEL, KC_LALT, GUI_T(KC_TAB), LT(SYMB,KC_BSPC), CTL_T(KC_ESC), SFT_T(KC_ENT), LT(SYMB,KC_SPC), GUI_T(KC_LEFT), ALT_T(KC_DOWN), KC_UP, LCAG_T(KC_RGHT)
17 ),
18
19 [SYMB] = LAYOUT(
20 KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS,
21 KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BSLS, KC_MINS, KC_4, KC_5, KC_6, KC_QUOT,
22 KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_ASTR, KC_UNDS, KC_1, KC_2, KC_3, KC_DQUO,
23 KC_TILD, KC_AMPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_NO, KC_DOT, KC_TRNS
24 ),
25
26 [ETC] = LAYOUT(
27 QK_BOOT, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_HOME,
28 LT(ETC,KC_A), KC_NO, KC_NO, KC_NO, KC_PGDN, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_END,
29 KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_INS,
30 KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO
31 ),
32};
diff --git a/keyboards/atreus/keymaps/nojjan/config.h b/keyboards/atreus/keymaps/nojjan/config.h
deleted file mode 100644
index bc5c25d416..0000000000
--- a/keyboards/atreus/keymaps/nojjan/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
1#pragma once
2
3#undef MATRIX_ROW_PINS
4#undef MATRIX_COL_PINS
5
6// Pin configuration for falbatech atreus
7#define MATRIX_ROW_PINS { D0, D1, D3, D2 }
8#define MATRIX_COL_PINS { D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 }
diff --git a/keyboards/atreus/keymaps/nojjan/keymap.c b/keyboards/atreus/keymaps/nojjan/keymap.c
deleted file mode 100644
index 189a5c8e05..0000000000
--- a/keyboards/atreus/keymaps/nojjan/keymap.c
+++ /dev/null
@@ -1,42 +0,0 @@
1// this is the style you want to emulate.
2// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
3
4#include QMK_KEYBOARD_H
5
6// Each layer gets a name for readability, which is then used in the keymap matrix below.
7// The underscores don't mean anything - you can have a layer called STUFF or any other name.
8// Layer names don't all need to be of the same length, obviously, and you can also skip them
9// entirely and just use numbers.
10#define _QW 0
11#define _RS 1
12#define _LW 2
13
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15[_QW] = LAYOUT( /* Qwerty */
16 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P ,
17 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,
18 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH ,
19 KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT ),
20/*
21 * ! @ up { } || pgup 7 8 9 *
22 * # left down right $ || pgdn 4 5 6 +
23 * [ ] ( ) & || ` 1 2 3 \
24 * lower insert super shift bksp ctrl || alt space fn . 0 =
25 */
26[_RS] = LAYOUT( /* [> RAISE <] */
27 KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR ,
28 KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS ,
29 KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS ,
30 TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL ),
31/*
32 * insert home up end pgup || up F7 F8 F9 F10
33 * del left down right pgdn || down F4 F5 F6 F11
34 * volup reset || F1 F2 F3 F12
35 * voldn super shift bksp ctrl || alt space L0 prtsc scroll pause
36 */
37[_LW] = LAYOUT( /* [> LOWER <] */
38 KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10 ,
39 KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11 ,
40 KC_NO, KC_VOLU, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12 ,
41 KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, TO(_QW), KC_PSCR, KC_SCRL, KC_PAUS )
42};
diff --git a/keyboards/atreus/keymaps/quartz64/keymap.c b/keyboards/atreus/keymaps/quartz64/keymap.c
deleted file mode 100644
index eb882bce31..0000000000
--- a/keyboards/atreus/keymaps/quartz64/keymap.c
+++ /dev/null
@@ -1,137 +0,0 @@
1/*
2Copyright 2022 DmNosachev
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*/
17
18#include QMK_KEYBOARD_H
19
20// Defines names for use in layer keycodes and the keymap
21enum layer_names {
22 _QW,
23 _RS,
24 _LW
25};
26
27#define MC1 COMP_FR_QUOTES
28#define MC2 COMP_NBSP_EM_DASH
29#define MC3 COMP_NBSP
30
31enum custom_keycodes {
32 COMP_FR_QUOTES = SAFE_RANGE, // Compose: french quotes
33 COMP_NBSP_EM_DASH, // Compose: nbsp followed by em dash
34 COMP_NBSP, // Compose: nbsp
35 PWD1,
36 PWD2,
37 PWD3, // KP password
38};
39
40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41/*
42 ,----------------------------------. ,----------------------------------.
43 |Q/Alt | W | E | R | T | | Y | U | I | O | P |
44 |------+------+------+------+------| |------+------+------+------+------|
45 |A/Ctrl| S | D | F | G | | H | J | K | L |;/Ctrl|
46 |------+------+------+------+------|------.,------|------+------+------+------+------|
47 |Z/Shft| X | C | V | B |Bkspc ||Delete| N | M | , | . |?/Shft|
48 |------+------+------+------+------| || |------+------+------+------+------|
49 | ~ | Tab | - | GUI |Spc/LW|------'`------|Ent/RS| |\ | [ | ] | "' |
50 `----------------------------------' `----------------------------------'
51*/
52 [_QW] = LAYOUT( /* QWERTY */
53 LALT_T(KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
54 LCTL_T(KC_A), KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, RCTL_T(KC_SCLN),
55 LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
56 KC_GRV, KC_TAB, KC_MINS, KC_LGUI, LT(_LW, KC_SPC), KC_BSPC, KC_DEL, LT(_RS, KC_ENT), KC_BSLS, KC_LBRC, KC_RBRC, KC_QUOT
57 ),
58
59/*
60 ,----------------------------------. ,----------------------------------.
61 | PrnSc| pwd1 | up | pwd2 | PgUp | | Home | F7 | F8 | F9 | |
62 |------+------+------+------+------| |------+------+------+------+------|
63 | trns | left | down | right| PgDn | | End | F4 | F5 | F6 | trns |
64 |------+------+------+------+------|------.,------|------+------+------+------+------|
65 | trns | MC2 | MC3 | ( | ) | || | AltGr| F1 | F2 | F3 | trns |
66 |------+------+------+------+------| || |------+------+------+------+------|
67 | trns | C+S | Ins | MC1 | trns |------'`------| trns | F10 | F11 | F12 | trns |
68 `----------------------------------' `----------------------------------'
69*/
70
71 [_RS] = LAYOUT( /* RAISE */
72 KC_PSCR, PWD1, KC_UP, PWD2, KC_PGUP, KC_HOME, KC_F7, KC_F8, KC_F9, _______,
73 _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, KC_F4, KC_F5, KC_F6, _______,
74 _______, MC2, MC3, KC_LPRN, KC_RPRN, KC_RALT, KC_F1, KC_F2, KC_F3, _______,
75 _______, LCTL(KC_LSFT), _______, MC1, _______, _______, _______, _______, KC_F10, KC_F11, KC_F12, _______
76 ),
77
78/*
79 ,----------------------------------. ,----------------------------------.
80 | ! | @ | # | $ | % | | / | 7 | 8 | 9 | . |
81 |------+------+------+------+------| |------+------+------+------+------|
82 | trns | ^ | & | * | PWD3 | | * | 4 | 5 | 6 | trns |
83 |------+------+------+------+------|------.,------|------+------+------+------+------|
84 | trns |r_tog | r_hue| r_sat| r_val| || | + | 1 | 2 | 3 | trns |
85 |------+------+------+------+------| || |------+------+------+------+------|
86 | trns | Esc |QK_BOOT |capslk| trns |------'`------| trns | 0 | - | += | trns |
87 `----------------------------------' `----------------------------------'
88*/
89
90 [_LW] = LAYOUT( /* LOWER */
91 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PSLS, KC_7, KC_8, KC_9, KC_PDOT,
92 _______, KC_CIRC, KC_AMPR, KC_ASTR, PWD3, KC_PAST, KC_4, KC_5, KC_6, _______,
93 _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_PPLS, KC_1, KC_2, KC_3, _______,
94 _______, KC_ESC , QK_BOOT, KC_CAPS, _______, _______, _______, _______, KC_0, KC_PMNS, KC_EQL, _______
95 )
96};
97
98bool process_record_user(uint16_t keycode, keyrecord_t *record) {
99 switch (keycode) {
100 case MC1: /* French quotes */
101 if (record->event.pressed) {
102 SEND_STRING(SS_TAP(X_RALT) SS_DELAY(100) "<<" SS_DELAY(100) SS_TAP(X_RALT) SS_DELAY(100) ">>" SS_TAP(X_LEFT));
103 }
104 break;
105
106 case MC2: /* NB-space + mdash + space */
107 if (record->event.pressed) {
108 SEND_STRING(SS_TAP(X_RALT) SS_DELAY(100) " " SS_DELAY(100) SS_TAP(X_RALT) SS_DELAY(100) "--- ");
109 }
110 break;
111
112 case MC3: /* NB-space */
113 if (record->event.pressed) {
114 SEND_STRING(SS_TAP(X_RALT) SS_DELAY(100) " ");
115 }
116 break;
117
118 case PWD1:
119 if (record->event.pressed) {
120 SEND_STRING("NakedLunch1991\n");
121 }
122 break;
123
124 case PWD2:
125 if (record->event.pressed) {
126 SEND_STRING("O94nx4sUWHc4akud\n");
127 }
128 break;
129
130 case PWD3:
131 if (record->event.pressed) {
132 SEND_STRING("Q123qQ123q\n");
133 }
134 break;
135 }
136 return true;
137}; \ No newline at end of file
diff --git a/keyboards/atreus62/keymaps/194h/config.h b/keyboards/atreus62/keymaps/194h/config.h
deleted file mode 100644
index f5306a07f1..0000000000
--- a/keyboards/atreus62/keymaps/194h/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#pragma once
2#define ONESHOT_TIMEOUT 3000
3#define TAPPING_TERM 200
4#define FORCE_NKRO
5#define LEADER_TIMEOUT 1000
6#define TAPPING_TOGGLE 3
diff --git a/keyboards/atreus62/keymaps/194h/keymap.c b/keyboards/atreus62/keymaps/194h/keymap.c
deleted file mode 100644
index 557b43cd8c..0000000000
--- a/keyboards/atreus62/keymaps/194h/keymap.c
+++ /dev/null
@@ -1,149 +0,0 @@
1#include QMK_KEYBOARD_H
2
3//The current Nordic and Norwegian layout files are a mess. I'll do it myself:
4//Norwegian
5#define NO_AE KC_QUOT // Æ
6#define NO_AO KC_LBRC // Å
7#define NO_BSLS KC_EQL // Backslash
8#define NO_LT KC_NUBS // <
9#define NO_MINS KC_SLSH // -
10#define NO_OE KC_SCLN // Ø
11#define NO_PIPE KC_GRV // |
12#define NO_PLUS KC_MINS // +
13#define NO_QUOT KC_NUHS // '
14#define NO_UMLA KC_RBRC // ¨
15//Norwegian - Modifier dependant definitions
16#define NO_EXLM LSFT(KC_1) // !
17#define NO_DQT LSFT(KC_2) // "
18#define NO_AT RALT(KC_2) // @
19#define NO_HASH LSFT(KC_3) // #
20#define NO_EUR LSFT(KC_4) // €
21#define NO_DLR RALT(KC_4) // $
22#define NO_PERC LSFT(KC_5) // %
23#define NO_AND LSFT(KC_6) // &
24#define NO_SLSH LSFT(KC_7) // /
25#define NO_PO LSFT(KC_8) // (
26#define NO_PC LSFT(KC_9) // )
27#define NO_EQL LSFT(KC_0) // =
28#define NO_LCBR RALT(KC_7) // {
29#define NO_LBRC RALT(KC_8) // [
30#define NO_RBRC RALT(KC_9) // ]
31#define NO_RCBR RALT(KC_0) // }
32#define NO_COLN LSFT(KC_DOT) // :
33#define NO_SCLN LSFT(KC_COMM) // ;
34#define NO_MICR RALT(KC_M) // µ
35#define NO_EURO RALT(KC_E) // €
36#define NO_SECT LSFT(KC_GRV) // §
37#define NO_GERC RALT(KC_COMM) // ¸
38#define NO_QUAR LSFT(RALT(KC_4)) // ¼
39//Norwegian layout - dependant on previous definitions
40#define NO_UNDS LSFT(NO_MINS) // _
41#define NO_QUES LSFT(NO_PLUS) // ?
42#define NO_ACUT RALT(NO_BSLS) // Acute
43#define NO_GRAV LSFT(NO_BSLS) // `
44#define NO_GT LSFT(NO_LT) // >
45#define NO_HALF RALT(NO_LT) // ½
46#define NO_HAT LSFT(NO_UMLA) // ^
47#define NO_ASTR LSFT(NO_QUOT) // *
48#define NO_TILD RALT(NO_UMLA) // ~
49
50//One Shot Modifier
51#define OSM_LCTL OSM(MOD_LCTL)
52#define OSM_LALT OSM(MOD_LALT)
53#define OSM_LSFT OSM(MOD_LSFT)
54#define OSM_LGUI OSM(MOD_LGUI)
55#define OSM_RCTL OSM(MOD_RCTL)
56#define OSM_RALT OSM(MOD_RALT)
57#define OSM_RSFT OSM(MOD_RSFT)
58#define OSM_RGUI OSM(MOD_RGUI)
59
60//CTRL on hold, ESC on tap
61#define CTL_ESC CTL_T(KC_ESC)
62
63//Layers
64#define L1 0
65#define L2 1
66#define L3 2
67#define L4 3
68#define L5 4
69
70// Momentary switch to layer
71#define MO_L2 MO(L2)
72#define MO_L4 MO(L4)
73#define MO_L5 MO(L5)
74// Momentary switch to layer - One Shot Layer
75#define OSL_L2 OSL(L2)
76#define OSL_L3 OSL(L3)
77#define OSL_L4 OSL(L4)
78
79//Tap Dance Declarations
80enum {
81 SCLN_OE = 0,
82 QUOT_AE,
83 DQT_AO
84};
85
86//Tap Dance Definitions
87tap_dance_action_t tap_dance_actions[] = {
88 //Tap once for semicolon, twice for ø
89 [SCLN_OE] = ACTION_TAP_DANCE_DOUBLE(NO_SCLN, NO_OE),
90 //Tap once for single quote, twice for æ
91 [QUOT_AE] = ACTION_TAP_DANCE_DOUBLE(NO_QUOT, NO_AE),
92 //Tap once for double quote, twice for å
93 [DQT_AO] = ACTION_TAP_DANCE_DOUBLE(NO_DQT, NO_AO),
94// Other declarations would go here, separated by commas, if you have them
95};
96
97//Tap Dance keys
98#define TD_SCLN_OE TD(SCLN_OE)
99#define TD_QUOT_AE TD(QUOT_AE)
100#define TD_DQT_AO TD(DQT_AO)
101
102const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
103
104 [L1] = LAYOUT(
105 KC_LGUI, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RGUI,
106 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD_DQT_AO,
107 KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD_SCLN_OE, TD_QUOT_AE,
108 OSM_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, NO_MINS, OSM_RSFT,
109 CTL_ESC, MO_L5, KC_TAB, OSM_LALT, MO_L4, OSL_L3, KC_SPC, KC_ENT, OSL_L3, MO_L4, OSM_LALT, NO_EQL, NO_PLUS, KC_RCTL
110 ),
111 [L2] = LAYOUT(
112 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
113 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NO_DQT,
114 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NO_SCLN, NO_QUOT,
115 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
116 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
117 ),
118 [L3] = LAYOUT(
119 NO_LBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NO_RBRC,
120 NO_LCBR, XXXXXXX, XXXXXXX, NO_AT, XXXXXXX, NO_TILD, NO_QUES, NO_EXLM, NO_PIPE, XXXXXXX, XXXXXXX, NO_RCBR,
121 _______, NO_ASTR, NO_BSLS, NO_DLR, NO_HASH, XXXXXXX, NO_HAT, XXXXXXX, NO_COLN, NO_SLSH, NO_SCLN, NO_QUOT,
122 NO_PO, KC_0, NO_SECT, NO_PERC, XXXXXXX, NO_GRAV, NO_AND, NO_UMLA, NO_LT, NO_GT, NO_UNDS, NO_PC,
123 XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX
124 ),
125 [L4] = LAYOUT(
126 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
127 XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, XXXXXXX,
128 _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, KC_DEL,
129 XXXXXXX, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, XXXXXXX, KC_APP, XXXXXXX, XXXXXXX, KC_VOLD, XXXXXXX,
130 OSM_LCTL, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, OSM_RALT, KC_MUTE, KC_VOLU, OSM_RCTL
131 ),
132 [L5] = LAYOUT(
133 XXXXXXX, TO(L1), TO(L2), TO(L3), TO(L4), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
134 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
135 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
136 XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
137 XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
138 )
139};
140
141//TODO: Is there productivity gain in the use of unicode?
142// - Won't work in xterm.
143// Create a layer for macros and/or unicode?
144// Are macros useful?
145// - Found no gain in having sendstring for commands.
146// - Find repeated tasks that cannot be done easily on the OS.
147// - Most other keymaps have macros for game/fun stuff, hard to find "serious" onces.
148// Screw Norwegian layout, switch to US with unicode æøå or US/English International?
149// - Will be different from laptop keyboard, requiring a switch on the OS side when only using the laptop.
diff --git a/keyboards/atreus62/keymaps/194h/rules.mk b/keyboards/atreus62/keymaps/194h/rules.mk
deleted file mode 100644
index 2c97aee093..0000000000
--- a/keyboards/atreus62/keymaps/194h/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
1TAP_DANCE_ENABLE = yes
2NKRO_ENABLE = true
3MOUSEKEY_ENABLE = no
4EXTRAKEY_ENABLE = yes
5CONSOLE_ENABLE = no
6KEY_LOCK_ENABLE = no
7LEADER_ENABLE = no
diff --git a/keyboards/atreus62/keymaps/mfluid/keymap.c b/keyboards/atreus62/keymaps/mfluid/keymap.c
deleted file mode 100644
index 40eeb8b858..0000000000
--- a/keyboards/atreus62/keymaps/mfluid/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
1#include QMK_KEYBOARD_H
2
3#include "action_layer.h"
4
5#define OOOOOOO KC_TRNS
6
7const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
8 [0] = LAYOUT(
9 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
10 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
11 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
12 SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC,
13 KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(1), KC_BSPC, KC_RCTL, KC_ENT, KC_SPC, MO(2), KC_DEL, KC_EQL, KC_LBRC, KC_RBRC
14 ),
15
16 [1] = LAYOUT(
17 _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
18 _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
19 _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PGUP,
20 _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_P0, KC_PDOT, KC_PENT, KC_PPLS, KC_PGDN,
21 _______, _______, _______, _______, OOOOOOO, _______, _______, _______, _______, _______, _______, _______, _______, _______
22 ),
23
24 [2] = LAYOUT(
25 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
26 _______, _______, _______, _______, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______,
27 _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______,
28 _______, _______, KC_MPLY, KC_MRWD, KC_MFFD, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, OOOOOOO, _______, _______, _______, _______
30 ),
31
32 [3] = LAYOUT(
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, KC_COPY, KC_PGUP, _______, _______, KC_PASTE, KC_DEL,
35 _______, _______, _______, KC_PGDN, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
36 _______, _______, KC_CUT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, OOOOOOO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
38 )
39};
diff --git a/keyboards/atreus62/keymaps/mfluid/readme.md b/keyboards/atreus62/keymaps/mfluid/readme.md
deleted file mode 100644
index fa341b893c..0000000000
--- a/keyboards/atreus62/keymaps/mfluid/readme.md
+++ /dev/null
@@ -1,16 +0,0 @@
1# Mfluid Keymap for the Atreus62
2
3## Program
4
5`make atreus62:mfluid:avrdude`
6
7## Layers
8
9[0-default](https://i.imgur.com/dpBdPn8.png)
10
11[1-numpad](https://i.imgur.com/JMN8Fk9.png)
12
13[2-multimedia](https://i.imgur.com/ZCSzKsZ.png)
14
15[3-vim](https://i.imgur.com/J15xCqW.png)
16
diff --git a/keyboards/avalanche/v4/keymaps/winder/config.h b/keyboards/avalanche/v4/keymaps/winder/config.h
deleted file mode 100644
index ca4b822f1b..0000000000
--- a/keyboards/avalanche/v4/keymaps/winder/config.h
+++ /dev/null
@@ -1,12 +0,0 @@
1// Copyright 2022 Will Winder (@winder)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6#undef RGBLIGHT_EFFECT_BREATHING
7#undef RGBLIGHT_EFFECT_KNIGHT
8#undef RGBLIGHT_EFFECT_SNAKE
9#undef RGBLIGHT_EFFECT_CHRISTMAS
10#undef RGBLIGHT_EFFECT_RGB_TEST
11#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
12#undef RGBLIGHT_EFFECT_ALTERNATING
diff --git a/keyboards/avalanche/v4/keymaps/winder/images.h b/keyboards/avalanche/v4/keymaps/winder/images.h
deleted file mode 100644
index 2202e31574..0000000000
--- a/keyboards/avalanche/v4/keymaps/winder/images.h
+++ /dev/null
@@ -1,69 +0,0 @@
1// Copyright 2022 Will Winder (@winder)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4static const char display [] PROGMEM = {
50xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
60xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
70xff, 0xff, 0xff, 0x7f, 0x3f, 0x9f, 0xcf, 0x8f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
80xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
90xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
100xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
110xff, 0xff, 0x7f, 0x7f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
120xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
130xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
140xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0xcf, 0xef,
150xe7, 0xcf, 0x8f, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf1, 0xe3, 0xf7, 0xff,
160xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
170xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
180xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0xbf, 0x9f, 0x1f, 0x3f,
190x7b, 0xf0, 0xfe, 0xff, 0xff, 0xfe, 0x7c, 0x78, 0x71, 0x03, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff,
200xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
210xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
220xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x3f, 0xff, 0xf3, 0xe3, 0xd7, 0xef, 0xdf, 0x9c, 0x39, 0x73,
230xe7, 0xef, 0xcf, 0xcf, 0xce, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
240xff, 0xff, 0xff, 0xff, 0xdf, 0x9f, 0xbf, 0x3f, 0x1f, 0xc8, 0xe1, 0xc7, 0x9f, 0x3f, 0xff, 0xff,
250xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
260xff, 0xff, 0x7f, 0x7f, 0x7f, 0xe7, 0xc7, 0x9f, 0x3f, 0x7d, 0xf0, 0xe3, 0xc7, 0x8f, 0x9f, 0x3e,
270x3c, 0xb8, 0x81, 0xc3, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
280xff, 0xff, 0xff, 0xbf, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
290xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xcf, 0xe7,
300xf3, 0xf9, 0x71, 0x03, 0x87, 0x8f, 0x1e, 0x3c, 0x79, 0xf3, 0xee, 0x9d, 0xfb, 0xf3, 0xf7, 0xfe,
310xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xe7, 0xf3,
320xf9, 0xfc, 0xf9, 0xf3, 0xe7, 0xcf, 0x9f, 0x3f, 0x7e, 0xfe, 0xfc, 0xfd, 0xf9, 0xf8, 0xf8, 0xff,
330xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x9f, 0x3f, 0x7f,
340xff, 0xfe, 0xfe, 0xfc, 0xf0, 0xe6, 0xcd, 0x9d, 0x3b, 0x7a, 0xf0, 0xf1, 0xe1, 0xf3, 0xff, 0xff,
350xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x47, 0x1f,
360x3d, 0xf9, 0xf9, 0xf3, 0x83, 0x30, 0x78, 0x78, 0x71, 0x23, 0x87, 0xcf, 0xff, 0xff, 0xff, 0xff,
370xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xe7, 0xef, 0xcf, 0x0e, 0x0c, 0xe1, 0xe3, 0xe7, 0xcf,
380x1f, 0x3e, 0x7e, 0xff, 0xef, 0xe7, 0xf3, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
390xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf9, 0xf3, 0xe7, 0xcf, 0x9f, 0x3f, 0x7f,
400x7f, 0x3f, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
410xff, 0xff, 0xff, 0xbf, 0x9f, 0xbf, 0x3f, 0x3b, 0x33, 0x87, 0x8f, 0x9f, 0x3f, 0x7f, 0xff, 0xfe,
420xfc, 0xb9, 0x83, 0xc7, 0xe7, 0xf3, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
430xff, 0xff, 0xff, 0xbf, 0x9f, 0xcf, 0xc7, 0x33, 0x7f, 0xfe, 0xfc, 0xfc, 0xf9, 0xf8, 0xf6, 0xe7,
440xee, 0xc8, 0x83, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
450xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf9, 0xf9, 0xf9, 0xf9,
460xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
470xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xf8, 0xfc,
480xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x07, 0x73,
490xfb, 0xfb, 0xf3, 0xe7, 0xcf, 0x9f, 0x3f, 0xf8, 0xf0, 0xe7, 0xe7, 0xe7, 0xe7, 0xf0, 0xf8, 0xfd,
500xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x87, 0x33,
510x3b, 0x39, 0x3b, 0x9f, 0x9f, 0x9f, 0x3f, 0x7f, 0xfe, 0xfc, 0xd9, 0xc3, 0xe3, 0xf3, 0xf9, 0xff,
520xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xdf, 0xdf, 0xdf, 0xbf, 0x7f, 0xff, 0xff, 0xff,
530xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
540xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
550xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
560xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xe7, 0xf3, 0xf9, 0xf8, 0xf1, 0xe3, 0xc7, 0x8f, 0x1f, 0x3e,
570x7c, 0xf9, 0xf3, 0xf3, 0xf3, 0xf3, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
580xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf3, 0xf9, 0xfc, 0xbe, 0x9c, 0xc1, 0xe3, 0xe7, 0xcf,
590x1f, 0x3f, 0xff, 0xf3, 0xf3, 0xfb, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf,
600xff, 0xff, 0xe7, 0xdb, 0xbb, 0x7b, 0xf7, 0xee, 0xdc, 0xbd, 0xff, 0xf7, 0xf7, 0xf6, 0xff, 0xff,
610xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
620xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
630xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
640xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
650xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
660xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xf9, 0xfc,
670xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfc,
680xf9, 0xf3, 0xa7, 0xcf, 0xef, 0xff, 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
69};
diff --git a/keyboards/avalanche/v4/keymaps/winder/keymap.c b/keyboards/avalanche/v4/keymaps/winder/keymap.c
deleted file mode 100644
index 75de2f11a8..0000000000
--- a/keyboards/avalanche/v4/keymaps/winder/keymap.c
+++ /dev/null
@@ -1,135 +0,0 @@
1// Copyright 2022 Viatly Volkov (@vlkv)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4/*
5qmk compile -kb avalanche/v4 -km default
6qmk flash -kb avalanche/v4 -km default
7*/
8
9#include QMK_KEYBOARD_H
10
11enum layer {
12 _QWERTY,
13 _LOWER,
14 _RAISE,
15};
16
17#define FN_1 MO(_LOWER)
18#define FN_2 MO(_RAISE)
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [_QWERTY] = LAYOUT(
22 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL ,
23 KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC,
24 KC_ESC , KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_UNDS,
25 KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_DEL , KC_LGUI, /**/ KC_INS , KC_BSPC, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
26 KC_LGUI, KC_LALT, KC_LGUI, FN_1 , KC_ENT , /**/ FN_2 , KC_SPC , KC_BSPC, KC_RALT, KC_RGUI
27 ),
28 [_LOWER] = LAYOUT(
29 _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
30 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL ,
31 _______ , KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, _______,
32 _______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, /**/ _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
33 _______, _______, _______, _______, _______, /**/ _______, _______, _______, _______, _______
34 ),
35 [_RAISE] = LAYOUT(
36 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX,
37 _______, KC_0, KC_1, KC_2, KC_3, KC_BSPC, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
38 _______, _______, KC_0, KC_4, KC_5, KC_6, KC_DEL, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX,
39 _______, KC_0, KC_7, KC_8, KC_9, KC_DOT, _______, _______, /**/ _______, _______, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
40 _______, _______, _______, _______, _______, /**/ _______, _______, _______, _______, _______
41 ),
42};
43
44#ifdef OLED_ENABLE
45
46#include "images.h"
47
48oled_rotation_t oled_init_user(oled_rotation_t rotation) {
49 return OLED_ROTATION_0;
50}
51
52void shiftright(char* buf, int size, int num) {
53 for (int i = size-1; i > 0; i--) {
54 buf[i] >>= 1;
55 if (buf[i-1] & 0x01) {
56 buf[i] |= 0x80;
57 }
58 }
59 buf[0] >>= 1;
60}
61
62// right to left, 8 bit vertical strips.
63void mask(char* enable) {
64 char rowenable[3];
65 const char* data = display;
66 int i = 0;
67 char blockmask[2] = { 0x00, 0x00 };
68
69 while (i < sizeof(display)) {
70 if (i % 128 == 0) {
71 // shift enable-mask right 1 at each row, reinitialize row copy
72 if (i != 0) {
73 shiftright(enable, 3, 2);
74 }
75 rowenable[0] = enable[0];
76 rowenable[1] = enable[1];
77 rowenable[2] = enable[2];
78 }
79
80 if (i % 8 == 0) {
81 if (rowenable[2] & 0x01) {
82 blockmask[1] = 0xff;
83 } else {
84 blockmask[1] = 0x00;
85 }
86
87 if (rowenable[2] & 0x02) {
88 blockmask[0] = 0xff;
89 } else {
90 blockmask[0] = 0x00;
91 }
92 shiftright(rowenable, 3, 2);
93 }
94
95 uint8_t c = pgm_read_byte(data++);
96 oled_write_raw_byte(c & blockmask[1], i++);
97 shiftright(blockmask, 2, 1);
98 }
99}
100
101void setmask(char* mask) {
102 mask[0] = 0x00;
103 mask[1] = 0x00;
104 mask[2] = 0x00;
105
106 uint8_t mod = get_mods() | get_oneshot_mods();
107 if (mod & MOD_MASK_CTRL) {
108 mask[1] |= 0xf0;
109 }
110 if (mod & MOD_MASK_ALT) {
111 mask[1] |= 0x0f;
112 }
113 if (mod & MOD_MASK_GUI) {
114 mask[0] |= 0xf0;
115 }
116
117 switch (get_highest_layer(layer_state)) {
118 case _LOWER:
119 mask[2] |= 0xf0;
120 break;
121 case _RAISE:
122 mask[0] |= 0x0f;
123 break;
124 }
125}
126
127bool oled_task_user(void) {
128 char m[3];
129 setmask(m);
130 mask(m);
131 return false;
132}
133
134#endif
135
diff --git a/keyboards/avalanche/v4/keymaps/winder/rules.mk b/keyboards/avalanche/v4/keymaps/winder/rules.mk
deleted file mode 100644
index 1e3cebb145..0000000000
--- a/keyboards/avalanche/v4/keymaps/winder/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1RGBLIGHT_ENABLE = yes
diff --git a/keyboards/cheshire/curiosity/keymaps/crd/keymap.c b/keyboards/cheshire/curiosity/keymaps/crd/keymap.c
deleted file mode 100644
index b330ece369..0000000000
--- a/keyboards/cheshire/curiosity/keymaps/crd/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
1/*
2Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
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*/
17#include QMK_KEYBOARD_H
18
19
20enum keyboard_layers {
21 _BL, // Base Layer
22 _FL, // Function Layer
23 _CL // Control Layer
24};
25
26// Custom #defined keycodes (shorter macros for readability)
27#define KC_CTES CTL_T(KC_ESC)
28
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30 [_BL] = LAYOUT_default(
31 KC_NO, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
32 KC_NO, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
33 KC_NO, KC_CTES, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
34 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL),
35 KC_LCTL, KC_LGUI, KC_SPC, MO(_FL), KC_SPC, KC_RALT, MO(_CL)
36 ),
37 [_FL] = LAYOUT_default(
38 KC_PGUP, KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
39 KC_PGDN, KC_CAPS, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______,
40 KC_ESC, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
41 _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______
43 ),
44 [_CL] = LAYOUT_default(
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, _______, _______,
47 _______, _______, RGB_VAD, RGB_VAI, RGB_TOG, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_HUI, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_SAD, _______, _______,
49 _______, _______, _______, _______, _______, _______, _______
50 )
51};
diff --git a/keyboards/chocofly/v1/keymaps/winder/keymap.c b/keyboards/chocofly/v1/keymaps/winder/keymap.c
deleted file mode 100644
index f0a8b68a05..0000000000
--- a/keyboards/chocofly/v1/keymaps/winder/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
1// Copyright 2022 Will Winder (@winder)
2// SPDX-License-Identifier: GPL-2.0-or-later
3//
4#include QMK_KEYBOARD_H
5
6enum layers {
7 _QWERTY,
8 _LOWER,
9 _RAISE,
10};
11
12#define FN_1 MO(_LOWER)
13#define FN_2 MO(_RAISE)
14#define TRMINAL LGUI(KC_ENT)
15#define RESIZE LGUI(KC_R)
16#define BROWSER LSG(KC_ENT) // Left Shift + GUI, ENT.
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [_QWERTY] = LAYOUT(
20 KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL ,
21 KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_UNDS,
22 KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_MUTE, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
23 KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , TRMINAL, BROWSER, RESIZE , KC_UNDS, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
24 KC_LALT, KC_LGUI, FN_1 , KC_ENT , FN_2 , KC_SPC , KC_BSPC, KC_DEL
25 ),
26 [_LOWER] = LAYOUT(
27 _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
28 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL ,
29 KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
30 _______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______
32 ),
33 [_RAISE] = LAYOUT(
34 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX,
35 _______, KC_0, KC_1, KC_2, KC_3, KC_BSPC, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
36 _______, KC_0, KC_4, KC_5, KC_6, KC_DEL, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, XXXXXXX, XXXXXXX,
37 _______, KC_0, KC_7, KC_8, KC_9, KC_DOT, _______, _______, _______, _______, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______
39 ),
40};
41
42#ifdef ENCODER_ENABLE
43bool encoder_update_user(uint8_t index, bool clockwise) {
44 if (index == 0) {
45 if (clockwise) {
46 tap_code(KC_VOLD);
47 } else {
48 tap_code(KC_VOLU);
49 }
50 }
51 return false;
52}
53#endif
diff --git a/keyboards/custommk/genesis/rev1/keymaps/numpad/keymap.c b/keyboards/custommk/genesis/rev1/keymaps/numpad/keymap.c
deleted file mode 100644
index 97970191da..0000000000
--- a/keyboards/custommk/genesis/rev1/keymaps/numpad/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
1/* Copyright 2020 customMK
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#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21 [0] = LAYOUT_numpad_5x4(
22 MO(1), KC_PSLS, KC_PAST, KC_PMNS,
23 KC_P7, KC_P8, KC_P9,
24 KC_P4, KC_P5, KC_P6, KC_PPLS,
25 KC_P1, KC_P2, KC_P3,
26 KC_P0, KC_PDOT, KC_ENT),
27
28 [1] = LAYOUT_numpad_5x4(
29 KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD,
30 KC_TRNS, KC_TRNS, KC_TRNS,
31 RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
32 KC_TRNS, KC_TRNS, KC_TRNS,
33 RGB_HUI, KC_TRNS, RGB_HUD),
34
35 [2] = LAYOUT_numpad_5x4(
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS),
41
42 [3] = LAYOUT_numpad_5x4(
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS),
48
49};
50
51
diff --git a/keyboards/custommk/genesis/rev1/keymaps/numpad/readme.md b/keyboards/custommk/genesis/rev1/keymaps/numpad/readme.md
deleted file mode 100644
index 795e4341a9..0000000000
--- a/keyboards/custommk/genesis/rev1/keymaps/numpad/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
1# Numpad Genesis Macro Pad Layout
2
3This is the numpad layout for the Genesis Macro Pad. It assumes the 0, +, and enter keys are all 2u size, with an optional rotary encoder in the top-left or top-right corner for media volume control. The top left switch activates Layer 1 which enables control of the RGB underglow. \ No newline at end of file
diff --git a/keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c b/keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c
deleted file mode 100644
index e6b84c3f6b..0000000000
--- a/keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c
+++ /dev/null
@@ -1,89 +0,0 @@
1/* Copyright 2020 customMK
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#include QMK_KEYBOARD_H
18
19//#define GENESIS_LAYER_COLORS
20#define GENESIS_LAYER1_COLOR HSV_CYAN
21#define GENESIS_LAYER2_COLOR HSV_GREEN
22#define GENESIS_LAYER3_COLOR HSV_WHITE
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25
26 [0] = LAYOUT_numpad_5x4(
27 MO(1), KC_PSLS, KC_PAST, KC_PMNS,
28 KC_P7, KC_P8, KC_P9,
29 KC_P4, KC_P5, KC_P6, KC_PPLS,
30 KC_P1, KC_P2, KC_P3,
31 KC_P0, KC_PDOT, KC_ENT),
32
33 [1] = LAYOUT_numpad_5x4(
34 KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD,
35 KC_TRNS, KC_TRNS, KC_TRNS,
36 RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
37 KC_TRNS, KC_TRNS, KC_TRNS,
38 RGB_HUI, KC_TRNS, RGB_HUD),
39
40 [2] = LAYOUT_numpad_5x4(
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_TRNS, KC_TRNS, KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS),
46
47 [3] = LAYOUT_numpad_5x4(
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
49 KC_TRNS, KC_TRNS, KC_TRNS,
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
51 KC_TRNS, KC_TRNS, KC_TRNS,
52 KC_TRNS, KC_TRNS, KC_TRNS),
53
54};
55
56
57#ifdef GENESIS_LAYER_COLORS
58const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
59 {0,13,GENESIS_LAYER1_COLOR}
60 );
61
62const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
63 {0,13,GENESIS_LAYER2_COLOR}
64 );
65
66const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
67 {0,13,GENESIS_LAYER3_COLOR}
68 );
69
70
71const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
72 my_layer1_layer,
73 my_layer2_layer,
74 my_layer3_layer
75 );
76
77//Set the appropriate layer color
78layer_state_t layer_state_set_user(layer_state_t state) {
79 rgblight_set_layer_state(0, layer_state_cmp(state, 1));
80 rgblight_set_layer_state(1, layer_state_cmp(state, 2));
81 rgblight_set_layer_state(2, layer_state_cmp(state, 3));
82 return state;
83}
84
85void keyboard_post_init_user(void) {
86 //Enable the LED layers
87 rgblight_layers = my_rgb_layers;
88}
89#endif \ No newline at end of file
diff --git a/keyboards/custommk/genesis/rev2/keymaps/numpad/readme.md b/keyboards/custommk/genesis/rev2/keymaps/numpad/readme.md
deleted file mode 100644
index 795e4341a9..0000000000
--- a/keyboards/custommk/genesis/rev2/keymaps/numpad/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
1# Numpad Genesis Macro Pad Layout
2
3This is the numpad layout for the Genesis Macro Pad. It assumes the 0, +, and enter keys are all 2u size, with an optional rotary encoder in the top-left or top-right corner for media volume control. The top left switch activates Layer 1 which enables control of the RGB underglow. \ No newline at end of file
diff --git a/keyboards/do60/keymaps/crd/keymap.c b/keyboards/do60/keymaps/crd/keymap.c
deleted file mode 100644
index d1108ea2cf..0000000000
--- a/keyboards/do60/keymaps/crd/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
1#include QMK_KEYBOARD_H
2
3enum keyboard_layers {
4 _BL = 0, // Base Layer
5 _FL, // Function Layer
6 _CL // Control Layer
7};
8
9// Custom #defined keycodes (shorter macros for readability)
10#define KC_CTES CTL_T(KC_ESC)
11#define KC_RSUP RSFT_T(KC_UP)
12#define KC_RGLT RCMD_T(KC_LEFT)
13#define KC_RADN RALT_T(KC_DOWN)
14#define KC_RCRT RCTL_T(KC_RIGHT)
15
16
17const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 [_BL] = LAYOUT_60_ansi_split_bs_rshift(
19 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC,
20 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
21 KC_CTES, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
22 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSUP, MO(_FL),
23 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, XXXXXXX, KC_RGLT, KC_RADN, KC_RCRT
24 ),
25 [_FL] = LAYOUT_60_ansi_split_bs_rshift(
26 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
27 _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, QK_BOOT,
28 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SCRL, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______,
29 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______
31 ),
32};
33
diff --git a/keyboards/evolv/keymaps/gondolindrim/keymap.c b/keyboards/evolv/keymaps/gondolindrim/keymap.c
deleted file mode 100755
index 992901a86d..0000000000
--- a/keyboards/evolv/keymaps/gondolindrim/keymap.c
+++ /dev/null
@@ -1,410 +0,0 @@
1/*
2Copyright 2021 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
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*/
17
18/* ---------------------------------------------- EVOLV75 GONDOLINDRIM LAYOUT
19This is the firmware for the Evolv75 CE (pre-Alpha) PCBs as designed by Gondolindrim.
20
21The final objective is to achieve a joystic encoder feature where the encoder can exhibit multiple behaviours, hereby called "encoder modes", which can be switched seamlessly by the user. In order to make the user know what encoder mode is active at a given instant, the keyboard has RGB underglow LEDs that shine a particular color; each mode has its own color.
22
23Modes, their behaviours and their colors are user-customizable.
24*/
25
26/* ---------------------------------------------- BASIC DEFINITIONS
27DON"T CHANGE ANY OF THESE.
28*/
29
30#include QMK_KEYBOARD_H
31typedef uint8_t color[3];
32#define COLOR(h,s,v) ((color){h,s,v})
33
34// Defining custom keycodes
35enum keyboard_keycodes {
36 ENCCLK = 0x5F80, // For "encoder click"
37 ENCNTH, // "Encoder north"
38 ENCSTH, // "Encoder south"
39 ENCEST, // "Encoder east"
40 ENCWST, // "Encoder west"
41 ALTTABN, // For alt-tab-switch, next
42 ALTTABP, // For alt-tab-switch, previous
43 ALTTABC, // For alt-tab-click
44 ENCMUP, // Encoder mode up
45 ENCMDN // Encoder mode down
46};
47
48// Defining the encoder mode data structure
49typedef struct _encoder_mode_t {
50 color indicator_color;
51 uint16_t clockwise_key[4];
52 uint16_t counterclockwise_key[4];
53 uint16_t clicked_key[4];
54 uint16_t north_key[4];
55 uint16_t south_key[4];
56 uint16_t east_key[4];
57 uint16_t west_key[4];
58} encoder_mode_t;
59
60/* ---------------------------------------------- COLORS
61Colors are defined as HSV values where the values range from 0 to 255. Template:
62
63#define <COLOR NAME> COLOR( <HSV CODE> )
64
65Use these to define the colors for encoder modes.
66*/
67
68#define CYAN COLOR(128,255,255)
69#define PINK COLOR(191,255,255)
70#define YELLOW COLOR(36,255,255)
71#define WHITE COLOR(0,0,255)
72#define STARTUP_COLOR WHITE
73
74/* ---------------------------------------------- DELAYS
75These delays define some important behaviours on the firmware.
76
77MEDIA_KEY_DELAY is used throughout the code to hold certain keycodes for a time before holding them; this allows the use of media keys like volume up and down everywhere.
78
79ALT_TAB_DELAY is the time delay the firmware holds the LALT key before letting it go; in practical use this means once you rotate the encoder in alt-tabbing mode, it will keep the alt-tab window held for this amount of time.
80
81ENCODER_CLICK_DELAY defines a delayed behavior for the encoder click. Once you click it, a timer is triggered and monitored. If the click is held for more than this macro (defaults to 1000 or 1 second), encoder modes start cycling, each per second, and stops when you release. If you hold the click for shorter than the time defined in this macro, then the firmware registers the key contained in the .clicked_key list of that mode.
82*/
83
84#define MEDIA_KEY_DELAY 20
85#define ALT_TAB_DELAY 2000
86#define ENCODER_CLICK_DELAY 1000
87
88// -------------------------------------------- ENCODER MODES
89/* Encoder mode list
90WARNING: DO NOT, ABSOLUTELY DO NOT use ENCNTH, ENCSTH, ENCWST or ENCEST in any of the encoder mode keys. The reason is because these keycodes are used in process_record_user and they point to these very same encoder mode keys; this could generate a loop in process_record_user and freeze the keyboard.
91
92You can add and remove modes at will as long as you have at least one.
93*/
94const encoder_mode_t encoder_modes[] = {
95 // PINK MODE: "media mode". Encoder controls volume (and mode change on layer 1); click does media pause (mute on layer 1), directionals do arrows.
96 { .indicator_color = PINK,
97 .clockwise_key = {KC_VOLU, ENCMUP, KC_VOLU, KC_VOLU},
98 .counterclockwise_key = {KC_VOLD, ENCMDN, KC_VOLD, KC_VOLD},
99 .clicked_key = {KC_MUTE, KC_MUTE, KC_MPLY, KC_MUTE},
100 .north_key = {KC_UP, KC_UP, KC_UP, KC_UP},
101 .south_key = {KC_DOWN, KC_DOWN, KC_DOWN, KC_DOWN},
102 .east_key = {KC_RGHT, KC_RGHT, KC_RGHT, KC_RGHT},
103 .west_key = {KC_LEFT, KC_LEFT, KC_LEFT, KC_LEFT}
104 },
105 /* CYAN MODE: "application mode". Switches back and forth between applications ("alt-tabbing"); click stops the alt-tabbing at the selected application. When on layer 1, encoder changes modes. East-west switches tabs ("ctrl-tabbing") and north-sourh maximizes/minimizes windows (GUI plus up and down). Note: these are modifier keys defined natively in QMK
106 - C(kc) means hold left control and press kc
107 - MEH(kc) means hold left control, left shift and press kc
108 - G(kc) means hold LGUI and press kc
109*/
110 { .indicator_color = CYAN,
111 .clockwise_key = {ALTTABN, ENCMUP, ALTTABN, ALTTABN},
112 .counterclockwise_key = {ALTTABP, ENCMDN, ALTTABP, ALTTABP},
113 .clicked_key = {ALTTABC, ALTTABC, ALTTABC, ALTTABC},
114 .north_key = {G(KC_UP),G(KC_UP), G(KC_UP), G(KC_UP)},
115 .south_key = {G(KC_DOWN), G(KC_DOWN), G(KC_DOWN), G(KC_DOWN)},
116 .east_key = {C(KC_TAB), C(KC_TAB), C(KC_TAB), C(KC_TAB)},
117 .west_key = {S(C(KC_TAB)), S(C(KC_TAB)), S(C(KC_TAB)), S(C(KC_TAB))}
118 },
119 // YELLOW MODE: "navigation mode". Encoder mimicks mousehwheel, click does mouseclick. North-wouth does page up/down, east-west do home and end.
120 { .indicator_color = YELLOW,
121 .clockwise_key = {KC_WH_U, ENCMUP, KC_WH_U, KC_WH_U},
122 .counterclockwise_key = {KC_WH_D, ENCMDN, KC_WH_D, KC_WH_D},
123 .clicked_key = {KC_BTN1, KC_BTN2, KC_BTN1, KC_BTN1},
124 .north_key = {KC_PGUP, KC_PGUP, KC_PGUP, KC_PGUP},
125 .south_key = {KC_PGDN, KC_PGDN, KC_PGDN, KC_PGDN},
126 .east_key = {KC_END, KC_END, KC_END, KC_END},
127 .west_key = {KC_HOME, KC_HOME, KC_HOME, KC_HOME}
128 }
129 // Insert your custom encoder mode here
130};
131
132#define NUM_ENCODER_MODES ARRAY_SIZE(encoder_modes) // DO NOT CHANGE THIS. NUM_ENCODER_MODES calculates how many modes there are.
133
134// This counter is used to track what encoder mode is being used at a certain time
135int encoder_mode_count = 0;
136
137/* ---------------------------------------------- RGB STARTING COLOR
138Due to the way rgblight.c stores to and re-stores RGB configurations from EEPROM, the first time the MCU boots up, the EEPROM will not have stored the default value for the RGB animation which in QMK is the static red light; however, during the first bootup, this EEPROM will be set so that, in all subsequent bootups, the RGBs will glow red instead of whatever color the first encoder mode is. What these lines do is re-define the default RGB color so that the default RGB color is defined the same as encoder mode [0] so that the RGB will glow this color once the keyboard boots. DONT CHANGE THIS.
139*/
140#define RGBLIGHT_DEFAULT_HUE encoder_modes[0].indicator_color[0]
141#define RGBLIGHT_DEFAULT_SAT encoder_modes[0].indicator_color[1]
142#define RGBLIGHT_DEFAULT_VAL encoder_modes[0].indicator_color[2]
143
144/* ---------------------------------------------- DEFINING DEFAULT KEYMAP
145Adapt this at will with the caveat that you should not have more nor less than four layers. And let's be honest, if you find yourself needing more than four layers on a 75% keyboard you are probably doing something wrong.
146*/
147const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
148 [0] = LAYOUT_iso(
149 KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_INS ,
150 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_DEL , ENCNTH,
151 KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_ENT , KC_PGUP, ENCWST , ENCCLK, ENCEST,
152 KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, ENCSTH,
153 KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) ,
154 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
155 [1] = LAYOUT_iso(
156 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
157 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCNTH,
158 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCWST , ENCCLK, ENCEST,
159 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCSTH,
160 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS,
161 _______, _______, _______, _______, _______, _______, _______, _______, _______),
162 [2] = LAYOUT_iso(
163 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
164 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCNTH,
165 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCWST , ENCCLK, ENCEST,
166 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCSTH,
167 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
168 _______, _______, _______, _______, _______, _______, _______, _______, _______),
169 [3] = LAYOUT_iso(
170 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
171 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCNTH,
172 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCWST , ENCCLK, ENCEST,
173 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCSTH,
174 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
175 _______, _______, _______, _______, _______, _______, _______, _______, _______)
176};
177
178/* ---------------------------------------------- END OF USER CUSTOMIZABLE CODE
179Everything past here are functions that operate the firmware. There is nothing to be customized by the user for encoder modes or keyboard keymap.
180*/
181
182/* ---------------------------------------------- SET INDICATOR COLOR FUNCTION
183This is the function used when the RGB colors need to change.
184*/
185void set_indicator_colors(const color target_color){
186 rgblight_sethsv(target_color[0],target_color[1],target_color[2]);
187};
188
189// Board init: RGB indicator is set to the first encoder mode color, also encoder mode is set to first mode.
190void keyboard_pre_init_user(void){
191 set_indicator_colors(STARTUP_COLOR);
192 encoder_mode_count = 0;
193};
194
195void keyboard_post_init_user(void){
196 set_indicator_colors(encoder_modes[0].indicator_color);
197};
198
199/* ---------------------------------------------- SPECIAL KEYCODE PROCESSING
200 The heart of this firmware is the process_custom_keycode function; this allows all the customized keycodes ENCMUP, ENCMDN, ALTTABN, ALLTABP and so on to be used in any place including the encoder callback. Its main mechanic is calling the process_record_user function, where there is a function for each one of the customized keycodes.
201 What process_custom_keycode does is, if a "normal" keycode is passed on, then it is registered and held for a small period of time (MEDIA_KEY_DELAY to be more specific). This "holding" allows it to correctly register media keys. However, if a custom keycode is used, then the function executes process_record_user again, but now with a new argument keycode that will be whatever is mapped inside the special key requested.
202 Admittedly, this implementation looks redundant: process_record_user calls process_custom_keycode which calls process_record_user again. However, the ingenuity of this recursion is this allows any of the custom keycodes to be mappable both to encoder action as well as keys by having their behavior mapped to a single function in a switch-case structure. For instance, by having the encoder update function encoder_update_user use process_custom_keycode, the code for each custom keycode can be present in a single place in the code, that is, in process_record_user. On another hand, if the user wants to map a certain special keycode to a particular key, they can do so; for instance, if the user wants to map the encoder mode switch keys ENCMUP/ENCMDN to, say, left and right keys of layer 1, they can also do so.
203 The glaring problem with this approach is the same as with all recursions: a recursion mapped to itself is a loop, meaning that it is very easy to put the program in a loop within process_record_user by nesting the custom keycodes, for instance, using the keycode ENCNTH in a north key in any of the modes. This then requires a certain care from whoever is adapting or customizing their encoder modes to not use ENCNTH, ENCSTH, ENCWST, ENCEST in the keymap or the encoder modes. The way the firmware deals with this is by only processing keycodes inside the 0x5F85 and 0x5F89 range which exclude these keys; if the given keycode is in the 0x5F80 to 0x5F84 range, which pertains to these forbidden keycodes, nothing is done; to the user it will seem like nothing happens.
204 In the case of the encoder rotating action, in order to call process_record_user a placeholder record is used, the idea being to use values not obtainable phisically on the keyboard like col 20, row 20, with a timer right at the begginig of the code initialization.
205keyrecord_t record {
206 keyevent_t event {
207 keypos_t key {
208 uint8_t col
209 uint8_t row
210 }
211 bool pressed
212 uint16_t time
213 }
214}
215
216Despite this long description, process_custom_kc is fairly simple. It tests the passed keycode and, if it is one of the custom-defined keys in the forbidden range, nothing is done; if it's one of the good ones, process_record_user is called and the function for that particular keycode will be executed. In other cases, if the event was a press the keycode is registered and held for MEDIA_KEY_DELAY ms. In the case the event was a release, the keycode is unregistered.
217*/
218
219keyrecord_t placeholder_record ;
220//placeholder_record->event.key.col = 20;
221//placeholder_record.event.key.row = 20;
222//placeholder_record.event.time = timer_read32();
223
224uint16_t mapped_code = 0;
225uint32_t held_keycode_timer = 0;
226void process_custom_keycode(uint16_t keycode, keyrecord_t *record){
227 if (keycode >= 0x05F80 && keycode < 0x5F85) ;
228 else if (keycode >= 0x5F85 && keycode <= 0x5F89) process_record_user(keycode, record);
229 else {
230 // Note: (un)register_keycode16 need to be the 16 bit versions in case modifier keys like C(), G() and so on are used. This is specially true for the "application control" encoder mode.
231 if (record->event.pressed){
232 register_code16(keycode);
233 held_keycode_timer = timer_read32();
234 while (timer_elapsed32(held_keycode_timer) < MEDIA_KEY_DELAY);
235 } else unregister_code16(keycode);
236 }
237}
238
239// Basically calls process_custom_keycode in a press event and then in a release event. This is basically done to tap custom keycodes.
240void tap_custom_keycode(uint16_t keycode){
241 placeholder_record.event.pressed = true;
242 process_custom_keycode(keycode, &placeholder_record);
243 placeholder_record.event.pressed = false;
244 process_custom_keycode(keycode, &placeholder_record);
245}
246
247/* ---------------------------------------------- LAYER UPDATING
248Keeps track of the highest active layer.
249*/
250int current_layer = 0 ; // Updated in layer_state_set_user each time a layer change is made
251layer_state_t layer_state_set_user(layer_state_t state) {
252 current_layer = get_highest_layer(state);
253 return state;
254}
255
256/* ---------------------------------------------- ENCODER MDOE CYCLING
257Pretty straightforward: cycles encoder mode forwards if passed a true value and backwards otherwise.
258
259Some care is taken for two edge cases:
260 - The user is at mode 0 and the encoder mode is changed backwards
261 - The user is at the last mode and changes it forward.
262
263The program deals with this last case by taking the division remainder, which will take encoder_mode_count to 0. For the first case, encoder_mode_count is just made equal to the last (highest) mode.
264*/
265void cycle_encoder_mode(bool forward){
266 forward ? encoder_mode_count++ : encoder_mode_count-- ;
267 if (encoder_mode_count == -1) encoder_mode_count = NUM_ENCODER_MODES - 1;
268 encoder_mode_count = encoder_mode_count%NUM_ENCODER_MODES ; // This makes sure encoder_mode_count keeps cycling between 0,1,...,NUM_ENCODER_MODES and doesnt eventually overflow
269 set_indicator_colors( encoder_modes[ encoder_mode_count ].indicator_color ); // Set indicator color to the corresponding defined color
270}
271
272/* ---------------------------------------------- PROCESSING ALT-TABBING
273This function process the alt-tabbing keycode ALTTABS. The process works in a few steps:
274- At first, the flag is_alt_tab_active is false. When the user first uses this keycode (rotating the encoder, for instance) then the function turns the flag and "presses" left alt (KC_LALT), also triggering a timer alt_tab_timer.
275- The alt_tab_timer is supposed to keep track of how many miliseconds the alt-tab window should be kept, that is, how much time the LALT keycode should be held. The objective being, once the user cycles through the applications to the desired one, they select it either by not rotating the applications anymore or clicking the encoder.
276- Finally, the function shoots out the KC_TAB keycode if the encoder was rotated clockwise or the S(KC_TAB) (shift + tab) if the encoder was rotated counterclockwise.
277- If the user cycles the encoder still while alt-tab is active, then the function refreshes the timer and shoots out tab or shift+tab.
278- The function that keeps track of the timer expiration is housekeeping_task_user, where if the alt_tab_timer surpasses the defined ALT_TAB_DELAY macro (defaults to 2 seconds or 2000 ms) then the release_alt_tab function is called: the LALT keycode is released and the is_alt_tab_active flag is set to false again
279- The release_alt_tab function is also called when the ALTTABC keycode is hit, thus selecting the desired application.
280*/
281
282// This bool records if LALT is pressed or not. Due to the automatic disabling of the ALT-TAB of the ALTTABS custom keystroke, the automatic disabling can un-register KC_LALT even when the LALT key is phisically pressed. Hence there needs to be two bools: one that keebs track of the ALT-TAB activity and one that keeps track of LALT so that the automatic disabling will not disable LALT if it is phisically pressed.
283bool is_lalt_pressed = false;
284bool is_alt_tab_active = false; // Flag to check if alt tab is active
285uint32_t alt_tab_timer = 0; // Time trigger for alt tab
286void process_alt_tabbing(bool next){
287 if(!is_alt_tab_active) {
288 is_alt_tab_active = true;
289 register_code(KC_LALT);
290 }
291 alt_tab_timer = timer_read32();
292 tap_code16(next ? KC_TAB : S(KC_TAB));
293}
294
295void release_alt_tab(void){
296 is_alt_tab_active = false;
297 unregister_code(KC_LALT);
298}
299
300/* ---------------------------------------------- ENCODER UPDATE CALLBACK
301This taps the keycode stored in the encoder mode struct, at the current encoder mode, at the current layer. Because the user can use non-QMK-native keycodes in the encoder, like the alt-tabbing keycodes like ALTTABP and ATLTTABN, the tap function is the custom tap one.
302*/
303
304bool encoder_update_user(uint8_t index, bool clockwise) {
305 mapped_code = clockwise ? encoder_modes[ encoder_mode_count ].clockwise_key[ current_layer ] : encoder_modes[ encoder_mode_count ].counterclockwise_key[ current_layer ] ; // mapped code is the clockwise key if a clockwise motion is sensed, otherwise it registers the counterclockwise key
306 tap_custom_keycode(mapped_code);
307 return false; // This function needs to return false in order to inhibit the action of encoder_update_user as defined in evolv.c
308}
309
310/* ---------------------------------------------- DEALING WITH THE ENCODER CLICK
311The encoder used in the Evolv has a construction particularity in that not only it has rotation and clicking but also directional joystic capabilities in the four cardinal directions, as in, it can also register four directions. The way that this works is, there are A,B and a common pin for the encoder rotation , with a PUSH and a COM pin. The encoder pins work pretty much like common encoders, as does the switch click: once you click it, PUSH and COM short-circuit, so the pushing mechanic can be easily integrated into a switch matrix and treated like a switch would.
312
313The problem, however, lies in the directionals. For each directional, say N,S,W,E, there is a corresponding pin on the encoder; once one directional is hit its pin is shorted with PUSH and COM. This means that the directionals can be treated as four short-circuit keys and integrated into the matrix, but with the added hassle that every time one of them is registered, the encoder push is also registered.
314
315The way this firmware deals with this problem is threefold.
316
317- First, there is a is_click_blocked flag that is set true whenever one of the directionals is sensed by the matrix; the name suggests that in this case the click keycode processing should be "blocked". This allows the firmware to differentiate between an event where a directional was hit (the encoder push is recognized but is_click_blocked is true) and an event where only the push was used (is_click_blocked is false albeit the push being sensed).
318- Second, in order to prevent the encoder push key from registering before the flag is set, a 20ms delay takes place when the encoder click was sensed; this means that when a directional is hit, the encoder action is guaranteed to be processed only after the is_click_blocked flag is true.
319- Finally, held_click_timer and is_click_held are used to differentiate between a click short push and a long push; when a directional key is hit, is_click_held is immediately reset, further preventing any action corresponding to the encoder push click being held down.
320
321automatic_encoder_mode_cycle is a flag used by the housekeeping function to communicate an encoder mode change was made during an encoder push, meaning that the user has held the encoder enough to trigger an encoder mode change. What the housekeeping function does is constantly monitor the timer so that, when it extrapolates the designated ENCODER_CLICK_DELAY, a mode change takes place; the held_click_timer timer is refreshed. The problem is that, once the user reaches their desired mode and releases the encoder, the timer had been refreshed and is lower than the designated delay, which would cause the "fast click" keycode to be triggered, which is of course unwanted. Hence the algorithm filters out these situations by knowing when the automatic mode change has taken place and not registering the click key, only resetting the automatic_encoder_mode_cycle flag.
322
323Finally, the process_encoder_click function has two parts. In a click press event, it sets the flag is_click_held and triggers a timer. When the encoder push is released, the timer is sampled and the pertinent action is taken depending on how much time the encoder was held for.
324*/
325
326uint32_t held_click_timer = 0;
327bool is_click_held = false;
328bool is_shift_held = false;
329bool automatic_encoder_mode_cycle = false; // This flag registers if the encoder mode was automatically cycled
330bool is_click_blocked = false;
331void process_encoder_click(bool clickpress){
332 // What to do when the encoder is pressed: turn the flag to true, start (or refresh) timer
333 if (clickpress) {
334 is_click_held = true;
335 held_click_timer = timer_read32();
336 } else { // What to do when encoder is released
337 is_click_held = false;
338 // Checking if the time the encoder click was held was smaller than the delay defined and if an automatic mode change was not already performed. If it was, just register whatever it is the click does.
339 if (timer_elapsed32(held_click_timer) < ENCODER_CLICK_DELAY && !automatic_encoder_mode_cycle ) tap_custom_keycode(encoder_modes[ encoder_mode_count ].clicked_key[ current_layer ]);
340 automatic_encoder_mode_cycle = false;
341 }
342}
343
344bool process_directional(uint16_t keycode, keyrecord_t *record){
345 is_click_held = false;
346 is_click_blocked = record->event.pressed ;
347 process_custom_keycode( keycode , record );
348 return false;
349}
350
351bool process_record_user(uint16_t keycode, keyrecord_t *record) {
352 switch (keycode) {
353 case KC_LSFT:
354 case KC_RSFT:
355 is_shift_held = record->event.pressed;
356 break;
357 case KC_LALT: // If this is not defined, if the encoder is activated in the alt-tab mode while the LALT key is pressed, the menu goes away.
358 is_lalt_pressed = record->event.pressed;
359 break;
360// ---------------------------------------------- CUSTOM KEYCODES: they do their thing and retun false right away to prevent any further action
361// --------------------- Encoder directionals (note: process_directional always returns false)
362 case ENCNTH: return process_directional( encoder_modes[ encoder_mode_count ].north_key[ current_layer ] , record);
363 case ENCSTH: return process_directional( encoder_modes[ encoder_mode_count ].south_key[ current_layer ] , record);
364 case ENCEST: return process_directional( encoder_modes[ encoder_mode_count ].east_key[ current_layer ] , record);
365 case ENCWST: return process_directional( encoder_modes[ encoder_mode_count ].west_key[ current_layer ] , record);
366// --------------------- Encoder click
367 case ENCCLK:
368 held_keycode_timer = timer_read32();
369 while (timer_elapsed32(held_keycode_timer) < 20);
370 if(!is_click_blocked) process_encoder_click(record->event.pressed);
371 return false; // Skip all further processing of this key
372// --------------------- Alt-tabbing
373 case ALTTABN:
374 case ALTTABP:
375 if(record->event.pressed) process_alt_tabbing(keycode == ALTTABN); // alt-tabs forward if the keycode is ALTTABN, else alt-tabs backwards if it's ALTTABP
376 return false;
377 case ALTTABC:
378 if(record->event.pressed) release_alt_tab();
379 return false;
380// --------------------- Encoder mode up/down
381 case ENCMUP:
382 case ENCMDN:
383 if(record->event.pressed) cycle_encoder_mode(keycode == ENCMUP); // Cycles encoder mode up if keycode is ENCMUP, else cycles backwards if the keycode is ENCMDN
384 return false;
385// ---------------------------------------------- DEFAULT
386 default:
387 return true;
388 }
389 return true;
390}
391
392/* ---------------------------------------------- HOUSEKEEPING
393Housekeeping keeps track of three events:
394- Keeps track of the alt-tabbing timer. If it surpasses ALT_TAB_DELAY the release_alt_tab function is called;
395- Keeps track of the encoder click hold timer; if the encoder click is held for more than a certain delay, cycles encoder mode and sets the automatic_mode_change flag.
396- The is_click_blocked flag marks if the encoder click has been registered with a directional key (recall that in this encoder, when a directional key is hit, both the directional key and the encoder push key are triggered in the keymap). In this case, only the directional should be registered. Hence, this housekeeping function resets the held_click_timer timer because, if this is not done, if the directional key is held for more than ENCODER_CLICK_DELAY then this will trigger an automatic mode change.
397*/
398void housekeeping_task_user(void) {
399 if (is_alt_tab_active){
400 if (is_lalt_pressed) alt_tab_timer = timer_read32(); // If the user is holding the LALT key, refresh the timer
401 else if (timer_elapsed32(alt_tab_timer) > ALT_TAB_DELAY) release_alt_tab(); // If the timer surpasses the delay, release alt tab
402 }
403 if (is_click_blocked) held_click_timer = timer_read32(); // To prevent mode changing when directionals are held
404 if (is_click_held && timer_elapsed32(held_click_timer) > ENCODER_CLICK_DELAY ){
405 automatic_encoder_mode_cycle = true;
406 held_click_timer = timer_read32();
407 if (is_shift_held) cycle_encoder_mode(false);
408 else cycle_encoder_mode(true);
409 }
410}
diff --git a/keyboards/exclusive/e65/keymaps/crd/keymap.c b/keyboards/exclusive/e65/keymaps/crd/keymap.c
deleted file mode 100644
index 865db0a792..0000000000
--- a/keyboards/exclusive/e65/keymaps/crd/keymap.c
+++ /dev/null
@@ -1,31 +0,0 @@
1#include QMK_KEYBOARD_H
2
3enum keyboard_layers {
4 _BL = 0, // Base Layer
5 _FL, // Function Layer
6 _LL // Lights layer
7};
8
9const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
10
11 [_BL] = LAYOUT_65_ansi_7u_wk_splitbs(
12 QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_HOME,
13 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP,
14 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
15 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LT(_FL, KC_UP), KC_DEL,
16 MO(_LL), KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT),
17
18 [_FL] = LAYOUT_65_ansi_7u_wk_splitbs(
19 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, _______,
20 _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, KC_SCRL, KC_PAUS, KC_UP, _______, _______, _______,
21 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
22 _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
23 _______, _______, _______, _______, _______, _______, _______, _______),
24
25 [_LL] = LAYOUT_65_ansi_7u_wk_splitbs(
26 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI,
27 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI,
28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_VAD,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAD,
30 _______, _______, _______, _______, _______, RGB_RMOD, RGB_HUD, RGB_MOD),
31}; \ No newline at end of file
diff --git a/keyboards/exclusive/e65/keymaps/crd/readme.md b/keyboards/exclusive/e65/keymaps/crd/readme.md
deleted file mode 100644
index ac58f84249..0000000000
--- a/keyboards/exclusive/e65/keymaps/crd/readme.md
+++ /dev/null
@@ -1,7 +0,0 @@
1# crd's Keymap
2
3Difference from base layout:
4 * split backspace
5 * blocker bottom row
6 * HHKB Fn layer on Up key when held
7 * lights layer on left Ctrl
diff --git a/keyboards/foxlab/leaf60/hotswap/keymaps/crd/keymap.c b/keyboards/foxlab/leaf60/hotswap/keymaps/crd/keymap.c
deleted file mode 100644
index 3662c57c4b..0000000000
--- a/keyboards/foxlab/leaf60/hotswap/keymaps/crd/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
1#include QMK_KEYBOARD_H
2
3enum keyboard_layers {
4 _BL = 0, // Base Layer
5 _FL, // Function Layer
6 _CL // Control Layer
7};
8
9#define KC_CTES CTL_T(KC_ESC)
10
11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12 [_BL] = LAYOUT_60_tsangan_hhkb(
13 QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
14 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
15 KC_CTES, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
16 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL),
17 KC_LCTL, XXXXXXX, KC_LGUI, KC_SPC, KC_RALT, XXXXXXX, TO(_CL)
18 ),
19 [_FL] = LAYOUT_60_tsangan_hhkb(
20 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
21 _______, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______,
22 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
23 _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
24 _______, _______, _______, _______, _______, _______, _______
25 ),
26 [_CL] = LAYOUT_60_tsangan_hhkb(
27 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
28 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_ON, XXXXXXX, XXXXXXX,
29 XXXXXXX, BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_BRTG, BL_STEP, XXXXXXX,
30 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_OFF, XXXXXXX, XXXXXXX,
31 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TO(_BL)
32 )
33};
diff --git a/keyboards/gboards/gergo/keymaps/abstractkb/config.h b/keyboards/gboards/gergo/keymaps/abstractkb/config.h
deleted file mode 100644
index d3c17757c8..0000000000
--- a/keyboards/gboards/gergo/keymaps/abstractkb/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
1#pragma once
2
3#undef DEBOUNCE
4#define DEBOUNCE 10
diff --git a/keyboards/gboards/gergo/keymaps/abstractkb/keymap.c b/keyboards/gboards/gergo/keymaps/abstractkb/keymap.c
deleted file mode 100644
index 6ee37f8175..0000000000
--- a/keyboards/gboards/gergo/keymaps/abstractkb/keymap.c
+++ /dev/null
@@ -1,128 +0,0 @@
1/* Good on you for modifying your layout! if you don't have
2 * time to read the QMK docs, a list of keycodes can be found at
3 *
4 * https://github.com/qmk/qmk_firmware/blob/master/docs/keycodes.md
5 *
6 * There's also a template for adding new layers at the bottom of this file!
7 */
8
9#include QMK_KEYBOARD_H
10
11#define BASE 0 // default layer
12#define SYMB 1 // symbols
13#define NUMB 2 // numbers/motion
14
15// Blank template at the bottom
16
17enum customKeycodes {
18 URL = 1
19};
20
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23/* Keymap 0: Basic layer
24 *
25 * ,-------------------------------------------. ,-------------------------------------------.
26 * | L1/ESC | Q | W | E | R | T | | Y | U | I | O | P | | \ |
27 * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------|
28 * |Ctrl/BS | A | S | D | F | G | RMB | | | H | J | K | L | ; : | ' " |
29 * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------|
30 * | LShift | Z | X | C | V | B | LMB | | | N | M | , < | . > | / ? |RShft/-_|
31 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
32 * .----------. .-------. .------. .-----.
33 * | GUI/Del | |Ent/ALT| | Tab | |GUI |
34 * '----------' '-------' `------. '-----'
35 * ,-------. ,-------.
36 * | MMB | | PgDn |
37 * ,------|-------| |-------|------.
38 * | SYMB | NUMB | | SYMB | NUMB |
39 * | Space| Escape| | Mod |Space |
40 * | | | | | |
41 * `--------------' `--------------'
42 */
43[BASE] = LAYOUT_gergo(
44 LT(NUMB, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE,
45 MT(MOD_LCTL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_BTN2, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
46 KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BTN1, KC_BTN3, KC_PGDN, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_MINS),
47 MT(MOD_LGUI, KC_DEL), MT(MOD_LALT, KC_ENT), LT(SYMB, KC_SPC), LT(NUMB, KC_ESC), LT(SYMB, KC_ENT), LT(NUMB, KC_SPC), KC_TAB, KC_LGUI
48 ),
49/* Keymap 1: Symbols layer
50 *
51 * ,-------------------------------------------. ,-------------------------------------------.
52 * | | ! | @ | { | } | | | | | | | | | \ | |
53 * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------|
54 * | | # | $ | ( | ) | ` | | | | + | - | / | * | % | ' " |
55 * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------|
56 * | | % | ^ | [ | ] | ~ | | | | & | = | , | . | / ? | - _ |
57 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
58 * .------. .------. .------. .-----.
59 * | | | | | | | DEL |
60 * '------' '------' `------. '-----'
61 * ,-------. ,-------.
62 * | | | PgUp |
63 * ,------|-------| |-------|------.
64 * | | | | | |
65 * | ; | = | | = | ; |
66 * | | | | | |
67 * `--------------' `--------------'
68 */
69[SYMB] = LAYOUT_gergo(
70 KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS,
71 KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_TRNS, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_PERC, KC_QUOT,
72 KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
73 KC_TRNS, KC_TRNS, KC_SCLN, KC_EQL, KC_EQL, KC_SCLN, KC_PGUP, KC_DEL
74 ),
75/* Keymap 2: Pad/Function layer
76 *
77 * ,-------------------------------------------. ,-------------------------------------------.
78 * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
79 * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------|
80 * | F1 | F2 | F3 | F4 | F5 | F6 | BTN1 | | | LEFT | DOWN | UP | RIGHT|VolDn | VolUp |
81 * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------|
82 * | F7 | F8 | F9 | F10 | F11 | F12 | BTN2 | | | MLFT | MDWN | MUP | MRGHT|Ply/Pa| Skip |
83 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
84 * .------. .------. .------. .-----.
85 * | | | | | | | |
86 * '------' '------' `------. '-----'
87 * ,-------. ,-------.
88 * | | | PgUp |
89 * ,------|-------| |-------|------.
90 * | | | | | |
91 * | | | | | |
92 * | | | | | |
93 * `--------------' `--------------'
94 */
95[NUMB] = LAYOUT_gergo(
96 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
97 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLD, KC_VOLU,
98 KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_MPLY, KC_MNXT,
99 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
100 ),
101};
102
103/* Keymap template
104 *
105 * ,-------------------------------------------. ,-------------------------------------------.
106 * | | | | | | | | | | | | | |
107 * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------|
108 * | | | | | | | | | | | | | | | |
109 * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------|
110 * | | | | | | | | | | | | | | | |
111 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
112 * .------. .------. .------. .-----.
113 * | | | | | | | |
114 * '------' '------' `------. '-----'
115 * ,-------. ,-------.
116 * | | | |
117 * ,------|-------| |-------|------.
118 * | | | | | |
119 * | | | | | |
120 * | | | | | |
121 * `--------------' `--------------'
122[SYMB] = LAYOUT_gergo(
123 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
124 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
125 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
126 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
127 )
128 */
diff --git a/keyboards/gboards/gergo/keymaps/abstractkb/readme.md b/keyboards/gboards/gergo/keymaps/abstractkb/readme.md
deleted file mode 100644
index 863b21e8e2..0000000000
--- a/keyboards/gboards/gergo/keymaps/abstractkb/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
1# [Gergo! By g Heavy Industries](http://gboards.ca)
2
3![Gergo image](https://4.bp.blogspot.com/-889nMXxgSM0/XCNxwnO5kUI/AAAAAAAA6mI/tZbWgZVCBW0dyZOCGJDkjN06DVax7j8XwCLcBGAs/s1600/48422820_967732713413298_485744639215665152_n.jpg)
4
5This is my personal modification to the stock gergo keymap.
6
7## Settings
8To edit various settings, enable the 1u trackball and whatnot please modify /keyboards/gboards/gergo/keymaps/default/rules.mk
9
10Ideally you should copy this directory and make your changes there. If you come up with a good layout submit a PR!
diff --git a/keyboards/gboards/gergo/keymaps/abstractkb/rules.mk b/keyboards/gboards/gergo/keymaps/abstractkb/rules.mk
deleted file mode 100644
index 4b4e56c4a0..0000000000
--- a/keyboards/gboards/gergo/keymaps/abstractkb/rules.mk
+++ /dev/null
@@ -1,38 +0,0 @@
1#----------------------------------------------------------------------------
2# make gergo:germ:dfu
3# Make sure you have dfu-programmer installed!
4#----------------------------------------------------------------------------
5# Firmware options
6BALLER = no # Enable to ball out
7BALLSTEP = 20 # Multiple in px to move, multiplied by layer number
8SCROLLSTEP = 1 # Lines to scroll with ball
9MOUSEKEY_ENABLE = yes # Mouse keys, needed for baller
10
11#Debug options
12VERBOSE = yes
13DEBUG_MATRIX_SCAN_RATE = no
14DEBUG_BALLER = no
15DEBUG_MATRIX = yes
16
17# A bunch of stuff that you shouldn't touch unless you
18# know what you're doing.
19#
20# No touchy, capiche?
21
22ifneq ($(strip $(BALLSTEP)),)
23 OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP))
24endif
25ifneq ($(strip $(SCROLLSTEP)),)
26 OPT_DEFS += -DSCROLLSTEP=$(strip $(SCROLLSTEP))
27endif
28ifeq ($(strip $(BALLER)), yes)
29 POINTING_DEVICE_ENABLE = yes
30 POINTING_DEVICE_DRIVER = custom
31 OPT_DEFS += -DBALLER
32endif
33ifeq ($(strip $(DEBUG_BALLER)), yes)
34 OPT_DEFS += -DDEBUG_BALLER
35endif
36ifeq ($(strip $(DEBUG_MATRIX)), yes)
37 OPT_DEFS += -DDEBUG_MATRIX
38endif
diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/ai03/keymap.c b/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/ai03/keymap.c
deleted file mode 100644
index 1904d616f7..0000000000
--- a/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/ai03/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
1/* Copyright 2019 Ryota Goto
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#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_all( /* Base */
20 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL,
21 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
22 MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
23 KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PSCR,
24 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_GRV, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT
25 ),
26 [1] = LAYOUT_all( /* FN */
27 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
28 KC_CAPS, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______,
29 _______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, BL_UP,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, BL_DOWN,
31 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
32 )
33};
34
diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/ai03/readme.md b/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/ai03/readme.md
deleted file mode 100644
index 91306e82af..0000000000
--- a/keyboards/kbdfans/kbd67/mkii_soldered/keymaps/ai03/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
1# The ai03 keymap for KBD67 MKII
2
3Tweaked slightly for more functionality closer to home position.
diff --git a/keyboards/kbdfans/kbd6x/keymaps/mekberg/config.h b/keyboards/kbdfans/kbd6x/keymaps/mekberg/config.h
deleted file mode 100644
index d29180a5af..0000000000
--- a/keyboards/kbdfans/kbd6x/keymaps/mekberg/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
1#pragma once
2
3// Define some configuration for modtap behavior
4// #define TAPPING_TERM 150
5#define PERMISSIVE_HOLD
diff --git a/keyboards/kbdfans/kbd6x/keymaps/mekberg/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/mekberg/keymap.c
deleted file mode 100644
index b7152d49fb..0000000000
--- a/keyboards/kbdfans/kbd6x/keymaps/mekberg/keymap.c
+++ /dev/null
@@ -1,98 +0,0 @@
1/* Copyright 2018 MechMerlin
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#include QMK_KEYBOARD_H
17
18// #define MY_LOCK C(A(KC_L)) // Mac: Custom lock hotkey in BTT
19#define MY_LOCK C(LCMD(KC_L)) // Mac: Custom lock hotkey in BTT (when Alt/Command have been swapped in macOS)
20
21/*
22KBD6x ANSI physical layout
231u == 8chars
24 ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
25 | | | | | | | | | | | | | | | |
26 |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
27 | 1,5u | | | | | | | | | | | | | 1,5u |
28 |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
29 | 1,75u | | | | | | | | | | | | 1,25u |
30 |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
31 | 2,25u | | | | | | | | | | | 1,75u | |
32 └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
33 | | 1,25u | | 1,25u | |
34 └────────────────────────────────────────────────────────────────────────────────────────────────────┘
35*/
36
37const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
38 [0] = LAYOUT(
39// ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
40// | | | | | | | | | | | | | | | |
41 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NUBS,KC_NUHS,
42// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
43// | 1,5u | | | | | | | | | | | | | 1,5u |
44 LT(2,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
45// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
46// | 1,75u | | | | | | | | | | | | 1,25u |
47 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
48// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
49// | 1,25u | | | | | | | | | | | 1,75u | |
50 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
51// └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
52// | | 1,25u | | 1,25u | |
53 XXXXXXX, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, XXXXXXX
54// └────────────────────────────────────────────────────────────────────────────────────────────────────┘
55 ),
56
57// Fn layer, left hand free
58// F-keys, RGB controls, media controls, Keyboard functions
59 [1] = LAYOUT(
60// ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
61// | | | | | | | | | | | | | | | |
62 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, QK_BOOT,
63// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
64// | 1,5u | | | | | | | | | | | | | 1,5u |
65 _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______,
66// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
67// | 1,75u | | | | | | | | | | | | 1,25u |
68 KC_RCTL, KC_VOLD, KC_VOLU, KC_MUTE, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, MY_LOCK,
69// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
70// | 1,25u | | | | | | | | | | | 1,75u | |
71 _______, BL_TOGG, BL_UP, BL_DOWN,BL_STEP, _______, _______, _______, KC_MRWD, KC_MFFD, _______, _______, _______,
72// └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
73// | | 1,25u | | 1,25u | |
74 XXXXXXX, _______, _______, KC_MPLY, _______, _______, XXXXXXX
75// └────────────────────────────────────────────────────────────────────────────────────────────────────┘
76 ),
77
78// Left Tab-Hold layer, right hand free
79// Nav-keys
80 [2] = LAYOUT(
81// ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
82// | | | | | | | | | | | | | | | |
83 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_BSPC,
84// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
85// | 1,5u | | | | | | | | | | | | | 1,5u |
86 _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, _______, _______, KC_DEL,
87// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
88// | 1,75u | | | | | | | | | | | | 1,25u |
89 _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
90// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────|
91// | 1,25u | | | | | | | | | | | 1,75u | |
92 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
93// └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
94// | | 1,25u | | 1,25u | |
95 XXXXXXX, _______, _______, _______, _______, _______, XXXXXXX
96// └────────────────────────────────────────────────────────────────────────────────────────────────────┘
97 ),
98};
diff --git a/keyboards/kbdfans/kbd6x/keymaps/mekberg/readme.md b/keyboards/kbdfans/kbd6x/keymaps/mekberg/readme.md
deleted file mode 100644
index febe2e1d68..0000000000
--- a/keyboards/kbdfans/kbd6x/keymaps/mekberg/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
1# General Information
2
3This is more or less a HHKB base layout, but with completely different Fn layers. I don't use most of the HHKB secondary key positions because, honestly, they make no sense to me at all.
4
5Fn key layer is focused mostly on keyboard firmware features (like RGB) as well as some of the necessary alternate functions. It also hold media controls, F-keys and Reset.
6
7Left Tab-Hold layer is focused on nav cluster functionality, and turns Backspace into Delete (and moves Backspace up into the top right 1u position).
8
9
10# Build instructions
11
12To simply build the firmware file: `make clean && make kbdfans/kbd6x:mekberg`
13
14To build and immediately flash: `make clean && make kbdfans/kbd6x:mekberg:dfu`
diff --git a/keyboards/kbdfans/kbd6x/keymaps/mekberg/rules.mk b/keyboards/kbdfans/kbd6x/keymaps/mekberg/rules.mk
deleted file mode 100644
index 257214607e..0000000000
--- a/keyboards/kbdfans/kbd6x/keymaps/mekberg/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
1NKRO_ENABLE = yes # USB Nkey Rollover
2CONSOLE_ENABLE = no # Console for debug
diff --git a/keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/keymap.c b/keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/keymap.c
deleted file mode 100644
index 2e91933f44..0000000000
--- a/keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
1/* Copyright 2019 Ryota Goto
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#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT( /* Base */
20
21 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
22 KC_LGUI, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, KC_HOME, KC_PGUP,
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
24 MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
25 KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, KC_UP,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_GRV, BL_TOGG, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT
27 ),
28 [1] = LAYOUT( /* Base */
29
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_BSPC, _______, _______, _______,
32 KC_CAPS, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______,
33 _______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_PGUP,
35 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
36 )
37};
diff --git a/keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/readme.md b/keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/readme.md
deleted file mode 100644
index d48343e70d..0000000000
--- a/keyboards/kbdfans/kbd8x_mk2/keymaps/ai03/readme.md
+++ /dev/null
@@ -1,4 +0,0 @@
1# The ai03 keymap for KBD8X MKII
2
3A strange layout that focuses functionality into the alphanumerics cluster.
4Fn row and further keys effectively become nothing more than decoration. \ No newline at end of file
diff --git a/keyboards/keebio/bfo9000/keymaps/abstractkb/config.h b/keyboards/keebio/bfo9000/keymaps/abstractkb/config.h
deleted file mode 100644
index 2eb4543603..0000000000
--- a/keyboards/keebio/bfo9000/keymaps/abstractkb/config.h
+++ /dev/null
@@ -1,41 +0,0 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6(Modified) Copyright 2019 AbstractKB
7
8This program is free software: you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation, either version 2 of the License, or
11(at your option) any later version.
12
13This program is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with this program. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#pragma once
23
24//my block------------
25#define RGBLIGHT_EFFECT_BREATHING
26#define RGBLIGHT_EFFECT_RAINBOW_MOOD
27#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
28#define RGBLIGHT_EFFECT_SNAKE
29#define RGBLIGHT_EFFECT_KNIGHT
30#define RGBLIGHT_EFFECT_CHRISTMAS
31#define RGBLIGHT_EFFECT_STATIC_GRADIENT
32#define RGBLIGHT_EFFECT_RGB_TEST
33#define RGBLIGHT_EFFECT_ALTERNATING
34#define RGBLIGHT_EFFECT_TWINKLE
35#define RGBLIGHT_SLEEP
36
37/* Select hand configuration */
38
39#define MASTER_LEFT
40// #define MASTER_RIGHT
41// #define EE_HANDS
diff --git a/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c b/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c
deleted file mode 100644
index 637a7e0440..0000000000
--- a/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c
+++ /dev/null
@@ -1,90 +0,0 @@
1#include QMK_KEYBOARD_H
2
3enum layers {
4 _BASE,
5 _LIST
6};
7
8enum my_keycodes {
9 MYRGB_TG = SAFE_RANGE
10};
11
12const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13
14[_BASE] = LAYOUT(
15 KC_MPLY, KC_PSLS, KC_PAST, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MYRGB_TG, KC_PGUP,
16 KC_MUTE, KC_PPLS, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_PGDN,
17 KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
18 KC_P4, KC_P5, KC_P6, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, KC_PSCR,
19 KC_P1, KC_P2, KC_P3, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_CAPS, KC_INS,
20 KC_P0, KC_PDOT, KC_PENT, KC_LCTL, TO(_LIST), KC_LGUI, KC_LALT, XXXXXXX, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NUM
21),
22
23[_LIST] = LAYOUT(
24 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
25 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
26 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
27 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
29 _______, _______, _______, _______, TO(_BASE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
30)
31
32};
33
34bool rgbinit = true;
35bool rgbon = true;
36
37const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {1,5,5}; //only using the first one
38
39void matrix_post_init_user(void) {
40 rgblight_enable_noeeprom();
41 led_set_user(host_keyboard_leds());
42}
43
44layer_state_t layer_state_set_user(layer_state_t state) {
45 switch (get_highest_layer(state)) {
46 case _LIST:
47 rgblight_sethsv_noeeprom(0,255,255);
48 rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL);
49 break;
50 default: //_BASE
51 rgblight_sethsv_noeeprom(0,0,255);
52 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
53 break;
54 }
55
56 return state;
57}
58
59bool led_update_user(led_t led_state) {
60 if (led_state.caps_lock) {
61 rgblight_mode_noeeprom(RGBLIGHT_MODE_ALTERNATING);
62 } else {
63 layer_state_set_user(layer_state);
64 }
65 return false;
66}
67
68void myrgb_toggle(void) {
69 if (rgbon) {
70 rgblight_disable_noeeprom();
71 rgbon = false;
72 } else {
73 rgblight_enable_noeeprom();
74 layer_state_set_user(layer_state);
75 led_set_user(host_keyboard_leds());
76 rgbon = true;
77 }
78}
79
80bool process_record_user(uint16_t keycode, keyrecord_t *record) {
81 switch(keycode) {
82 case MYRGB_TG:
83 if (record->event.pressed) {
84 myrgb_toggle();
85 }
86 return false;
87 default:
88 return true;
89 }
90}
diff --git a/keyboards/keebio/bfo9000/keymaps/abstractkb/readme.md b/keyboards/keebio/bfo9000/keymaps/abstractkb/readme.md
deleted file mode 100644
index 3ba56571fe..0000000000
--- a/keyboards/keebio/bfo9000/keymaps/abstractkb/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
1# My personal layout for the BFO-9000
2
3It is an approximation of a 96% layout with a left-hand number pad
4Other things I changed were swapping around delete, backspace, and capslock
5It also uses layer based rgb underglow, and the underglow flashes when capslock is enabled \ No newline at end of file
diff --git a/keyboards/keebio/bfo9000/keymaps/abstractkb/rules.mk b/keyboards/keebio/bfo9000/keymaps/abstractkb/rules.mk
deleted file mode 100644
index 7ad666d1a3..0000000000
--- a/keyboards/keebio/bfo9000/keymaps/abstractkb/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1RGBLIGHT_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/keebio/levinson/keymaps/numpad/config.h b/keyboards/keebio/levinson/keymaps/numpad/config.h
deleted file mode 100644
index 7e10bc445c..0000000000
--- a/keyboards/keebio/levinson/keymaps/numpad/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6Copyright 2018 Danny Nguyen <danny@keeb.io>
7
8This program is free software: you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation, either version 2 of the License, or
11(at your option) any later version.
12
13This program is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with this program. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#pragma once
23
24// #define USE_I2C
25// Need to flip the rows
26#undef MATRIX_COL_PINS
27#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 }
28
29/* Select hand configuration */
30// #define MASTER_RIGHT
31// #define EE_HANDS
32
33/* Time in ms until oneshot layer times out */
34#define ONESHOT_TIMEOUT 3000
diff --git a/keyboards/keebio/levinson/keymaps/numpad/keymap.c b/keyboards/keebio/levinson/keymaps/numpad/keymap.c
deleted file mode 100644
index 851abb3657..0000000000
--- a/keyboards/keebio/levinson/keymaps/numpad/keymap.c
+++ /dev/null
@@ -1,123 +0,0 @@
1#include QMK_KEYBOARD_H
2
3/* Add the stings you want to send as macros, see
4 * https://docs.qmk.fm/#/feature_macros for what all can be used
5 */
6#define MACRO_0 "zero"
7#define MACRO_1 "one"
8#define MACRO_2 "two"
9#define MACRO_3 "three"
10#define MACRO_4 "four"
11#define MACRO_5 "five"
12#define MACRO_6 "six"
13#define MACRO_7 "seven"
14#define MACRO_8 "eight"
15#define MACRO_9 "nine"
16
17enum macro_keycodes {
18 M0 = SAFE_RANGE,
19 M1,
20 M2,
21 M3,
22 M4,
23 M5,
24 M6,
25 M7,
26 M8,
27 M9
28};
29
30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31
32/* Numpad
33 * ,-----------------------------------------------------------------------------------.
34 * | 0 | 1 | 4 | 7 | BkSp |OSL(1)| | | | | | |
35 * |------+------+------+------+------+------+------+------+------+------+------+------|
36 * | , | 2 | 5 | 8 | / | Down | | | | | | |
37 * |------+------+------+------+------+------+------+------+------+------+------+------|
38 * | . | 3 | 6 | 9 | * | Up | | | | | | |
39 * |------+------+------+------+------+------+------+------+------+------+------+------|
40 * | Enter | + | - | = | MO(1)| | | | | | |
41 * `-----------------------------------------------------------------------------------'
42 */
43[0] = LAYOUT_ortho_4x12(
44 KC_KP_0, KC_KP_1, KC_KP_4, KC_KP_7, KC_BSPC, OSL(1), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
45 KC_COMMA, KC_KP_2, KC_KP_5, KC_KP_8, KC_KP_SLASH, KC_DOWN, KC_NO, KC_A, KC_B, KC_C, KC_D, KC_NO,
46 KC_KP_DOT, KC_KP_3, KC_KP_6, KC_KP_9, KC_KP_ASTERISK, KC_UP, KC_NO, KC_E, KC_F, KC_G, KC_H, KC_NO,
47 KC_KP_ENTER, KC_NO, KC_KP_PLUS, KC_KP_MINUS, KC_KP_EQUAL, MO(1), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
48),
49/* Macro layer - the number keys are macros,
50 * other functions on remaining keys
51 * ,-----------------------------------------.
52 * | M(0) | M(1) | M(4) | M(7) | | Esc |
53 * |------+------+------+------+------+------|
54 * | Left | M(2) | M(5) | M(8) | | |
55 * |------+------+------+------+------+------|
56 * | Right| M(3) | M(6) | M(9) | | |
57 * |------+------+------+------+------+------|
58 * | NumLock | QK_BOOT| | | Calc |
59 * `-----------------------------------------'
60 */
61[1] = LAYOUT_ortho_4x12(
62 M0, M1, M4, M7, KC_NO, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
63 KC_LEFT, M2, M5, M8, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
64 KC_RIGHT, M3, M6, M8, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
65 KC_NUM, QK_BOOT, KC_NO, KC_NO, KC_CALC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
66)
67};
68
69bool process_record_user(uint16_t keycode, keyrecord_t *record) {
70 switch (keycode) {
71 case M0:
72 if (record->event.pressed) {
73 SEND_STRING(MACRO_0);
74 }
75 break;
76 case M1:
77 if (record->event.pressed) {
78 SEND_STRING(MACRO_1);
79 }
80 break;
81 case M2:
82 if (record->event.pressed) {
83 SEND_STRING(MACRO_2);
84 }
85 break;
86 case M3:
87 if (record->event.pressed) {
88 SEND_STRING(MACRO_3);
89 }
90 break;
91 case M4:
92 if (record->event.pressed) {
93 SEND_STRING(MACRO_4);
94 }
95 break;
96 case M5:
97 if (record->event.pressed) {
98 SEND_STRING(MACRO_5);
99 }
100 break;
101 case M6:
102 if (record->event.pressed) {
103 SEND_STRING(MACRO_6);
104 }
105 break;
106 case M7:
107 if (record->event.pressed) {
108 SEND_STRING(MACRO_7);
109 }
110 break;
111 case M8:
112 if (record->event.pressed) {
113 SEND_STRING(MACRO_8);
114 }
115 break;
116 case M9:
117 if (record->event.pressed) {
118 SEND_STRING(MACRO_9);
119 }
120 break;
121 }
122 return true;
123};
diff --git a/keyboards/keebio/levinson/keymaps/numpad/readme.md b/keyboards/keebio/levinson/keymaps/numpad/readme.md
deleted file mode 100644
index 0c15ac54d3..0000000000
--- a/keyboards/keebio/levinson/keymaps/numpad/readme.md
+++ /dev/null
@@ -1,4 +0,0 @@
1# Numpad Layout
2[Layout Example](http://www.keyboard-layout-editor.com/##@@_c=%23ffd100&a:7%3B&=&_c=%23909596&f:5%3B&=&=&=%3B&@_c=%23c4c8c5&st=MX1A-L1xx&f:6%3B&=Esc&=%2F%2F&=*&=%3F%3B&@=7&=8&=9&=%E2%80%93%3B&@=4&_n:true%3B&=5&=6&=+%3B&@=1&=2&=3&_c=%23ffd100&h:2%3B&=%3B&@_c=%23c4c8c5%3B&=0&_a:5%3B&=%3C%0A,&=%3E%0A.)
3
4Uses a single half of the Levinson a vertical 4x6 numpad/macropad.
diff --git a/keyboards/keebio/levinson/keymaps/numpad/rules.mk b/keyboards/keebio/levinson/keymaps/numpad/rules.mk
deleted file mode 100644
index 639c76834c..0000000000
--- a/keyboards/keebio/levinson/keymaps/numpad/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
1# Build Options
2BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
3RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
diff --git a/keyboards/kin80/keymaps/quartz64/config.h b/keyboards/kin80/keymaps/quartz64/config.h
deleted file mode 100644
index 0b5cc5399b..0000000000
--- a/keyboards/kin80/keymaps/quartz64/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
1/*
2Copyright 2022 DmNosachev
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*/
17
18#pragma once
19
20#define LSPO_KEYS KC_LSFT, KC_TRNS, KC_LBRC
21#define RSPC_KEYS KC_RSFT, KC_TRNS, KC_RBRC
22
23#define ENCODERS_PAD_A { A10 }
24#define ENCODERS_PAD_B { A9 } \ No newline at end of file
diff --git a/keyboards/kin80/keymaps/quartz64/keymap.c b/keyboards/kin80/keymaps/quartz64/keymap.c
deleted file mode 100644
index 4eab31caf2..0000000000
--- a/keyboards/kin80/keymaps/quartz64/keymap.c
+++ /dev/null
@@ -1,234 +0,0 @@
1/* Copyright 2022 DmNosachev
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#include QMK_KEYBOARD_H
18#include "version.h"
19
20enum layer_names {
21 _BASE, // default layer
22 _NM, // numpad onright, mouse on left
23 _MC // macros
24};
25
26#define MC1 COMP_FR_QUOTES
27#define MC2 COMP_NBSP_EM_DASH
28#define MC3 COMP_NBSP
29
30enum custom_keycodes {
31 PLACEHOLDER = SAFE_RANGE, // can always be here
32 VRSN,
33 COMP_FR_QUOTES, // Compose: french quotes
34 COMP_NBSP_EM_DASH, // Compose: nbsp followed by em dash
35 COMP_NBSP, // Compose: nbsp
36 PWD1,
37 PWD2,
38 PWD3,
39 PWD4,
40 EMAIL1 // Gmail address
41};
42
43/*
44*
45*
46* ,-------------------------------------------- --------------------------------------------.
47* | Esc | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | PrSc | RAlt |
48* |--------+------+------+------+------+------+ +------+------+------+------+------+--------|
49* | +=/Alt | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
50* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
51* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| |
52* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
53* |`~/Ctrl | A | S | D | F | G | | H | J | K | L | ;: | '"/NM |
54* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
55* | Shift |Z/Ctrl| X | C | V | B | | N | M | ,. | .> | /? | Shift |
56* `-+------+------+------+------+------+------| |------+------+------+------+------+------+-'
57* | Play | MC |C+Shft| [ | ] | | | | Left | Down | Up | Right| |
58* `-----------------------------------------' `-----------------------------------------'
59* ,-------------. ,-------------.
60* | NM |Enter | | Gui | Ctrl |
61* ,------|------|------| |------+------+------.
62* | | | Home | | PgUp | | |
63* |Space |Backsp|------| |------| Del | Enter|
64* | | | End | | PgDn | | |
65* `--------------------' `--------------------'
66*/
67
68const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
69[_BASE] = LAYOUT_all(
70 KC_ESC, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR, KC_RALT,
71 LALT_T(KC_EQL), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
72 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
73 LCTL_T(KC_GRV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_NM, KC_QUOT),
74 SC_LSPO, LCTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC,
75 KC_MPLY, MO(_MC), LCTL(KC_LSFT), KC_LBRC, KC_RBRC, KC_NO, KC_NO, KC_LEFT,KC_DOWN, KC_UP, KC_RGHT,KC_NO,
76 MO(_NM), KC_ENTER, KC_RGUI,KC_RCTL,
77 KC_HOME, KC_PGUP,
78 KC_SPC, KC_BSPC, KC_END, KC_PGDN,KC_DEL, KC_ENTER
79 ),
80/*
81*
82*
83* ,-------------------------------------------- --------------------------------------------.
84* | F1 |au on |au off| | | | |ck tg |ck up |ck dn |ck rst| F11 | F12 |
85* |--------+------+------+------+------+------+ +------+------+------+------+------+--------|
86* | | | | | | | |ScrLk |Numlck| = | / | * | |
87* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
88* | | | MbL | MUp | MbR | Ins | |CapsLk| 7 | 8 | 9 | - | |
89* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
90* | | | ML | MDn | MR | | | | 4 | 5 | 6 | + | L1 |
91* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
92* | | | | | | | | . | 1 | 2 | 3 |Enter | |
93* `-+------+------+------+------+------+------| |------+------+------+------+------+------+-'
94* | | | | | | | | | | | | | |
95* `-----------------------------------------' `-----------------------------------------'
96* ,-------------. ,-------------.
97* | | | | | |
98* ,------|------|------| |------+------+------.
99* | | |MWhUp | | | | |
100* | | |------| |------| | 0 |
101* | | |MWhDn | | | | |
102* `--------------------' `--------------------'
103*/
104[_NM] = LAYOUT_all(
105 KC_F1, AU_ON, AU_OFF, _______, _______, _______, CK_TOGG, CK_UP, CK_DOWN, CK_RST, KC_F11, KC_F12,
106 _______, _______, _______, _______, _______, _______, KC_SCRL, KC_NUM, KC_PEQL, KC_PSLS, KC_PAST, _______,
107 _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_INS, KC_CAPS, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
108 _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
109 _______, _______, _______, _______, _______, _______, KC_PDOT, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
110 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
111 _______, _______, _______, _______,
112 KC_WH_U, _______,
113 _______, _______, KC_WH_D, _______, _______, KC_P0
114 ),
115/*
116*
117*
118* ,-------------------------------------------- --------------------------------------------.
119* | | | | | | | |email | | PWD4 | PWD3 | PWD2 | PWD1 |
120* |--------+------+------+------+------+------+ +------+------+------+------+------+--------|
121* | | | | | | | | | | | | | MC2 |
122* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
123* | | | | |reset | | | | | | | | |
124* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
125* | | | | | | | | | | | | | |
126* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
127* | | | | | | | | | | MC1 | | | |
128* `-+------+------+------+------+------+------| |------+------+------+------+------+------+-'
129* | | | | | | | | | | | | | |
130* `-----------------------------------------' `-----------------------------------------'
131* ,-------------. ,-------------.
132* | | | | | |
133* ,------|------|------| |------+------+------.
134* | | | | | | | |
135* | MC3 | |------| |------| | |
136* | | | | | | | |
137* `--------------------' `--------------------'
138*/
139[_MC] = LAYOUT_all(
140 VRSN, _______, _______, _______, _______, _______, EMAIL1, _______, PWD4, PWD3, PWD2, PWD1,
141 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MC2,
142 _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______,
143 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
144 _______, _______, _______, _______, _______, _______, _______, _______, MC1, _______, _______, _______,
145 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
146 _______, _______, _______, _______,
147 _______, _______,
148 MC3, _______, _______, _______, _______, _______
149 )
150};
151
152bool process_record_user(uint16_t keycode, keyrecord_t *record) {
153 switch (keycode) {
154 case VRSN:
155 if (record->event.pressed) {
156 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
157 }
158 return false;
159 break;
160
161 case COMP_FR_QUOTES:
162 if (record->event.pressed) {
163 SEND_STRING(SS_TAP(X_RALT)"<<"SS_TAP(X_RALT)">>"SS_TAP(X_LEFT));
164 }
165 return false;
166 break;
167
168 case COMP_NBSP_EM_DASH:
169 if (record->event.pressed) {
170 SEND_STRING(SS_TAP(X_RALT)" "SS_TAP(X_RALT)"--- ");
171 }
172 return false;
173 break;
174
175 case COMP_NBSP:
176 if (record->event.pressed) {
177 SEND_STRING(SS_TAP(X_RALT)" ");
178 }
179 return false;
180 break;
181
182 case PWD1:
183 if (record->event.pressed) {
184 SEND_STRING("NakedLunch1991"SS_TAP(X_ENTER));
185 }
186 return false;
187 break;
188
189 case PWD2:
190 if (record->event.pressed) {
191 SEND_STRING("O94nx4sUWHc4akud"SS_TAP(X_ENTER));
192 }
193 return false;
194 break;
195
196 case PWD3:
197 if (record->event.pressed) {
198 SEND_STRING("Q123qQ123q"SS_TAP(X_ENTER));
199 }
200 return false;
201 break;
202
203 case PWD4:
204 if (record->event.pressed) {
205 SEND_STRING("EraserHead1976"SS_TAP(X_ENTER));
206 }
207 return false;
208 break;
209
210 case EMAIL1:
211 if (record->event.pressed) {
212 SEND_STRING("quartz64@gmail.com");
213 }
214 return false;
215 break;
216 }
217 return true;
218}
219
220bool encoder_update_user(uint8_t index, bool clockwise) {
221 if (index == 0) {
222 if (clockwise) {
223 tap_code(KC_PGDN);
224 } else {
225 tap_code(KC_PGUP);
226 }
227 }
228 return false;
229}
230
231layer_state_t layer_state_set_user(layer_state_t state) {
232 writePin(LED4_PIN, !layer_state_cmp(state, _MC));
233 return state;
234}
diff --git a/keyboards/kin80/keymaps/quartz64/rules.mk b/keyboards/kin80/keymaps/quartz64/rules.mk
deleted file mode 100644
index 5af1ba8536..0000000000
--- a/keyboards/kin80/keymaps/quartz64/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1ENCODER_ENABLE = yes
diff --git a/keyboards/kprepublic/jj50/keymaps/abstractkb/config.h b/keyboards/kprepublic/jj50/keymaps/abstractkb/config.h
deleted file mode 100644
index 9439a929e9..0000000000
--- a/keyboards/kprepublic/jj50/keymaps/abstractkb/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
1#pragma once
2
3#define RGBLIGHT_SLEEP \ No newline at end of file
diff --git a/keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c b/keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c
deleted file mode 100644
index f02f27005b..0000000000
--- a/keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c
+++ /dev/null
@@ -1,136 +0,0 @@
1/*
2Base Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
3Modified 2017 Andrew Novak <ndrw.nvk@gmail.com>
4Modified 2018 Wayne Jones (WarmCatUK) <waynekjones@gmail.com>
5Modified 2019 AbstractKB
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public LicensezZZ
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#include QMK_KEYBOARD_H
22
23enum layers {
24 _DEFLT,
25 _RAISE,
26 _LOWER,
27 _FN
28};
29
30enum custom_keycodes {
31 MYRGB_TG = SAFE_RANGE
32};
33
34bool rgbinit = true;
35bool rgbon = true;
36
37const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {1,5,5}; //only using the first one
38
39void keyboard_post_init_user(void) {
40 rgblight_enable_noeeprom();
41 led_set_user(host_keyboard_leds());
42}
43
44layer_state_t layer_state_set_user(layer_state_t state) {
45 switch (get_highest_layer(state)) {
46 case _RAISE:
47 rgblight_sethsv_noeeprom(170,255,255);
48 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
49 break;
50 case _LOWER:
51 rgblight_sethsv_noeeprom(0,255,255);
52 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
53 break;
54 case _FN:
55 rgblight_sethsv_noeeprom(0,255,255);
56 rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL);
57 break;
58 default: //_DEFLT
59 rgblight_sethsv_noeeprom(0,0,255);
60 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
61 break;
62 }
63
64 return state;
65}
66
67bool led_update_user(led_t led_state) {
68 if (led_state.caps_lock) {
69 rgblight_mode_noeeprom(RGBLIGHT_MODE_ALTERNATING);
70 } else {
71 layer_state_set_user(layer_state);
72 }
73 return false;
74}
75
76void myrgb_toggle(void) {
77 if (rgbon) {
78 rgblight_disable_noeeprom();
79 rgbon = false;
80 } else {
81 rgblight_enable_noeeprom();
82 layer_state_set_user(layer_state);
83 led_set_user(host_keyboard_leds());
84 rgbon = true;
85 }
86}
87
88bool process_record_user(uint16_t keycode, keyrecord_t *record) {
89 switch(keycode) {
90 case MYRGB_TG:
91 if (record->event.pressed) {
92 myrgb_toggle();
93 }
94 return false;
95 default:
96 return true;
97 }
98}
99
100const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
101
102 [_DEFLT] = LAYOUT(
103 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
104 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT,
105 KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
106 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
107 MO(_FN), KC_LCTL, KC_LGUI, KC_LALT, MO(_LOWER),KC_SPC,KC_SPC,MO(_RAISE),KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
108 ),
109
110
111 [_RAISE] = LAYOUT(
112 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
113 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
114 _______, _______, _______, _______, _______, _______, _______, _______, LCTL(LGUI(KC_LEFT)), LGUI(KC_L), LCTL(LGUI(KC_RGHT)), _______,
115 _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_CAPS, _______,
116 _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY
117 ),
118
119
120 [_LOWER] = LAYOUT(
121 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
122 _______, KC_GRV, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_BSLS, _______,
123 _______, _______, _______, KC_LBRC, KC_RBRC, S(KC_9),S(KC_0),S(KC_LBRC),S(KC_RBRC),_______,_______,_______,
124 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
125 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
126 ),
127
128
129 [_FN] = LAYOUT(
130 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
131 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
132 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
133 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
134 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MYRGB_TG
135 )
136};
diff --git a/keyboards/kprepublic/jj50/keymaps/abstractkb/readme.md b/keyboards/kprepublic/jj50/keymaps/abstractkb/readme.md
deleted file mode 100644
index 7ff7e0268a..0000000000
--- a/keyboards/kprepublic/jj50/keymaps/abstractkb/readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
1# My personal layout for the JJ50
2
3It is an approximation of a 60% layout with the alternate layers set up for programming,
4with brackets and parenthesis on the homerow
5Other things I changed were swapping around delete, backspace, and capslock around
6It also uses layer based rgb underglow, and the underglow flashes when capslock is enabled \ No newline at end of file
diff --git a/keyboards/lets_split/keymaps/henxing/Readme.md b/keyboards/lets_split/keymaps/henxing/Readme.md
deleted file mode 100644
index 231aa6adf3..0000000000
--- a/keyboards/lets_split/keymaps/henxing/Readme.md
+++ /dev/null
@@ -1,51 +0,0 @@
1# Let's Split the Atreus
2
3This keymap is a port of the Atreus keymap to the Let's Split keyboard, using a
4similar method of handling layer switches as the `default` keymap.
5
6
7# Layers
8
9The following tables are the layers as implemented.
10
11### Underscores in Layer
12
13Any underscore represents a key that is mapped to `KC_NO`, or no keypress. The
142x3 block in the middle is like this because the Atreus does not have any keys
15there. It has been left blank for the user to add her own special keypresses or
16macros that she finds useful to have on that particular layer.
17
18
19## `_QWERTY`
20
21```c
22/*
23 * q w e r t _ _ y u i o p
24 * a s d f g _ _ h j k l ;
25 * z x c v b _ _ n m , . /
26 * esc tab gui shift bksp ctrl alt space fn - ' enter
27 */
28 ```
29
30
31## `_LOWER`
32
33```c
34/*
35 * ! @ up { } _ _ pgup 7 8 9 *
36 * # left down right $ _ _ pgdn 4 5 6 +
37 * [ ] ( ) & _ _ ` 1 2 3 \
38 * lower insert gui shift bksp ctrl alt space fn . 0 =
39 */
40 ```
41
42## `_RAISE`
43
44```c
45/*
46 * insert home up end pgup _ _ up F7 F8 F9 F10
47 * del left down right pgdn _ _ down F4 F5 F6 F11
48 * _ volup _ _ reset _ _ F1 F2 F3 F12
49 * _ voldn super shift bksp ctrl alt space L0 prtsc scroll pause
50 */
51 ```
diff --git a/keyboards/lets_split/keymaps/henxing/config.h b/keyboards/lets_split/keymaps/henxing/config.h
deleted file mode 100644
index 470fc07854..0000000000
--- a/keyboards/lets_split/keymaps/henxing/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#ifndef CONFIG_USER_H
22#define CONFIG_USER_H
23
24#include "../../config.h"
25
26/* Select hand configuration */
27
28#define MASTER_LEFT
29// #define MASTER_RIGHT
30// #define EE_HANDS
31
32#endif
diff --git a/keyboards/lets_split/keymaps/henxing/keymap.c b/keyboards/lets_split/keymaps/henxing/keymap.c
deleted file mode 100644
index ea897a1fda..0000000000
--- a/keyboards/lets_split/keymaps/henxing/keymap.c
+++ /dev/null
@@ -1,109 +0,0 @@
1#include QMK_KEYBOARD_H
2
3
4extern keymap_config_t keymap_config;
5
6// Each layer gets a name for readability, which is then used in the keymap matrix below.
7// The underscores don't mean anything - you can have a layer called STUFF or any other name.
8// Layer names don't all need to be of the same length, obviously, and you can also skip them
9// entirely and just use numbers.
10#define _QWERTY 0
11#define _LOWER 1
12#define _RAISE 2
13
14enum custom_keycodes {
15 QWERTY = SAFE_RANGE,
16 LOWER,
17 RAISE
18};
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22 /*
23 * q w e r t _ _ y u i o p
24 * a s d f g _ _ h j k l ;
25 * z x c v b _ _ n m , . /
26 * esc tab gui shift bksp ctrl alt space fn - ' enter
27 */
28 [_QWERTY] = LAYOUT(
29 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P,
30 KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
31 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
32 KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, LOWER, KC_MINS, KC_QUOT, KC_ENT
33 ),
34
35 /*
36 * ! @ up { } _ _ pgup 7 8 9 *
37 * # left down right $ _ _ pgdn 4 5 6 +
38 * [ ] ( ) & _ _ ` 1 2 3 \
39 * lower insert gui shift bksp ctrl alt space fn . 0 =
40 */
41 [_LOWER] = LAYOUT(
42 KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR,
43 KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_NO, KC_NO, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS,
44 KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_NO, KC_NO, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS,
45 RAISE, KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL
46 ),
47
48 /*
49 * insert home up end pgup _ _ up F7 F8 F9 F10
50 * del left down right pgdn _ _ down F4 F5 F6 F11
51 * _ volup _ _ reset _ _ F1 F2 F3 F12
52 * _ voldn super shift bksp ctrl alt space L0 prtsc scroll pause
53 */
54 [_RAISE] = LAYOUT(
55 KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10,
56 KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_NO, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11,
57 KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, QK_BOOT, KC_NO, KC_NO, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12,
58 KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, QWERTY, KC_PSCR, KC_SCRL, KC_PAUS
59 )
60
61};
62
63#ifdef AUDIO_ENABLE
64float tone_qwerty[][2] = SONG(QWERTY_SOUND);
65float tone_dvorak[][2] = SONG(DVORAK_SOUND);
66float tone_colemak[][2] = SONG(COLEMAK_SOUND);
67#endif
68
69void persistent_default_layer_set(uint16_t default_layer) {
70 eeconfig_update_default_layer(default_layer);
71 default_layer_set(default_layer);
72}
73
74bool process_record_user(uint16_t keycode, keyrecord_t *record) {
75
76 // The value to return
77 bool return_value = false;
78
79 switch (keycode) {
80 case QWERTY:
81 if (record->event.pressed) {
82#ifdef AUDIO_ENABLE
83 PLAY_SONG(tone_qwerty);
84#endif
85 persistent_default_layer_set(1UL<<_QWERTY);
86 }
87 break;
88
89 case LOWER:
90 if (record->event.pressed) {
91 layer_on(_LOWER);
92 } else {
93 layer_off(_LOWER);
94 }
95 break;
96
97 case RAISE:
98 persistent_default_layer_set(1UL<<_RAISE);
99 break;
100 default:
101
102 // If the keycode is not handled by any of the other cases, we
103 // should return true
104 return_value = true;
105 break;
106 }
107
108 return return_value;
109}
diff --git a/keyboards/lets_split/keymaps/mekberg/README.md b/keyboards/lets_split/keymaps/mekberg/README.md
deleted file mode 100644
index a24a573561..0000000000
--- a/keyboards/lets_split/keymaps/mekberg/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
1# Let's Mekberg!
2
3This is my take on a Swedish 40% layout in a split format. The priority is to have the most highly used keys opposite the modifier to make chording simpler. In other words, if the layer modifier is on the left half, the most used keys should be bound on the right half.
4
5## Layers
6
7### Default
8
9The default layer has normal alpha layout with the addition of Swedish letters, causing Enter to move down one key and backspace to take the place of the right space. The enter key also doubles as Shift when held.
10
112nd row left modifier has been bound to both Ctrl and Tab with modtap (hold for Ctrl, tap for Tab).
12
13Delete is available on all non-default layers, positioned on the upper right corner key.
14
15### Raise
16
17The raised layer has all the symbols and special characters predefined. As much as possible, there should be no need to use additional modifiers.
18
19Arrow keys have been disabled on this layer to avoid accidental misclicks when pressing the Raise key.
20
21#### macOS / Windows variants
22
23Because macOS and Windows expect quite different keycodes to produce the same special characters (for example '{' or '|'), there are two different layers, one for each OS. To toggle either macOS (default) and Windows layouts within the RAISE layer, press SPECIAL + W for Windows or SPECIAL + M for macOS.
24
25### Lower
26
27The lower layer focuses on numbers, with a numpad-like layout on the right and F-keys in a homerow-centric layout on the left.
28
29### Special
30
31The special layer has Reset and EEP Reset keys on the left half, along with media and volume controls. On the right half it has movement keys starting in the IJKL cluster. Additionally, custom macOS Sleep and Lock Screen keys can be found on the right half on this layer.
32
33## Configuration
34
35### PERMISSIVE_HOLD
36
37This option is used because otherwise modtap functions would fail to trigger. This increases reliability for me.
38
39### EE_HANDS
40
41Prepared for EEPROM settings and different keymaps depending on USB port connected, but default master side remains left regardless.
42
43## Building
44
45Clean the build environment:
46
47```shell
48make clean
49```
50
51Build and flash left side:
52
53```shell
54make lets_split/rev2:mekberg:avrdude-split-left
55```
56
57Then do the same for the right side:
58
59```shell
60make lets_split/rev2:mekberg:avrdude-split-right
61```
diff --git a/keyboards/lets_split/keymaps/mekberg/config.h b/keyboards/lets_split/keymaps/mekberg/config.h
deleted file mode 100644
index 41ce1b1566..0000000000
--- a/keyboards/lets_split/keymaps/mekberg/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
23// Define some configuration for modtap behavior
24// #define TAPPING_TERM 150
25#define PERMISSIVE_HOLD
26
27/* Select hand configuration */
28//#define MASTER_LEFT
29// #define MASTER_RIGHT
30#define EE_HANDS
diff --git a/keyboards/lets_split/keymaps/mekberg/keymap.c b/keyboards/lets_split/keymaps/mekberg/keymap.c
deleted file mode 100644
index e8cfa03888..0000000000
--- a/keyboards/lets_split/keymaps/mekberg/keymap.c
+++ /dev/null
@@ -1,228 +0,0 @@
1#include QMK_KEYBOARD_H
2
3/*
4Let's Split physical layout
51u == 8chars
6* == Homing keys
7 LEFT RIGHT
8 ,-----------------------------------------------------. ,-----------------------------------------------------.
9 | | | | | | | | | | | | | |
10 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
11 | | | | | * | | | | * | | | | |
12 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
13 | | | | | | | | | | | | | |
14 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
15 | | | | | | | | | | | | | |
16 `-----------------------------------------------------´ `-----------------------------------------------------'
17*/
18
19// Layers
20enum layer_names {
21 _DEFAULT,
22 _DEFAULT_MAC,
23 _DEFAULT_WIN,
24 _RAISE_MAC,
25 _RAISE_WIN,
26 _LOWER,
27 _SPECIAL,
28};
29
30#define TO_MAC TO(_DEFAULT)
31#define TO_WIN TO(_DEFAULT_WIN)
32
33#define RAISE_M MO(_RAISE_MAC)
34#define RAISE_W MO(_RAISE_WIN)
35#define LOWER MO(_LOWER)
36#define SPECIAL MO(_SPECIAL)
37
38// Modifiers
39#define SFTENT SC_SENT // Enter => Shift when held
40#define CTLTAB LCTL_T(KC_TAB) // Tab => Ctrl when held
41
42// ISO keycodes with Swedish layout names
43#define SE_PLUS KC_MINS // +
44#define SE_QSTM S(SE_PLUS) // Question mark
45#define SE_TCK KC_EQL // Fronttick (´)
46#define SE_BTCK S(SE_TCK) // Backtick (`)
47#define SE_UML KC_RBRC // Umlaut (¨)
48#define SE_TAK S(SE_UML) // Caret (^)
49#define SE_TILD RALT(SE_UML) // Tilde (~)
50#define SE_QUT KC_NUHS // Singlequote (')
51#define SE_DQUT S(KC_2) // Doublequote (")
52#define SE_AST S(SE_QUT) // Asterisk
53#define SE_AUML KC_QUOT // Ä
54#define SE_ARNG KC_LBRC // Å
55#define SE_OUML KC_SCLN // Ö
56#define SE_LT KC_NUBS // <
57#define SE_GT S(SE_LT) // >
58#define SE_DASH KC_SLSH // -
59#define SE_USCR S(SE_DASH) // _
60#define SE_AT RALT(KC_2) // @
61#define SE_EXCL S(KC_1) // !
62#define SE_HASH S(KC_3) // #
63#define SE_USD RALT(KC_4) // $
64#define SE_PCNT S(KC_5) // %
65#define SE_AMP S(KC_6) // &
66#define SE_EQLS S(KC_0) // =
67
68// Apple-specific layout keys
69#define AP_SLS S(KC_7) // /
70#define AP_PIPE LALT(KC_7) // |
71#define AP_BSLS A(AP_SLS) // Backslash
72#define AP_LCBR A(AP_LPAR) // {
73#define AP_RCBR A(AP_RPAR) // }
74#define AP_LBR A(KC_8) // [
75#define AP_RBR A(KC_9) // ]
76#define AP_LPAR S(KC_8) // (
77#define AP_RPAR S(KC_9) // )
78
79// Windows-specific layout keys
80#define MS_SLS S(KC_7) // /
81#define MS_PIPE RALT(SE_LT) // |
82#define MS_BSLS RALT(SE_PLUS) // Backslash
83#define MS_LCBR RALT(KC_7) // {
84#define MS_RCBR RALT(KC_0) // }
85#define MS_LBR RALT(KC_8) // [
86#define MS_RBR RALT(KC_9) // ]
87#define MS_LPAR S(KC_8) // (
88#define MS_RPAR S(KC_9) // )
89
90// My common shortcuts
91#define MY_PREV KC_MRWD // Media: Previous
92#define MY_NEXT KC_MFFD // Media: Next
93#define MY_PLAY KC_MPLY // Media: Play/Pause
94#define MY_LOCK C(A(KC_L)) // Mac: Lock
95
96
97const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
98/*
99DEFAULT
100 Main layout for alphas and modifiers
101 Tab => Ctrl when held
102 Esc => MOVEMENT layer when held
103 Enter => Shift when held
104 LEFT RIGHT
105 ,-----------------------------------------------------. ,-----------------------------------------------------.
106 | Esc | Q | W | E | R | T | | Y | U | I | O | P | Å |
107 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
108 |Ctrl/Tab| A | S | D | F *| G | | H |* J | K | L | Ö | Ä |
109 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
110 | Shift | Z | X | C | V | B | | N | M | , | . | - | Enter |
111 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
112 | SPECIAL| Ctrl | Alt | Cmd | LOWER | Space | | Backspc| RAISE | Left | Down | Up | Right |
113 `-----------------------------------------------------´ `-----------------------------------------------------'
114*/
115[_DEFAULT] = LAYOUT_ortho_4x12(
116 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_ARNG,
117 CTLTAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SE_OUML, SE_AUML,
118 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SE_DASH, SFTENT,
119 SPECIAL, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE_M, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
120),
121
122/*
123DEFAULT - Windows
124 LEFT RIGHT
125 ,-----------------------------------------------------. ,-----------------------------------------------------.
126 | | | | | | | | | | | | | |
127 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
128 | | | | | * | | | | * | | | | |
129 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
130 | | | | | | | | | | | | | |
131 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
132 | | | | | | | | | RAISE | | | | |
133 `-----------------------------------------------------´ `-----------------------------------------------------'
134*/
135[_DEFAULT_WIN] = LAYOUT_ortho_4x12(
136 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
137 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
138 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
139 _______, _______, _______, _______, _______, _______, _______, RAISE_W, _______, _______, _______, _______
140),
141
142/*
143RAISE - Mac
144 This layer focuses on symbols and special characters.
145
146 LEFT RIGHT
147 ,-----------------------------------------------------. ,-----------------------------------------------------.
148 | | ! | ? | { | } | & | | ^ | | | ` | ´ | | Del |
149 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
150 | | # | $ | ( | ) *| " | | ~ |* / | \ | ¨ | | |
151 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
152 | | @ | % | [ | ] | ' | | | < | > | | | |
153 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
154 | | | | | | | | |XXXXXXXX| | | | |
155 `-----------------------------------------------------´ `-----------------------------------------------------'
156*/
157[_RAISE_MAC] = LAYOUT_ortho_4x12(
158 _______, SE_EXCL, SE_QSTM, AP_LCBR, AP_RCBR, SE_AMP, SE_TAK, AP_PIPE, SE_BTCK, SE_TCK, _______, KC_DEL,
159 _______, SE_HASH, SE_USD, AP_LPAR, AP_RPAR, SE_DQUT, SE_TILD, AP_SLS, AP_BSLS, SE_UML, _______, _______,
160 _______, SE_AT, SE_PCNT, AP_LBR, AP_RBR, SE_QUT, _______, SE_LT, SE_GT, _______, _______, _______,
161 _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
162),
163
164/*
165RAISE - Windows
166 This layer focuses on symbols and special characters.
167
168 LEFT RIGHT
169 ,-----------------------------------------------------. ,-----------------------------------------------------.
170 | | ! | ? | { | } | & | | ^ | | | ` | ´ | | Del |
171 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
172 | | # | $ | ( | ) *| " | | ~ |* / | \ | ¨ | | |
173 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
174 | | @ | % | [ | ] | ' | | | < | > | | | |
175 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
176 | | | | | | | | |XXXXXXXX| | | | |
177 `-----------------------------------------------------´ `-----------------------------------------------------'
178*/
179[_RAISE_WIN] = LAYOUT_ortho_4x12(
180 _______, SE_EXCL, SE_QSTM, MS_LCBR, MS_RCBR, SE_AMP, SE_TAK, MS_PIPE, SE_BTCK, SE_TCK, _______, KC_DEL,
181 _______, SE_HASH, SE_USD, MS_LPAR, MS_RPAR, SE_DQUT, SE_TILD, MS_SLS, MS_BSLS, SE_UML, _______, _______,
182 _______, SE_AT, SE_PCNT, MS_LBR, MS_RBR, SE_QUT, _______, SE_LT, SE_GT, _______, _______, _______,
183 _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
184),
185
186/*
187LOWER
188 This layer focuses on numbers and math.
189 LEFT RIGHT
190 ,-----------------------------------------------------. ,-----------------------------------------------------.
191 | | F1 | F2 | F3 | F4 | | | * | 7 | 8 | 9 | - | Del |
192 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
193 | | F5 | F6 | F7 | F8 *| | | / |* 4 | 5 | 6 | + | |
194 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
195 | | F9 | F10 | F11 | F12 | | | / | 1 | 2 | 3 | = | |
196 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
197 | | | | |XXXXXXXX| | | | | 0 | . | | |
198 `-----------------------------------------------------´ `-----------------------------------------------------'
199*/
200[_LOWER] = LAYOUT_ortho_4x12(
201 _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, SE_AST, KC_7, KC_8, KC_9, SE_DASH, KC_DEL,
202 _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, AP_SLS, KC_4, KC_5, KC_6, SE_PLUS, _______,
203 _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, MS_SLS, KC_1, KC_2, KC_3, SE_EQLS, _______,
204 _______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, _______, _______
205),
206
207/*
208SPECIAL
209 This layer focuses on special functions, media controls and movement keys.
210 LEFT RIGHT
211 ,-----------------------------------------------------. ,-----------------------------------------------------.
212 | Reset | | WIN | VolUp | | | | Ins | Home | Up | End | PgUp | Del |
213 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
214 |EEPReset| | Prev | VolDn | Next *| | | |* Left | Down | Right | PgDn | |
215 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
216 | | | | Mute | | | | Lock | MAC | | | | |
217 |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
218 |XXXXXXXX| | | | | Play | | | | | | | Sleep |
219 `-----------------------------------------------------´ `-----------------------------------------------------'
220*/
221[_SPECIAL] = LAYOUT_ortho_4x12(
222 QK_BOOT, _______, TO_WIN, KC_VOLU, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_DEL,
223 EE_CLR, _______, MY_PREV, KC_VOLD, MY_NEXT, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______,
224 _______, _______, _______, KC_MUTE, _______, _______, MY_LOCK, TO_MAC, _______, _______, _______, _______,
225 _______, _______, _______, _______, _______, MY_PLAY, _______, _______, _______, _______, _______, KC_SLEP
226)
227
228};
diff --git a/keyboards/littlealby/mute/keymaps/zoom/keymap.c b/keyboards/littlealby/mute/keymaps/zoom/keymap.c
deleted file mode 100644
index c6cf9836e3..0000000000
--- a/keyboards/littlealby/mute/keymaps/zoom/keymap.c
+++ /dev/null
@@ -1,23 +0,0 @@
1/* Copyright 2019 albybarber
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#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT(
21 SGUI(KC_A)
22 )
23};
diff --git a/keyboards/littlealby/mute/keymaps/zoom/readme.md b/keyboards/littlealby/mute/keymaps/zoom/readme.md
deleted file mode 100644
index 9ff489505f..0000000000
--- a/keyboards/littlealby/mute/keymaps/zoom/readme.md
+++ /dev/null
@@ -1,8 +0,0 @@
1# Default keymap for arduino micro for Zoom
2
3Default for Mute is to use ```PB5 / digital pin 9 / analog pin 9```
4
5Key commands that are emulated for Zoom is `CTL + SHIFT + W`
6
7## Example pinout
8![Pinout](https://assets.codepen.io/18215/littleAlby_bb.png)
diff --git a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/animation_frames.h b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/animation_frames.h
deleted file mode 100644
index ac1e8dee32..0000000000
--- a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/animation_frames.h
+++ /dev/null
@@ -1,404 +0,0 @@
1/* Copyright 2021 Jay Greco
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#pragma once
17#ifdef OLED_ENABLE
18
19// Enable OLED bitmpa compression selectively.
20#define USE_OLED_BITMAP_COMPRESSION
21
22#define NUM_IDLE_FRAMES 5
23#define NUM_TAP_FRAMES 2
24#define NUM_OLED_BYTES 512
25
26#ifdef USE_OLED_BITMAP_COMPRESSION
27
28static const char PROGMEM idle_1_block_map[] = { //IDLE_1 and IDLE_2
29 0x80, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
30 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xff, 0x19, 0x00, 0xfc, 0xf1, 0x1d, 0x00, 0x38, 0x00, 0xf3, 0x0f,
31 0xe0, 0x83, 0x0d, 0x0f, 0x00, 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18,
32 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
33};
34
35static const char PROGMEM idle_2_block_map[] = { //IDLE_3
36 0x80, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
37 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xfe, 0x19, 0x00, 0xfe, 0xe3, 0x1f, 0x00, 0x7c, 0x00, 0xf6, 0x0f,
38 0xc0, 0x07, 0x1b, 0x0f, 0x00, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18,
39 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
40};
41
42static const char PROGMEM idle_3_block_map[] = { //IDLE_4
43 0x80, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
44 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xff, 0x19, 0x00, 0xff, 0xf1, 0x1d, 0x00, 0x3e, 0x00, 0xf3, 0x0f,
45 0xe0, 0x83, 0x0d, 0x0f, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18,
46 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
47};
48
49static const char PROGMEM idle_4_block_map[] = { //IDLE_5
50 0x80, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
51 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xff, 0x19, 0x00, 0xfe, 0xf1, 0x1d, 0x00, 0x3c, 0x00, 0xf3, 0x0f,
52 0xe0, 0x83, 0x0d, 0x0f, 0x00, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18,
53 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
54};
55
56static const char PROGMEM tap_1_block_map[] = { //TAP_1
57 0x80, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x80, 0x7f, 0xfc, 0x00,
58 0xf8, 0xff, 0xff, 0x03, 0xf8, 0xff, 0x19, 0x00, 0xff, 0xb1, 0x1d, 0x00, 0x3e, 0x00, 0x73, 0x00,
59 0xe0, 0x83, 0xff, 0x01, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18,
60 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
61};
62
63static const char PROGMEM tap_2_block_map[] = { //TAP_2
64 0x80, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
65 0x00, 0xfc, 0x01, 0x00, 0x00, 0xff, 0x07, 0x00, 0xff, 0xb1, 0x1d, 0x00, 0x3e, 0x00, 0xf3, 0x8f,
66 0xe0, 0x83, 0x01, 0x3f, 0x80, 0xff, 0xff, 0x7b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18,
67 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
68};
69
70static const char PROGMEM idle_1_block_list[] = { //IDLE_1 and IDLE_2
71 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0, 0x01, 0x1e, 0xe0, 0x80, 0x80, 0x80,
72 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1, 0x01, 0xc0, 0x3f, 0xe0, 0x10, 0x08, 0x08, 0x04,
73 0x02, 0x01, 0x18, 0x18, 0x03, 0x43, 0xc0, 0x03, 0x7c, 0x80, 0x03, 0x7c, 0x80, 0x13, 0x0c, 0x07,
74 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x07, 0x18, 0x20, 0x40, 0x80, 0x03, 0x03, 0x1e, 0x1e,
75 0x80, 0x60, 0x18, 0x07, 0x1f, 0x20, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x10, 0x20, 0x40, 0x40,
76 0x40, 0x80, 0x80, 0x9f, 0xe0, 0x01, 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c
77};
78
79static const char PROGMEM idle_2_block_list[] = { //IDLE_3
80 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0, 0x01, 0x1e, 0xe0, 0x80, 0x80, 0x80,
81 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1, 0xc0, 0x3f, 0xc0, 0x20, 0x10, 0x10, 0x08, 0x08,
82 0x04, 0x02, 0x01, 0x18, 0x18, 0x03, 0x43, 0xc0, 0x03, 0x7c, 0x80, 0x01, 0x02, 0x04, 0x78, 0x80,
83 0x13, 0x0c, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x07, 0x18, 0x20, 0x40, 0x80, 0x03,
84 0x03, 0x1e, 0x1e, 0x80, 0x60, 0x18, 0x07, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20,
85 0x10, 0x10, 0x20, 0x60, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x01, 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0,
86 0x03, 0x7c
87};
88
89static const char PROGMEM idle_3_block_list[] = { //IDLE_4
90 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0, 0x01, 0x1e, 0xe0, 0x80, 0x80, 0x80,
91 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1, 0x01, 0xc0, 0x3f, 0xc0, 0x20, 0x10, 0x10, 0x08,
92 0x08, 0x04, 0x02, 0x01, 0x18, 0x18, 0x03, 0x43, 0xc0, 0x03, 0x7c, 0x80, 0x01, 0x02, 0x04, 0x78,
93 0x80, 0x13, 0x0c, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x07, 0x18, 0x20, 0x40, 0x80,
94 0x03, 0x03, 0x1e, 0x1e, 0x80, 0x60, 0x18, 0x07, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20, 0x20,
95 0x20, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x01, 0x3e, 0xc0, 0x07, 0xf8,
96 0x1f, 0xe0, 0x03, 0x7c
97};
98
99static const char PROGMEM idle_4_block_list[] = { //IDLE_5
100 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0, 0x01, 0x1e, 0xe0, 0x80, 0x80, 0x80,
101 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1, 0x01, 0xc0, 0x3f, 0xe0, 0x10, 0x08, 0x08, 0x08,
102 0x04, 0x02, 0x01, 0x18, 0x18, 0x03, 0x43, 0xc0, 0x03, 0x7c, 0x80, 0x01, 0x06, 0x78, 0x80, 0x13,
103 0x0c, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x07, 0x18, 0x20, 0x40, 0x80, 0x03, 0x03,
104 0x1e, 0x1e, 0x80, 0x60, 0x18, 0x07, 0x18, 0x27, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x10, 0x10,
105 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x01, 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03,
106 0x7c
107};
108
109static const char PROGMEM tap_1_block_list[] = { //TAP_1
110 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x81, 0x1e, 0xe0, 0xe0,
111 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0xc3, 0x87, 0x8f, 0x1f, 0x1f, 0x1c,
112 0x01, 0x1e, 0xe0, 0x80, 0xbf, 0xbf, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03,
113 0x03, 0x83, 0x43, 0x21, 0x10, 0x08, 0x04, 0x02, 0x01, 0x01, 0xc0, 0x3f, 0xc0, 0x20, 0x10, 0x10,
114 0x08, 0x08, 0x04, 0x02, 0x01, 0x18, 0x18, 0x40, 0xc0, 0x03, 0x7c, 0x80, 0x01, 0x02, 0x04, 0x78,
115 0x80, 0x13, 0x0c, 0x07, 0x38, 0xc0, 0x07, 0x18, 0x20, 0x40, 0x80, 0x73, 0xab, 0x08, 0x94, 0x64,
116 0x64, 0x04, 0x0f, 0x70, 0x80, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x10, 0x11,
117 0x21, 0x22, 0x42, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x01, 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03,
118 0x7c
119};
120
121static const char PROGMEM tap_2_block_list[] = { //TAP_2
122 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0, 0x80, 0x80, 0x80, 0x80, 0x81, 0x1e,
123 0xe0, 0x9e, 0x61, 0x24, 0x51, 0x4c, 0x8c, 0x80, 0x81, 0x01, 0x0e, 0xf0, 0xc0, 0x20, 0x10, 0x10,
124 0x08, 0x08, 0x04, 0x02, 0x01, 0x18, 0x18, 0x40, 0xc0, 0x03, 0x7c, 0x80, 0x01, 0x02, 0x04, 0x78,
125 0x80, 0x13, 0x0c, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0xf0, 0x07, 0x18, 0x20, 0x40,
126 0x80, 0x03, 0x03, 0x80, 0x60, 0x18, 0x07, 0x80, 0x80, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20,
127 0x20, 0x20, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x7f, 0x7f, 0x7f, 0x7e,
128 0x01, 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c
129};
130
131// idle_1 and idle_2 are identical, so share them and save some space
132const char* idle_frames[NUM_IDLE_FRAMES] = {
133 idle_1_block_list,
134 idle_1_block_list,
135 idle_2_block_list,
136 idle_3_block_list,
137 idle_4_block_list
138};
139
140const char* tap_frames[NUM_TAP_FRAMES] = {
141 tap_1_block_list,
142 tap_2_block_list
143};
144
145// idle_1 and idle_2 are identical, so save some space
146const char* idle_block_map[NUM_IDLE_FRAMES] = {
147 idle_1_block_map,
148 idle_1_block_map,
149 idle_2_block_map,
150 idle_3_block_map,
151 idle_4_block_map
152};
153
154const char* tap_block_map[NUM_TAP_FRAMES] = {
155 tap_1_block_map,
156 tap_2_block_map
157};
158
159#else
160
161static const char PROGMEM idle_frames[NUM_IDLE_FRAMES][NUM_OLED_BYTES] = {
162 {
163 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
164 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
165 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
166 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
167 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00,
168 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
169 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00,
170 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
171 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e,
172 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
173 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1,
174 0x01, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
175 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x03, 0x43,
176 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
177 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00,
179 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
180 0x03, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00,
181 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0x40, 0x40, 0x20, 0x20, 0x10,
182 0x10, 0x10, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
183 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
184 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00,
185 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
186 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00,
187 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
188 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00,
189 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
190 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c,
191 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
192 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
193 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
194 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
195 },
196 {
197 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
198 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
199 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
200 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
201 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00,
202 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
203 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00,
204 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
205 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e,
206 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1,
208 0x01, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
209 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x03, 0x43,
210 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
211 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
212 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00,
213 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
214 0x03, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00,
215 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0x40, 0x40, 0x20, 0x20, 0x10,
216 0x10, 0x10, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
217 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
218 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00,
219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00,
221 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
222 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00,
223 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
224 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c,
225 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
227 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
228 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
229 },
230 {
231 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
232 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
233 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
234 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
235 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00,
236 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
237 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00,
238 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
239 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e,
240 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
241 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2,
242 0xc1, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
243 0x00, 0xc0, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x03,
244 0x43, 0xc0, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
245 0x00, 0x00, 0x01, 0x02, 0x04, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
246 0x00, 0x13, 0x0c, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00,
247 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
248 0x03, 0x03, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00,
249 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20, 0x20,
250 0x20, 0x10, 0x10, 0x20, 0x60, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
251 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
252 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00,
253 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
254 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00,
255 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
256 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00,
257 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
258 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c,
259 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
260 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
261 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
262 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
263 },
264 {
265 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
266 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
267 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
268 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
269 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00,
270 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
271 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00,
272 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
273 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e,
274 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
275 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1,
276 0x01, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
277 0xc0, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x03, 0x43,
278 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
279 0x00, 0x01, 0x02, 0x04, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
280 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00,
281 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
282 0x03, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00,
283 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20,
284 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
285 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
286 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00,
287 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
288 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00,
289 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
290 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00,
291 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
292 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c,
293 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
294 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
295 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
296 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
297 },
298 {
299 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
300 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
301 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
302 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00,
304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
305 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00,
306 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
307 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e,
308 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
309 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1,
310 0x01, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
311 0x00, 0xe0, 0x10, 0x08, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x03, 0x43,
312 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
313 0x00, 0x00, 0x01, 0x06, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
314 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00,
315 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
316 0x03, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00,
317 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x27, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20,
318 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
319 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
320 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00,
321 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
322 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00,
323 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00,
325 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
326 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c,
327 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
328 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
329 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
331 }
332 };
333static const char PROGMEM tap_frames[NUM_TAP_FRAMES][NUM_OLED_BYTES] = {
334 {
335 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
336 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
338 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
339 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00,
340 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
341 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x81, 0x1e, 0xe0, 0x00,
342 0x00, 0x00, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
343 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0xc3, 0x87, 0x8f, 0x1f, 0x1f, 0x1c, 0x01, 0x1e,
344 0xe0, 0x80, 0xbf, 0xbf, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
345 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x83, 0x43, 0x21, 0x10, 0x08, 0x04, 0x02, 0x01,
346 0x01, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
347 0xc0, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x40,
348 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
349 0x00, 0x01, 0x02, 0x04, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
350 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
351 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73,
352 0xab, 0x08, 0x94, 0x64, 0x64, 0x04, 0x0f, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
353 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20,
354 0x10, 0x11, 0x21, 0x22, 0x42, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
355 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
356 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00,
357 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
358 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00,
359 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
360 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00,
361 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
362 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c,
363 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
364 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
365 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
366 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
367 },
368 {
369 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
370 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
371 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
372 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
373 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00,
374 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
375 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00,
376 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
377 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x81, 0x1e,
378 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
379 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x61, 0x24, 0x51, 0x4c, 0x8c, 0x80, 0x81,
380 0x01, 0x0e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
381 0xc0, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x40,
382 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
383 0x00, 0x01, 0x02, 0x04, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
384 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0xf0,
385 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
386 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x80, 0x80, 0x00, 0x00,
387 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20,
388 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x00, 0x7f, 0x7f, 0x7f, 0x7e, 0x00,
389 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
390 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00,
391 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
392 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00,
393 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
394 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00,
395 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
396 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c,
397 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
398 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
399 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
400 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
401 },
402 };
403#endif //USE_BITMAP_COMPRESSION
404#endif //OLED_ENABLE
diff --git a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c
deleted file mode 100644
index 33652005cb..0000000000
--- a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c
+++ /dev/null
@@ -1,263 +0,0 @@
1/* Copyright 2021 Jonathan Law, Jay Greco
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 * Original: j-inc's kyria keymap
17 */
18#include QMK_KEYBOARD_H
19#include "animation_frames.h"
20
21enum layer_names {
22 _BASE,
23 _VIA1,
24 _VIA2,
25 _VIA3
26};
27
28#define KC_DISC_MUTE KC_F23
29#define KC_DISC_DEAF KC_F24
30
31enum custom_keycodes {
32 PROG = QK_KB_0,
33 DISC_MUTE,
34 DISC_DEAF,
35 SUPER_ALT_TAB,
36 _NUM_CUST_KCS,
37};
38
39// Macro variables
40bool is_alt_tab_active = false;
41uint16_t alt_tab_timer = 0;
42bool muted = false;
43bool deafened = false;
44
45const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 [_BASE] = LAYOUT_all(
47 QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
48 KC_F13, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
49 KC_F14, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
50 KC_F15, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
51 KC_F16, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_VIA1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
52 ),
53
54 [_VIA1] = LAYOUT_all(
55 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_END,
56 RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
59 _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT
60 ),
61
62 [_VIA2] = LAYOUT_all(
63 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
64 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
65 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
66 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
67 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
68 ),
69
70 [_VIA3] = LAYOUT_all(
71 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
76 ),
77
78};
79
80bool encoder_update_user(uint8_t index, bool clockwise) {
81 if (clockwise) {
82 tap_code(KC_VOLU);
83 } else {
84 tap_code(KC_VOLD);
85 }
86 return true;
87}
88
89#ifdef OLED_ENABLE
90#define IDLE_FRAME_DURATION 200 // Idle animation iteration rate in ms
91
92oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
93
94uint32_t anim_timer = 0;
95uint32_t anim_sleep = 0;
96uint8_t current_idle_frame = 0;
97
98bool tap_anim = false;
99bool tap_anim_toggle = false;
100
101
102// Decompress and write a precompressed bitmap frame to the OLED.
103// Documentation and python compression script available at:
104// https://github.com/nullbitsco/squeez-o
105#ifdef USE_OLED_BITMAP_COMPRESSION
106static void oled_write_compressed_P(const char* input_block_map, const char* input_block_list) {
107 uint16_t block_index = 0;
108 for (uint16_t i=0; i<NUM_OLED_BYTES; i++) {
109 uint8_t bit = i%8;
110 uint8_t map_index = i/8;
111 uint8_t _block_map = (uint8_t)pgm_read_byte_near(input_block_map + map_index);
112 uint8_t nonzero_byte = (_block_map & (1 << bit));
113 if (nonzero_byte) {
114 const char data = (const char)pgm_read_byte_near(input_block_list + block_index++);
115 oled_write_raw_byte(data, i);
116 } else {
117 const char data = (const char)0x00;
118 oled_write_raw_byte(data, i);
119 }
120 }
121}
122#endif
123
124static void render_anim(void) {
125 // Idle animation
126 void animation_phase(void) {
127 if (!tap_anim) {
128 current_idle_frame = (current_idle_frame + 1) % NUM_IDLE_FRAMES;
129 uint8_t idx = abs((NUM_IDLE_FRAMES - 1) - current_idle_frame);
130 #ifdef USE_OLED_BITMAP_COMPRESSION
131 oled_write_compressed_P(idle_block_map[idx], idle_frames[idx]);
132 #else
133 oled_write_raw_P(idle_frames[idx], NUM_OLED_BYTES);
134 #endif
135 }
136 }
137
138 // Idle behaviour
139 if (get_current_wpm() != 000) { // prevent sleep
140 oled_on();
141 if (timer_elapsed32(anim_timer) > IDLE_FRAME_DURATION) {
142 anim_timer = timer_read32();
143 animation_phase();
144 }
145 anim_sleep = timer_read32();
146 } else { // Turn off screen when timer threshold elapsed or reset time since last input
147 if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
148 oled_off();
149 } else {
150 if (timer_elapsed32(anim_timer) > IDLE_FRAME_DURATION) {
151 anim_timer = timer_read32();
152 animation_phase();
153 }
154 }
155 }
156}
157
158bool oled_task_user(void) {
159 render_anim();
160 oled_set_cursor(0, 14);
161
162 uint8_t n = get_current_wpm();
163 char wpm_counter[6];
164 wpm_counter[5] = '\0';
165 wpm_counter[4] = '0' + n % 10;
166 wpm_counter[3] = '0' + (n /= 10) % 10;
167 wpm_counter[2] = '0' + n / 10 ;
168 wpm_counter[1] = '0';
169 wpm_counter[0] = '>';
170 oled_write_ln(wpm_counter, false);
171
172 return false;
173}
174#endif
175
176// Animate tap
177bool process_record_user(uint16_t keycode, keyrecord_t *record) {
178 #ifdef OLED_ENABLE
179 // Check if non-mod
180 if ((keycode >= KC_A && keycode <= KC_0) || (keycode >= KC_TAB && keycode <= KC_SLASH)) {
181 if (record->event.pressed) {
182 // Display tap frames
183 tap_anim_toggle = !tap_anim_toggle;
184 #ifdef USE_OLED_BITMAP_COMPRESSION
185 oled_write_compressed_P(tap_block_map[tap_anim_toggle], tap_frames[tap_anim_toggle]);
186 #else
187 oled_write_raw_P(tap_frames[tap_anim_toggle], NUM_OLED_BYTES);
188 #endif
189 }
190 }
191 #endif
192
193 switch(keycode) {
194 case PROG:
195 if (record->event.pressed) {
196 rgblight_disable_noeeprom();
197 #ifdef OLED_ENABLE
198 oled_off();
199 #endif
200 bootloader_jump();
201 }
202 break;
203
204 case DISC_MUTE:
205 if (record->event.pressed) {
206 tap_code(KC_DISC_MUTE);
207 if (!rgblight_is_enabled()) break;
208
209 if (muted) {
210 rgblight_enable_noeeprom();
211 } else {
212 rgblight_timer_disable();
213 uint8_t val = rgblight_get_val();
214 rgblight_sethsv_range(255, 255, val, 0, 1);
215 }
216 muted = !muted;
217 }
218 break;
219
220 case DISC_DEAF:
221 if (record->event.pressed) {
222 tap_code(KC_DISC_DEAF);
223 if (!rgblight_is_enabled()) break;
224
225 if (deafened) {
226 rgblight_enable_noeeprom();
227 } else {
228 rgblight_timer_disable();
229 uint8_t val = rgblight_get_val();
230 rgblight_sethsv_range(255, 255, val, 0, RGBLED_NUM-1);
231 }
232 deafened = !deafened;
233 }
234 break;
235
236 case SUPER_ALT_TAB:
237 if (record->event.pressed) {
238 if (!is_alt_tab_active) {
239 is_alt_tab_active = true;
240 register_code(KC_LALT);
241 }
242 alt_tab_timer = timer_read();
243 register_code(KC_TAB);
244 } else {
245 unregister_code(KC_TAB);
246 }
247 break;
248
249 default:
250 break;
251 }
252
253 return true;
254}
255
256void matrix_scan_user(void) {
257 if (is_alt_tab_active) {
258 if (timer_elapsed(alt_tab_timer) > 1000) {
259 unregister_code(KC_LALT);
260 is_alt_tab_active = false;
261 }
262 }
263}
diff --git a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/readme.md b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/readme.md
deleted file mode 100644
index 81286d1afe..0000000000
--- a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
1# The Bongo Cat WPM Layout!
2
3![Oled Preview](http://i.imgur.com/e2QHJnn.png)
4
5If you're looking for the Bongo Cat/WPM Counter firmware for your Nibble, this is it! The OLED occupies the bottom two left macro key spots, so there isn't anything assigned. However, if you've manually wired the oled to a different position, you can assign keys to those locations. This uses the default keymap layout so everything is where you expect it to be.
6
7Now optimized to fit VIA support! This uses the [squeez-o](https://github.com/nullbitsco/squeez-o) tool to compress the animation frames, which reduces their program memory usage by a large amount.
8
9![Layout Image](http://i.imgur.com/5Q6BzAe.png) \ No newline at end of file
diff --git a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk
deleted file mode 100644
index 1909c7ef9a..0000000000
--- a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
1OLED_ENABLE = yes
2WPM_ENABLE = yes
3VIA_ENABLE = yes
diff --git a/keyboards/primekb/prime_m/keymaps/numpad/keymap.c b/keyboards/primekb/prime_m/keymaps/numpad/keymap.c
deleted file mode 100644
index 80c572db1b..0000000000
--- a/keyboards/primekb/prime_m/keymaps/numpad/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
1/* Copyright 2018 Jumail Mundekkat
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#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_numpad_5x6(
20 KC_ESC, KC_LPRN, KC_RPRN, KC_PSLS, KC_PAST, KC_PMNS,
21 KC_A, KC_B, KC_P7, KC_P8, KC_P9,
22 KC_C, KC_D, KC_P4, KC_P5, KC_P6, KC_PPLS,
23 KC_E, KC_F, KC_P1, KC_P2, KC_P3,
24 KC_LCTL, TG(1), KC_P0, KC_PDOT, KC_PENT
25 ),
26 [1] = LAYOUT_numpad_5x6(
27 QK_BOOT, KC_LPRN, KC_RPRN, KC_PSLS, KC_PAST, KC_PMNS,
28 KC_A, KC_B, KC_HOME, KC_UP, KC_PGUP,
29 KC_C, KC_D, KC_LEFT, KC_NO, KC_RGHT, KC_PPLS,
30 KC_E, KC_F, KC_END, KC_DOWN, KC_PGDN,
31 KC_LCTL, _______, KC_INS, KC_DEL, KC_PENT
32 ),
33};
diff --git a/keyboards/primekb/prime_m/keymaps/numpad/readme.md b/keyboards/primekb/prime_m/keymaps/numpad/readme.md
deleted file mode 100644
index cd97558315..0000000000
--- a/keyboards/primekb/prime_m/keymaps/numpad/readme.md
+++ /dev/null
@@ -1 +0,0 @@
1# The numpad keymap for Prime_M \ No newline at end of file
diff --git a/keyboards/rart/rartpad/keymaps/numpad/keymap.c b/keyboards/rart/rartpad/keymaps/numpad/keymap.c
deleted file mode 100644
index e3d8384dab..0000000000
--- a/keyboards/rart/rartpad/keymaps/numpad/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
1/*
2Copyright 2020 Alabahuy
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*/
17#include QMK_KEYBOARD_H
18
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22 [0] = LAYOUT_numpad_5x4(
23 KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
24 KC_P7, KC_P8, KC_P9,
25 KC_P4, KC_P5, KC_P6, KC_PPLS,
26 KC_P1, KC_P2, KC_P3,
27 KC_P0, MO(1), KC_PENT
28 ),
29 [1] = LAYOUT_numpad_5x4(
30 KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
31 KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_TRNS, KC_TRNS, KC_TRNS,
34 KC_TRNS, KC_TRNS, KC_PDOT
35 )
36};
37
38bool encoder_update_user(uint8_t index, bool clockwise) {
39 if (index == 0) { /* First encoder */
40 if (clockwise) {
41 tap_code(KC_VOLU);
42 } else {
43 tap_code(KC_VOLD);
44 }
45 } else if (index == 1) { /* Second encoder */
46 if (clockwise) {
47 tap_code(KC_PGUP);
48 } else {
49 tap_code(KC_PGDN);
50 }
51 }
52 return true;
53}
diff --git a/keyboards/sck/osa/keymaps/splitbs/keymap.c b/keyboards/sck/osa/keymaps/splitbs/keymap.c
deleted file mode 100644
index 367e084443..0000000000
--- a/keyboards/sck/osa/keymaps/splitbs/keymap.c
+++ /dev/null
@@ -1,59 +0,0 @@
1/* Copyright 2019 jrfhoutx
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#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Keymap BASE: (Base Layer) Default Layer
20 * .----.,----------------------------------------------------------------------.
21 * | M1 ||Esc| 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =| ~ | \ |
22 * |----||----------------------------------------------------------------------|
23 * | M2 ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] |BkSpc|
24 * |----||----------------------------------------------------------------------|
25 * | M3 ||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
26 * `----'|----------------------------------------------------------------------|
27 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift |
28 * |----------------------------------------------------------------------|
29 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
30 * `----------------------------------------------------------------------'
31 */
32[0] = LAYOUT_split_backspace( /* OSA Base */
33 KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS,
34 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
35 KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
36 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
37 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL
38 ),
39/* Keymap BASE: (Base Layer) Default Layer
40 * .----.,----------------------------------------------------------------------.
41 * | M1 ||Esc| 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =| ~ | \ |
42 * |----||----------------------------------------------------------------------|
43 * | M2 ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] |BkSpc|
44 * |----||----------------------------------------------------------------------|
45 * | M3 ||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
46 * `----'|----------------------------------------------------------------------|
47 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift |
48 * |----------------------------------------------------------------------|
49 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
50 * `----------------------------------------------------------------------'
51 */
52[1] = LAYOUT_split_backspace( /* OSA Layer 1 */
53 KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS,
54 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
55 KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
56 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
57 KC_LCTL, KC_LALT, KC_SPC, _______, KC_SPC, KC_RALT, KC_RCTL
58 ),
59};
diff --git a/keyboards/sck/osa/keymaps/splitbs/readme.md b/keyboards/sck/osa/keymaps/splitbs/readme.md
deleted file mode 100644
index 33fb31b336..0000000000
--- a/keyboards/sck/osa/keymaps/splitbs/readme.md
+++ /dev/null
@@ -1 +0,0 @@
1# The split backspace keymap for osa
diff --git a/keyboards/skmt/15k/keymaps/qwert/keymap.c b/keyboards/skmt/15k/keymaps/qwert/keymap.c
deleted file mode 100644
index 16464c93bc..0000000000
--- a/keyboards/skmt/15k/keymaps/qwert/keymap.c
+++ /dev/null
@@ -1,25 +0,0 @@
1// Copyright 2022 Jimmy Lye (@satorusaka)
2// SPDX-License-Identifier: GPL-2.0-or-later
3#include QMK_KEYBOARD_H
4
5const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
6 /*
7 * ┌───┬───┬───┬───┬─────────────────────┐
8 * │ Q │ W │ E │ R │ BACKSPACE (LAYER 1) │
9 * ├───┼───┼───┼───┼─────────────────────┤
10 * │ A │ S │ D │ F │ ENTER │
11 * ├───┼───┼───┼───┼─────────────────────┤
12 * │ Z │ X │ C │ V │ SPACE │
13 * └───┴───┴───┴───┴─────────────────────┘
14 */
15 [0] = LAYOUT_default(
16 KC_Q, KC_W, KC_E, KC_R, LT(1, KC_BSPC),
17 KC_A, KC_S, KC_D, KC_F, KC_ENT,
18 KC_Z, KC_X, KC_C, KC_V, KC_SPC
19 ),
20 [1] = LAYOUT_default(
21 RGB_TOG,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
22 RGB_MODE_FORWARD,RGB_HUI,RGB_SAI,RGB_VAI,RGB_SPI,
23 RGB_MODE_REVERSE,RGB_HUD,RGB_SAD,RGB_VAD,RGB_SPD
24 )
25};
diff --git a/keyboards/splitkb/kyria/keymaps/kejadlen/config.h b/keyboards/splitkb/kyria/keymaps/kejadlen/config.h
deleted file mode 100644
index 0e2fd449da..0000000000
--- a/keyboards/splitkb/kyria/keymaps/kejadlen/config.h
+++ /dev/null
@@ -1,56 +0,0 @@
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_ENABLE
20 #define OLED_DISPLAY_128X64
21#endif
22
23#ifdef RGBLIGHT_ENABLE
24#define RGBLIGHT_EFFECT_BREATHING
25#define RGBLIGHT_EFFECT_RAINBOW_MOOD
26#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
27#define RGBLIGHT_EFFECT_SNAKE
28#define RGBLIGHT_EFFECT_KNIGHT
29#define RGBLIGHT_EFFECT_CHRISTMAS
30#define RGBLIGHT_EFFECT_STATIC_GRADIENT
31#define RGBLIGHT_EFFECT_RGB_TEST
32#define RGBLIGHT_EFFECT_ALTERNATING
33#define RGBLIGHT_EFFECT_TWINKLE
34 #define RGBLIGHT_HUE_STEP 8
35 #define RGBLIGHT_SAT_STEP 8
36 #define RGBLIGHT_VAL_STEP 8
37 #define RGBLIGHT_SLEEP
38#endif
39
40// EC11K encoders have a different resolution than other EC11 encoders.
41// When using the default resolution of 4, if you notice your encoder skipping
42// every other tick, lower the resolution to 2.
43#define ENCODER_RESOLUTION 2
44
45// The Leader key allows to flexibly assign macros to key sequences.
46#define LEADER_PER_KEY_TIMING
47#define LEADER_TIMEOUT 350
48
49#define TAPPING_TERM 200
50
51// Allows to use either side as the master. Look at the documentation for info:
52// https://docs.qmk.fm/#/config_options?id=setting-handedness
53#define EE_HANDS
54
55// Allows media codes to properly register in macros and rotary encoder code
56#define TAP_CODE_DELAY 10
diff --git a/keyboards/splitkb/kyria/keymaps/kejadlen/keymap.c b/keyboards/splitkb/kyria/keymaps/kejadlen/keymap.c
deleted file mode 100644
index 9de9be5552..0000000000
--- a/keyboards/splitkb/kyria/keymaps/kejadlen/keymap.c
+++ /dev/null
@@ -1,63 +0,0 @@
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#include QMK_KEYBOARD_H
17
18
19enum layers {
20 NOR = 0,
21 NAV,
22 SYM,
23 ETC,
24};
25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [NOR] = LAYOUT(
28 KC_NO, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_BSLS,
29 KC_LSFT, KC_A, KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, KC_QUOT,
30 KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(NAV), MO(ETC), MO(ETC), MO(NAV), KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
31 LCAG_T(KC_NO), KC_LALT, GUI_T(KC_TAB), LT(SYM,KC_BSPC), CTL_T(KC_ESC), SFT_T(KC_ENT), LT(SYM,KC_SPC), GUI_T(KC_TAB), KC_LALT, RCAG_T(KC_NO)
32 ),
33
34 [NAV] = LAYOUT(
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
36 KC_TRNS, KC_LSFT, KC_LCTL, KC_LOPT, KC_LCMD, KC_TRNS, KC_VOLU, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
39 ),
40
41 [SYM] = LAYOUT(
42 KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS, KC_TRNS,
43 KC_AMPR, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BSLS, KC_MINS, KC_4, KC_5, KC_6, KC_QUOT, KC_TRNS,
44 KC_GRV, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_ASTR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_1, KC_2, KC_3, KC_DQUO, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_TRNS
46 ),
47
48 [ETC] = LAYOUT(
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_TRNS, KC_TRNS,
50 KC_TRNS, KC_LSFT, KC_LCTL, KC_LOPT, KC_LCMD, KC_TRNS, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS,
51 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_TRNS, KC_TRNS,
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
53 ),
54
55 /*
56 [__TEMPLATE__] = LAYOUT(
57 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
58 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
59 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
60 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
61 ),
62 */
63};
diff --git a/keyboards/splitkb/kyria/keymaps/kejadlen/rules.mk b/keyboards/splitkb/kyria/keymaps/kejadlen/rules.mk
deleted file mode 100644
index e11b7e936d..0000000000
--- a/keyboards/splitkb/kyria/keymaps/kejadlen/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
1OLED_ENABLE = no # Enables the use of OLED displays
2ENCODER_ENABLE = no # Enables the use of one or more encoders
3RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
4LEADER_ENABLE = no # Enable the Leader Key feature
5MOUSEKEY_ENABLE = no
diff --git a/keyboards/tada68/keymaps/mekberg/config.h b/keyboards/tada68/keymaps/mekberg/config.h
deleted file mode 100644
index d29180a5af..0000000000
--- a/keyboards/tada68/keymaps/mekberg/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
1#pragma once
2
3// Define some configuration for modtap behavior
4// #define TAPPING_TERM 150
5#define PERMISSIVE_HOLD
diff --git a/keyboards/tada68/keymaps/mekberg/keymap.c b/keyboards/tada68/keymaps/mekberg/keymap.c
deleted file mode 100755
index 663adb67c8..0000000000
--- a/keyboards/tada68/keymaps/mekberg/keymap.c
+++ /dev/null
@@ -1,100 +0,0 @@
1#include QMK_KEYBOARD_H
2
3// Fillers to make layering more clear
4// The default names have been swapped to make the keymap more readable.
5#define XXXXXX KC_TRNS
6#define ______ KC_NO
7
8// ISO keycodes with Swedish layout names
9#define SE_PLUS KC_MINS // +
10#define SE_TCK KC_EQL // Fronttick (´)
11#define SE_DASH KC_SLSH // -
12#define SE_UML KC_RBRC // Umlaut (¨)
13#define SE_QUT KC_NUHS // Singlequote (')
14#define SE_AUML KC_QUOT // Ä
15#define SE_ARNG KC_LBRC // Å
16#define SE_OUML KC_SCLN // Ö
17#define SE_LT KC_NUBS // <
18
19// My common shortcuts
20#define MY_PREV KC_MRWD // Media: Previous
21#define MY_NEXT KC_MFFD // Media: Next
22#define MY_PLAY KC_MPLY // Media: Play/Pause
23#define MY_LOCK C(A(KC_L)) // Mac: Lock
24
25
26/*
27TADA68 ISO physical layout
281u == 8chars
29,----------------------------------------------------------------------------------------------------------------------------------------------.
30| | | | | | | | | | | | | | 2u | |
31|----------------------------------------------------------------------------------------------------------------------------------------------|
32| 1,5u | | | | | | | | | | | | | 1,5u | |
33|--------------------------------------------------------------------------------------------------------------------------| |--------|
34| 1,75u | | | | | | | | | | | | | 1,25u | |
35|----------------------------------------------------------------------------------------------------------------------------------------------|
36| 1,25u | | | | | | | | | | | | 1,75u | | |
37|----------------------------------------------------------------------------------------------------------------------------------------------|
38| 1,25u | 1,25u | 1,25u | | | | | | | |
39`----------------------------------------------------------------------------------------------------------------------------------------------'
40*/
41
42
43const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
44 [0] = LAYOUT_iso(
45// ,----------------------------------------------------------------------------------------------------------------------------------------------.
46// | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | + | ´ | Backspace | Home |
47 QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS, SE_TCK, KC_BSPC, KC_HOME,
48// |----------------------------------------------------------------------------------------------------------------------------------------------|
49// | Tab | Q | W | E | R | T | Y | U | I | O | P | Å | ¨ | | End |
50 LT(2,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_ARNG, SE_UML, KC_END,
51// |--------------------------------------------------------------------------------------------------------------------------| |--------|
52// | LCtrl | A | S | D | F | G | H | J | K | L | Ö | Ä | ' | Enter | PgUp |
53 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SE_OUML, SE_AUML, SE_QUT, KC_ENT, KC_PGUP,
54// |----------------------------------------------------------------------------------------------------------------------------------------------|
55// | LShift | <> | Z | X | C | V | B | N | M | , | . | - | RShift | Up | PgDn |
56 KC_LSFT, SE_LT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SE_DASH, KC_RSFT, KC_UP, KC_PGDN,
57// |----------------------------------------------------------------------------------------------------------------------------------------------|
58// | LCtrl | LAlt | Command | Space |Command | RAlt | Fn | Left | Down | Right |
59 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_LGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
60// `----------------------------------------------------------------------------------------------------------------------------------------------'
61 ),
62
63 [1] = LAYOUT_iso(
64// ,----------------------------------------------------------------------------------------------------------------------------------------------.
65// | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete | Ins |
66 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS,
67// |----------------------------------------------------------------------------------------------------------------------------------------------|
68// | | | Up | | | | | | | | | | | | Mute |
69 ______, ______, KC_UP, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MUTE,
70// |--------------------------------------------------------------------------------------------------------------------------| Lock |--------|
71// | Caps Lock | Left | Down | Right | BLight | | | | | | | | | Screen | VolUp |
72 KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, BL_BRTG, ______, ______, ______, ______, ______, ______, ______, ______, MY_LOCK, KC_VOLU,
73// |----------------------------------------------------------------------------------------------------------------------------------------------|
74// | | | | | Bl- |BLtoggle | Bl+ | | | | | | | Stop | VolDn |
75 ______, ______, ______, ______, BL_DOWN, BL_TOGG, BL_UP, ______, ______, ______, ______, ______, ______, KC_MSTP, KC_VOLD,
76// |----------------------------------------------------------------------------------------------------------------------------------------------|
77// | | | | Sleep | | | | Prev | Play | Fwd |
78 ______, ______, ______, KC_SLEP, ______, ______, XXXXXX, MY_PREV, MY_PLAY, MY_NEXT
79// `----------------------------------------------------------------------------------------------------------------------------------------------'
80 ),
81
82 [2] = LAYOUT_iso(
83// ,----------------------------------------------------------------------------------------------------------------------------------------------.
84// | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete | |
85 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, ______,
86// |----------------------------------------------------------------------------------------------------------------------------------------------|
87// | | | Up | | | | | | | | | | | | Mute |
88 XXXXXX, ______, KC_UP, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MUTE,
89// |--------------------------------------------------------------------------------------------------------------------------| |--------|
90// | | Left | Down | Right | | | Left | Down | Up | Right | | | | | VolUp |
91 ______, KC_LEFT, KC_DOWN, KC_RGHT, ______, ______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, ______, ______, ______, ______, KC_VOLU,
92// |----------------------------------------------------------------------------------------------------------------------------------------------|
93// | | | | | | | | | | | | | | Stop | VolDn |
94 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MSTP, KC_VOLD,
95// |----------------------------------------------------------------------------------------------------------------------------------------------|
96// | | | | | | | | Prev | Play | Fwd |
97 ______, ______, ______, ______, ______, ______, ______, MY_PREV, MY_PLAY, MY_NEXT
98// `----------------------------------------------------------------------------------------------------------------------------------------------'
99 )
100};
diff --git a/keyboards/tada68/keymaps/mekberg/readme.md b/keyboards/tada68/keymaps/mekberg/readme.md
deleted file mode 100644
index be578e9572..0000000000
--- a/keyboards/tada68/keymaps/mekberg/readme.md
+++ /dev/null
@@ -1,58 +0,0 @@
1# Mekberg's TADA68 layout
2
3More or less a standard Swedish ISO layout, with Mac-centric key positions. All keys not assigned on non-default layers are set to KC_NO
4as I don't want them to pass through when activating a layer.
5
6# Layers
7
8### Base Layer
9
10```
11,----------------------------------------------------------------------------------------------------------------------------------------------.
12| Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | + | ´ | Backspace | Home |
13|----------------------------------------------------------------------------------------------------------------------------------------------|
14| Tab | Q | W | E | R | T | Y | U | I | O | P | Å | ¨ | | End |
15|--------------------------------------------------------------------------------------------------------------------------| |--------|
16| LCtrl | A | S | D | F | G | H | J | K | L | Ö | Ä | ' | Enter | PgUp |
17|----------------------------------------------------------------------------------------------------------------------------------------------|
18| LShift | <> | Z | X | C | V | B | N | M | , | . | - | RShift | Up | PgDn |
19|----------------------------------------------------------------------------------------------------------------------------------------------|
20| LCtrl | LAlt | Command | Space |Command | RAlt | Fn | Left | Down | Right |
21`----------------------------------------------------------------------------------------------------------------------------------------------'
22```
23
24### Fn Layer (layer 1)
25
26```
27,----------------------------------------------------------------------------------------------------------------------------------------------.
28| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete | Ins |
29|----------------------------------------------------------------------------------------------------------------------------------------------|
30| | | Up | | | | | | | | | | | | Mute |
31|--------------------------------------------------------------------------------------------------------------------------| |--------|
32| Caps Lock | Left | Down | Right | BLight | | | | | | | | | | VolUp |
33|----------------------------------------------------------------------------------------------------------------------------------------------|
34| | | | | Bl- |BLtoggle | Bl+ | | | | | | | Stop | VolDn |
35|----------------------------------------------------------------------------------------------------------------------------------------------|
36| | | | | | | | Prev | Play | Fwd |
37`----------------------------------------------------------------------------------------------------------------------------------------------'
38```
39
40Mainly used for media keys and F-keys, as well as a nav cluster on WASD. Also has backlight keys, that are rarely used.
41
42### Modtap Tab Layer (layer 2)
43
44```
45,----------------------------------------------------------------------------------------------------------------------------------------------.
46| Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete | |
47|----------------------------------------------------------------------------------------------------------------------------------------------|
48| | | Up | | | | | | | | | | | | Mute |
49|--------------------------------------------------------------------------------------------------------------------------| |--------|
50| | Left | Down | Right | | | Left | Down | Up | Right | | | | | VolUp |
51|----------------------------------------------------------------------------------------------------------------------------------------------|
52| | | | | | | | | | | | | | Stop | VolDn |
53|----------------------------------------------------------------------------------------------------------------------------------------------|
54| | | | | | | | Prev | Play | Fwd |
55`----------------------------------------------------------------------------------------------------------------------------------------------'
56```
57
58Tab acts as Tab when tapped, and as Layer 2 when held. Used for HJKL nav keys and Delete.
diff --git a/keyboards/tada68/keymaps/mekberg/rules.mk b/keyboards/tada68/keymaps/mekberg/rules.mk
deleted file mode 100644
index dbaa9045e7..0000000000
--- a/keyboards/tada68/keymaps/mekberg/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5CONSOLE_ENABLE = no # Console for debug(+400)
diff --git a/keyboards/vitamins_included/keymaps/numpad/config.h b/keyboards/vitamins_included/keymaps/numpad/config.h
deleted file mode 100644
index 95dd8ec464..0000000000
--- a/keyboards/vitamins_included/keymaps/numpad/config.h
+++ /dev/null
@@ -1,42 +0,0 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
23/* Use I2C or Serial. Default is Serial */
24// #define USE_I2C
25
26/* Select hand configuration */
27// Defaults:
28// Rev1: EE_HANDS
29// Rev2: SPLIT_HAND_PIN B4
30
31// You can override the defaults (rev1 doesn't support SPLIT_HAND_PIN)
32//#define EE_HANDS
33//#define MASTER_LEFT
34//#define MASTER_RIGHT
35
36
37#ifdef AUDIO_ENABLE
38 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
39 SONG(DVORAK_SOUND), \
40 SONG(COLEMAK_SOUND) \
41 }
42#endif
diff --git a/keyboards/vitamins_included/keymaps/numpad/keymap.c b/keyboards/vitamins_included/keymaps/numpad/keymap.c
deleted file mode 100644
index 4108259df8..0000000000
--- a/keyboards/vitamins_included/keymaps/numpad/keymap.c
+++ /dev/null
@@ -1,75 +0,0 @@
1#include QMK_KEYBOARD_H
2
3extern keymap_config_t keymap_config;
4
5// 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.
7// Layer names don't all need to be of the same length, obviously, and you can also skip them
8// entirely and just use numbers.
9#define _NUMPAD 0
10#define _ADJUST 1
11
12enum custom_keycodes {
13 NUMPAD = SAFE_RANGE,
14 ADJUST
15};
16
17const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18
19/* Numpad
20 * ,-----------------------------------------------------------------------------------.
21 * | 0 | 1 | 4 | 7 | nlck | <-- | 0 | 1 | 4 | 7 | nlck | <-- |
22 * |------+------+------+------+------+-------------+------+------+------+------+------|
23 * | adj | 2 | 5 | 8 | / | \/ | , | 2 | 5 | 8 | / | \/ |
24 * |------+------+------+------+------+------|------+------+------+------+------+------|
25 * | . | 3 | 6 | 9 | * | /\ | . | 3 | 6 | 9 | * | /\ |
26 * |------+------+------+------+------+------+------+------+------+------+------+------|
27 * | Enter| tab | - | + |bckspc| --> | Enter| tab | - | + |bckspc| --> |
28 * `-----------------------------------------------------------------------------------'
29 */
30[_NUMPAD] = LAYOUT_ortho_4x12(
31 KC_KP_0, KC_KP_1, KC_KP_4, KC_KP_7, KC_NUM_LOCK, KC_LEFT, KC_KP_0, KC_KP_1, KC_KP_4, KC_KP_7, KC_NUM_LOCK, KC_LEFT,
32 ADJUST, KC_KP_2, KC_KP_5, KC_KP_8, KC_KP_SLASH, KC_DOWN, ADJUST, KC_KP_2, KC_KP_5, KC_KP_8, KC_KP_SLASH, KC_DOWN,
33 KC_KP_DOT, KC_KP_3, KC_KP_6, KC_KP_9, KC_KP_ASTERISK, KC_UP, KC_KP_DOT, KC_KP_3, KC_KP_6, KC_KP_9, KC_KP_ASTERISK, KC_UP,
34 KC_KP_ENTER, KC_TAB, KC_KP_MINUS, KC_KP_PLUS, KC_BSPC, KC_RIGHT, KC_KP_ENTER, KC_TAB, KC_KP_MINUS, KC_KP_PLUS, KC_BSPC, KC_RIGHT
35),
36
37/* Adjust (Lower + Raise)
38 * ,-----------------------------------------------------------------------------------.
39 * | | | | | | | | | | | | Del |
40 * |------+------+------+------+------+-------------+------+------+------+------+------|
41 * | | | |Aud on|Audoff|AGnorm|AGswap| | | | | |
42 * |------+------+------+------+------+------|------+------+------+------+------+------|
43 * | | | | | | | | | | | | |
44 * |------+------+------+------+------+------+------+------+------+------+------+------|
45 * | | | | | | QK_BOOT QK_BOOT | | | | |RGBMOD|
46 * `-----------------------------------------------------------------------------------'
47 */
48[_ADJUST] = LAYOUT_ortho_4x12(
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
50 _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
52 _______, _______, _______, _______, _______, QK_BOOT, QK_BOOT, _______, _______, _______, _______, RGB_MOD
53)
54
55
56};
57
58void persistent_default_layer_set(uint16_t default_layer) {
59 eeconfig_update_default_layer(default_layer);
60 default_layer_set(default_layer);
61}
62
63bool process_record_user(uint16_t keycode, keyrecord_t *record) {
64 switch (keycode) {
65 case ADJUST:
66 if (record->event.pressed) {
67 layer_on(_ADJUST);
68 } else {
69 layer_off(_ADJUST);
70 }
71 return false;
72 break;
73 }
74 return true;
75}
diff --git a/keyboards/wilba_tech/zeal60/keymaps/crd/config.h b/keyboards/wilba_tech/zeal60/keymaps/crd/config.h
deleted file mode 100644
index a70f9da7e6..0000000000
--- a/keyboards/wilba_tech/zeal60/keymaps/crd/config.h
+++ /dev/null
@@ -1,29 +0,0 @@
1#pragma once
2
3/* enable/disable LEDs based on layout */
4#undef RGB_BACKLIGHT_USE_SPLIT_BACKSPACE
5#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0
6
7#undef RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT
8#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
9
10#undef RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT
11#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1
12
13#undef RGB_BACKLIGHT_USE_7U_SPACEBAR
14#define RGB_BACKLIGHT_USE_7U_SPACEBAR 1
15
16#undef RGB_BACKLIGHT_USE_ISO_ENTER
17#define RGB_BACKLIGHT_USE_ISO_ENTER 0
18
19#undef RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS
20#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
21
22#undef RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED
23#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 1
24
25#undef RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT
26#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 3
27
28#undef RGB_BACKLIGHT_EFFECT
29#define RGB_BACKLIGHT_EFFECT 0 \ No newline at end of file
diff --git a/keyboards/wilba_tech/zeal60/keymaps/crd/keymap.c b/keyboards/wilba_tech/zeal60/keymaps/crd/keymap.c
deleted file mode 100644
index dfbe6a972e..0000000000
--- a/keyboards/wilba_tech/zeal60/keymaps/crd/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
1// tsangan layout for Zeal60
2#include QMK_KEYBOARD_H
3
4enum keyboard_layers {
5 _BL = 0, // Base Layer
6 _FL, // Function Layer
7 _CL // Control Layer
8};
9
10// Custom #defined keycodes (shorter macros for readability)
11#define KC_CTES CTL_T(KC_ESC)
12#define KC_RSUP RSFT_T(KC_UP)
13#define KC_RGLT RCMD_T(KC_LEFT)
14#define KC_RADN LT(_CL, KC_DOWN)
15#define KC_RCRT RCTL_T(KC_RIGHT)
16
17const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 [_BL] = LAYOUT_60_ansi_split_bs_rshift(
19 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, XXXXXXX,
20 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
21 KC_CTES, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
22 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSUP, MO(_FL),
23 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, XXXXXXX, KC_RGLT, KC_RADN, KC_RCRT
24 ),
25 [_FL] = LAYOUT_60_ansi_split_bs_rshift(
26 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
27 _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, _______,
28 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SCRL, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______
31 ),
32 [_CL] = LAYOUT_60_ansi_split_bs_rshift(
33 _______, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, _______, _______, _______, _______, BR_DEC, BR_INC, _______, _______,
34 _______, _______, _______, S1_DEC, S1_INC, S2_DEC, S2_INC, _______, _______, _______, _______, ES_DEC, ES_INC, QK_BOOT,
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______
38 ),
39};
diff --git a/keyboards/zj68/keymaps/splitbs/keymap.c b/keyboards/zj68/keymaps/splitbs/keymap.c
deleted file mode 100644
index 24c8b35dcb..0000000000
--- a/keyboards/zj68/keymaps/splitbs/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
1/* Copyright 2019 Collin Diekvoss <cdiekvoss@gmail.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#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19
20 LAYOUT_65_ansi_split_bs(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_INS,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL,
23 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
25 MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
26 ),
27 LAYOUT_65_ansi_split_bs(
28 QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
29 KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
33 ),
34};
diff --git a/keyboards/zj68/keymaps/splitbs/readme.md b/keyboards/zj68/keymaps/splitbs/readme.md
deleted file mode 100644
index 9047475eeb..0000000000
--- a/keyboards/zj68/keymaps/splitbs/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
1# ZJ68 W/ Split Backspace
2
3The plate that comes with the kit from Drop only allows one layout, but the pcb supports having a split backspace, so by widening the plate where the stabilizers are meant to go, you can fit the two switches in, if you want to go back to a single backspace later, you can still use pcb mount stabilizers. \ No newline at end of file