aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Dockerfile9
-rw-r--r--keyboards/amj60/amj60.h15
-rw-r--r--keyboards/amj60/keymaps/maximized/keymap.c61
-rw-r--r--keyboards/ergodox/keymaps/coderkun_neo2/keymap.c53
-rw-r--r--keyboards/ergodox/keymaps/coderkun_neo2/readme.md122
-rw-r--r--keyboards/handwired/promethium/color.h15
-rw-r--r--keyboards/handwired/promethium/config.h44
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/config.h1
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/keymap.c157
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/rgbtheme.h1
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_carbon.h36
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_default.h36
-rw-r--r--keyboards/handwired/promethium/matrix.c4
-rw-r--r--keyboards/handwired/promethium/promethium.c6
-rw-r--r--keyboards/hhkb/keymaps/cinaeco/Makefile23
-rw-r--r--keyboards/hhkb/keymaps/cinaeco/README.md23
-rw-r--r--keyboards/hhkb/keymaps/cinaeco/config.h20
-rw-r--r--keyboards/hhkb/keymaps/cinaeco/keymap.c186
-rw-r--r--keyboards/hhkb/keymaps/smt/keymap.c176
-rw-r--r--keyboards/hhkb/rules.mk2
-rw-r--r--keyboards/miuni32/config.h1
-rw-r--r--keyboards/miuni32/keymaps/adam-lee/Makefile21
-rw-r--r--keyboards/miuni32/keymaps/adam-lee/config.h8
-rw-r--r--keyboards/miuni32/keymaps/adam-lee/keymap.c119
-rw-r--r--keyboards/miuni32/keymaps/adam-lee/readme.md1
-rw-r--r--keyboards/miuni32/keymaps/default/keymap.c104
-rw-r--r--keyboards/miuni32/keymaps/ht_156/Makefile21
-rw-r--r--keyboards/miuni32/keymaps/ht_156/config.h8
-rw-r--r--keyboards/miuni32/keymaps/ht_156/keymap.c181
-rw-r--r--keyboards/miuni32/keymaps/ht_156/readme.md1
-rw-r--r--keyboards/miuni32/miuni32.h4
-rw-r--r--keyboards/planck/keymaps/dshields/Makefile11
-rw-r--r--keyboards/planck/keymaps/dshields/config.h23
-rw-r--r--keyboards/planck/keymaps/dshields/keymap.c98
-rw-r--r--keyboards/planck/keymaps/lae3/keymap.c20
-rw-r--r--keyboards/planck/keymaps/lae3/readme.md112
-rw-r--r--keyboards/planck/keymaps/vifon/keymap.c3
-rw-r--r--keyboards/ps2avrGB/keymaps/default/keymap.c16
-rw-r--r--keyboards/ps2avrGB/ps2avrGB.h18
-rw-r--r--keyboards/s60-x/default/rules.mk1
-rw-r--r--keyboards/s60-x/rgb/rules.mk56
-rw-r--r--keyboards/s60-x/s60-x.c1
-rw-r--r--keyboards/s60-x/s60-x_precompiled.zipbin276106 -> 0 bytes
-rw-r--r--keyboards/s60_x/Makefile (renamed from keyboards/s60-x/Makefile)0
-rw-r--r--keyboards/s60_x/config.h (renamed from keyboards/s60-x/config.h)13
-rw-r--r--keyboards/s60_x/default/Makefile (renamed from keyboards/s60-x/default/Makefile)0
-rw-r--r--keyboards/s60_x/default/config.h (renamed from keyboards/s60-x/default/config.h)0
-rw-r--r--keyboards/s60_x/default/default.c (renamed from keyboards/s60-x/default/default.c)0
-rw-r--r--keyboards/s60_x/default/default.h (renamed from keyboards/s60-x/default/default.h)0
-rw-r--r--keyboards/s60_x/default/rules.mk9
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/Makefile (renamed from keyboards/s60-x/keymaps/ansi_qwertz/Makefile)0
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/config.h (renamed from keyboards/s60-x/keymaps/ansi_qwertz/config.h)0
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png (renamed from keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png)bin54748 -> 54748 bytes
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg (renamed from keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg)0
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg (renamed from keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg)0
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.png (renamed from keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.png)bin54041 -> 54041 bytes
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.svg (renamed from keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg)0
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/docs/base_layer.PNG (renamed from keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNG)bin29411 -> 29411 bytes
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/docs/function_layer.PNG (renamed from keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNG)bin25567 -> 25567 bytes
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/docs/gaming_layer.PNG (renamed from keyboards/s60-x/keymaps/ansi_qwertz/docs/gaming_layer.PNG)bin17895 -> 17895 bytes
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/keymap.c (renamed from keyboards/s60-x/keymaps/ansi_qwertz/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/ansi_qwertz/readme.md (renamed from keyboards/s60-x/keymaps/ansi_qwertz/readme.md)0
-rw-r--r--keyboards/s60_x/keymaps/custom/keymap.c (renamed from keyboards/s60-x/keymaps/custom/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/custom/readme.md (renamed from keyboards/s60-x/keymaps/custom/readme.md)0
-rw-r--r--keyboards/s60_x/keymaps/dbroqua/keymap.c (renamed from keyboards/s60-x/keymaps/dbroqua/keymap.c)27
-rw-r--r--keyboards/s60_x/keymaps/default/keymap.c (renamed from keyboards/s60-x/keymaps/default/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/default/readme.md (renamed from keyboards/s60-x/keymaps/default/readme.md)0
-rw-r--r--keyboards/s60_x/keymaps/hasu/keymap.c (renamed from keyboards/s60-x/keymaps/hasu/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/hasu/readme.md (renamed from keyboards/s60-x/keymaps/hasu/readme.md)0
-rw-r--r--keyboards/s60_x/keymaps/hhkb/keymap.c (renamed from keyboards/s60-x/keymaps/hhkb/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/hhkb/readme.md (renamed from keyboards/s60-x/keymaps/hhkb/readme.md)0
-rw-r--r--keyboards/s60_x/keymaps/iso/keymap.c (renamed from keyboards/s60-x/keymaps/iso/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/iso/readme.md (renamed from keyboards/s60-x/keymaps/iso/readme.md)0
-rw-r--r--keyboards/s60_x/keymaps/jpec/keymap.c (renamed from keyboards/s60-x/keymaps/jpec/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/jpec/readme.md (renamed from keyboards/s60-x/keymaps/jpec/readme.md)0
-rw-r--r--keyboards/s60_x/keymaps/plain/keymap.c (renamed from keyboards/s60-x/keymaps/plain/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/plain/readme.md (renamed from keyboards/s60-x/keymaps/plain/readme.md)0
-rw-r--r--keyboards/s60_x/keymaps/poker/keymap.c (renamed from keyboards/s60-x/keymaps/poker/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/poker/readme.md (renamed from keyboards/s60-x/keymaps/poker/readme.md)0
-rw-r--r--keyboards/s60_x/keymaps/poker_bit/keymap.c (renamed from keyboards/s60-x/keymaps/poker_bit/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/poker_bit/readme.md (renamed from keyboards/s60-x/keymaps/poker_bit/readme.md)0
-rw-r--r--keyboards/s60_x/keymaps/poker_set/keymap.c (renamed from keyboards/s60-x/keymaps/poker_set/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/poker_set/readme.md (renamed from keyboards/s60-x/keymaps/poker_set/readme.md)0
-rw-r--r--keyboards/s60_x/keymaps/spacefn/keymap.c (renamed from keyboards/s60-x/keymaps/spacefn/keymap.c)2
-rw-r--r--keyboards/s60_x/keymaps/spacefn/readme.md (renamed from keyboards/s60-x/keymaps/spacefn/readme.md)0
-rw-r--r--keyboards/s60_x/readme.md (renamed from keyboards/s60-x/readme.md)5
-rw-r--r--keyboards/s60_x/rgb/Makefile (renamed from keyboards/s60-x/rgb/Makefile)0
-rw-r--r--keyboards/s60_x/rgb/config.h (renamed from keyboards/s60-x/rgb/config.h)11
-rw-r--r--keyboards/s60_x/rgb/rgb.c (renamed from keyboards/s60-x/rgb/rgb.c)0
-rw-r--r--keyboards/s60_x/rgb/rgb.h (renamed from keyboards/s60-x/rgb/rgb.h)0
-rw-r--r--keyboards/s60_x/rgb/rules.mk9
-rw-r--r--keyboards/s60_x/rules.mk (renamed from keyboards/s60-x/rules.mk)4
-rw-r--r--keyboards/s60_x/s60_x.c1
-rw-r--r--keyboards/s60_x/s60_x.h (renamed from keyboards/s60-x/s60-x.h)0
-rw-r--r--keyboards/xd60/readme.md2
-rw-r--r--quantum/dynamic_macro.h82
-rw-r--r--tmk_core/avr.mk42
-rw-r--r--tmk_core/chibios.mk4
98 files changed, 1754 insertions, 297 deletions
diff --git a/Dockerfile b/Dockerfile
index 744ded857..88da06f02 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,8 +1,7 @@
1FROM debian:jessie 1FROM debian:jessie
2MAINTAINER Erik Dasque <erik@frenchguys.com> 2MAINTAINER Erik Dasque <erik@frenchguys.com>
3 3
4RUN apt-get update 4RUN apt-get update && apt-get install --no-install-recommends -y build-essential \
5RUN apt-get install --no-install-recommends -y build-essential \
6 gcc \ 5 gcc \
7 unzip \ 6 unzip \
8 wget \ 7 wget \
@@ -15,10 +14,8 @@ RUN apt-get install --no-install-recommends -y build-essential \
15 gcc-arm-none-eabi \ 14 gcc-arm-none-eabi \
16 binutils-arm-none-eabi \ 15 binutils-arm-none-eabi \
17 libnewlib-arm-none-eabi \ 16 libnewlib-arm-none-eabi \
18 git 17 git \
19 18 && rm -rf /var/lib/apt/lists/*
20RUN apt-get clean
21RUN rm -rf /var/lib/apt/lists/*
22 19
23ENV keyboard=ergodox 20ENV keyboard=ergodox
24ENV subproject=ez 21ENV subproject=ez
diff --git a/keyboards/amj60/amj60.h b/keyboards/amj60/amj60.h
index a0cb47331..c508e479c 100644
--- a/keyboards/amj60/amj60.h
+++ b/keyboards/amj60/amj60.h
@@ -147,6 +147,21 @@
147 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \ 147 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
148} 148}
149 149
150#define KEYMAP_MAX( \
151 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
152 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
153 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
154 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
155 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
156) \
157{ \
158 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
159 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
160 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
161 {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
162 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
163}
164
150void matrix_init_user(void); 165void matrix_init_user(void);
151void matrix_scan_user(void); 166void matrix_scan_user(void);
152 167
diff --git a/keyboards/amj60/keymaps/maximized/keymap.c b/keyboards/amj60/keymaps/maximized/keymap.c
new file mode 100644
index 000000000..d2a4be59f
--- /dev/null
+++ b/keyboards/amj60/keymaps/maximized/keymap.c
@@ -0,0 +1,61 @@
1// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
2// this is the style you want to emulate.
3
4#include "amj60.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 _DEF 0
11#define _SPC 1
12
13// dual-role shortcuts
14#define SPACEDUAL LT(_SPC, KC_SPACE)
15
16
17// increase readability
18#define _______ KC_TRNS
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 /* Keymap _DEF: Default Layer
22 * ,-----------------------------------------------------------.
23 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ |
24 * |-----------------------------------------------------------|
25 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| bspc|
26 * |-----------------------------------------------------------|
27 * |Caps | A| S| D| F| G| H| J| K| L| ;| '| Return |
28 * |-----------------------------------------------------------|
29 * |Sft | Fn0| Z| X| C| V| B| N| M| ,| .| /| Sft |Fn2|
30 * |-----------------------------------------------------------|
31 * |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl|
32 * `-----------------------------------------------------------'
33 */
34 [_DEF] = KEYMAP_MAX(
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_BSLS, KC_GRV, \
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_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, \
38 KC_LSFT, F(0), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, F(1), \
39 KC_LCTL, KC_LALT, KC_LGUI, SPACEDUAL, KC_RGUI, KC_RALT, KC_RCTL, F(2)),
40
41 /* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
42 * ,-----------------------------------------------------------.
43 * |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | |
44 * |-----------------------------------------------------------|
45 * | |Paus| Up| [ | ] | | | | ( | ) | | | | Del |
46 * |-----------------------------------------------------------|
47 * | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY |
48 * |-----------------------------------------------------------|
49 * | | | | | < | > | |M0 | | | | | Vol+ | |
50 * |-----------------------------------------------------------|
51 * | | | | |Alt |Prev|Vol-|Next|
52 * `-----------------------------------------------------------'
53 */
54 [_SPC] = KEYMAP_MAX(
55 KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, \
56 _______, KC_PAUS, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
57 _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, \
58 _______, _______, _______, _______, _______, _______, KC_SPACE, M(0), _______, _______, _______, _______, KC_VOLU, _______, \
59 _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
60
61};
diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c
index aaf75d58f..2d6f76856 100644
--- a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c
+++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 * ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │ │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤ 22 * ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │ │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤
23 * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │ 23 * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │
24 * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ 24 * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
25 * │ CTL │ ALT │ MO1 │ Win │ Mod4│ │ Mod4│ Win │ MO1 │ Alt │ CTL │ 25 * │ CTL │ ALT │ MO1 │ Win │ Mod4│ │ Mod4│ Win │ MO1 │ ALT │ CTL │
26 * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ 26 * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
27 * │ ← │ ↑ │ │ ↓ │ → │ 27 * │ ← │ ↑ │ │ ↓ │ → │
28 * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ 28 * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 KC_END, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS, 46 KC_END, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS,
47 NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R, 47 NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R,
48 TG(PMN), NEO_B, NEO_M, KC_COMM,KC_DOT, NEO_J, KC_RSFT, 48 TG(PMN), NEO_B, NEO_M, KC_COMM,KC_DOT, NEO_J, KC_RSFT,
49 NEO_L2_R,KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, 49 NEO_L2_R,KC_RGUI,MO(FMU),KC_LALT,KC_RCTL,
50 KC_DOWN, KC_RGHT, 50 KC_DOWN, KC_RGHT,
51 KC_MINS, 51 KC_MINS,
52 MEH_T(KC_NO),KC_ENT,KC_SPC 52 MEH_T(KC_NO),KC_ENT,KC_SPC
@@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
63 * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ 63 * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
64 * │ LSHFT │ Ä │ Q │ R │ W │ N │ │ │ │ J │ M │ , │ . │ ẞ │ Shift │ 64 * │ LSHFT │ Ä │ Q │ R │ W │ N │ │ │ │ J │ M │ , │ . │ ẞ │ Shift │
65 * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ 65 * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
66 * │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ 66 * │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ ALT │ CTL │
67 * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ 67 * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
68 * │ ← │ ↑ │ │ ↓ │ → │ 68 * │ ← │ ↑ │ │ ↓ │ → │
69 * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ 69 * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
@@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
87 KC_END, DE_B, DE_A, DE_S, DE_G, DE_V, DE_Y, 87 KC_END, DE_B, DE_A, DE_S, DE_G, DE_V, DE_Y,
88 DE_U, DE_MINS,DE_Z, DE_E, DE_X, NEO_L1_R, 88 DE_U, DE_MINS,DE_Z, DE_E, DE_X, NEO_L1_R,
89 KC_TRNS, DE_J, DE_M, DE_COMM,DE_DOT, DE_SS, KC_RSFT, 89 KC_TRNS, DE_J, DE_M, DE_COMM,DE_DOT, DE_SS, KC_RSFT,
90 MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, 90 MO(NHL),KC_RGUI,MO(FMU),KC_LALT,KC_RCTL,
91 KC_DOWN, KC_RGHT, 91 KC_DOWN, KC_RGHT,
92 KC_MINS, 92 KC_MINS,
93 MEH_T(KC_NO),KC_ENT,KC_SPC 93 MEH_T(KC_NO),KC_ENT,KC_SPC
@@ -104,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
104 * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ 104 * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
105 * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │ 105 * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │
106 * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ 106 * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
107 * │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ 107 * │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ ALT │ CTL │
108 * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ 108 * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
109 * │ ← │ ↑ │ │ ↓ │ → │ 109 * │ ← │ ↑ │ │ ↓ │ → │
110 * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ 110 * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
@@ -127,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
127 KC_END, DE_K, DE_H, DE_G, DE_F, DE_Q, DE_SS, 127 KC_END, DE_K, DE_H, DE_G, DE_F, DE_Q, DE_SS,
128 DE_S, DE_N, DE_R, DE_T, DE_D, KC_NO, 128 DE_S, DE_N, DE_R, DE_T, DE_D, KC_NO,
129 KC_TRNS, DE_B, DE_M, KC_COMM,KC_DOT, DE_J, KC_RSFT, 129 KC_TRNS, DE_B, DE_M, KC_COMM,KC_DOT, DE_J, KC_RSFT,
130 MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, 130 MO(NHL),KC_RGUI,MO(FMU),KC_LALT,KC_RCTL,
131 KC_DOWN, KC_RGHT, 131 KC_DOWN, KC_RGHT,
132 KC_MINS, 132 KC_MINS,
133 MEH_T(KC_NO),KC_ENT,KC_SPC 133 MEH_T(KC_NO),KC_ENT,KC_SPC
@@ -135,13 +135,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
135 135
136/* Layer 3: F-keys, Mouse and Unicode 136/* Layer 3: F-keys, Mouse and Unicode
137 * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ 137 * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
138 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 138 * │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │
139 * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ 139 * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
140 * │ │ ┌ │ ┬ │ ┐ │ ─ │ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │ 140 * │ │ ┌ │ ┬ │ ┐ │ ─ │ │ │ │ │ │ ↔ │ ← │ → │ ↑ │ ↓ │ │
141 * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ 141 * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤
142 * │ │ ├ │ ┼ │ ┤ │ ✓ │ ✕ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ 142 * │ │ ├ │ ┼ │ ┤ │ 〈 │ 〉 ├─────┤ ├─────┤ │ ✓ │ ✕ │ • │ ∶ │ │
143 * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ 143 * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
144 * │ │ └ │ ┴ │ ┘ │ ↔ │ ⇔ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ 144 * │ │ └ │ ┴ │ ┘ │ │ │ │ │ │ ⇔ │ ⇐ │ ⇒ │ ⇑ │ ⇓ │ │
145 * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ 145 * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
146 * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │ 146 * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │
147 * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ 147 * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
@@ -154,23 +154,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
154 */ 154 */
155[FMU] = KEYMAP( 155[FMU] = KEYMAP(
156 // left hand 156 // left hand
157 KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 157 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
158 KC_TRNS, UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502),KC_TRNS, 158 KC_TRNS, UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502),KC_TRNS,
159 KC_TRNS, UC(0x251C),UC(0x253C),UC(0x2524),UC(0x2713),UC(0x2715), 159 KC_TRNS, UC(0x251C),UC(0x253C),UC(0x2524),UC(0x3008),UC(0x3009),
160 KC_TRNS, UC(0x2514),UC(0x2534),UC(0x2518),UC(0x2194),UC(0x21D4),KC_TRNS, 160 KC_TRNS, UC(0x2514),UC(0x2534),UC(0x2518),KC_TRNS, KC_TRNS, KC_TRNS,
161 KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 161 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
162 KC_MS_L, KC_MS_U, 162 KC_MS_L, KC_MS_U,
163 KC_BTN1, 163 KC_BTN1,
164 KC_TRNS,KC_TRNS, KC_TRNS, 164 KC_TRNS, KC_TRNS, KC_TRNS,
165 // right hand 165 // right hand
166 KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 166 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
167 KC_TRNS, KC_TRNS,KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, 167 KC_TRNS, UC(0x2194),UC(0x2190),UC(0x2192),UC(0x2191),UC(0x2193),KC_TRNS,
168 KC_TRNS,KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, 168 KC_TRNS, UC(0x2713),UC(0x2715),UC(0x2022),UC(0x2236),KC_TRNS,
169 KC_TRNS, KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, 169 KC_TRNS, UC(0x21D4),UC(0x21D0),UC(0x21D2),UC(0x21D1),UC(0x21D3),KC_TRNS,
170 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 170 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
171 KC_MS_D, KC_MS_R, 171 KC_MS_D, KC_MS_R,
172 KC_BTN2, 172 KC_BTN2,
173 KC_TRNS, KC_TRNS,KC_TRNS 173 KC_TRNS, KC_TRNS, KC_TRNS
174 ), 174 ),
175 175
176/* Layer 4: Neo’s software layer 4 rebuilt in Hardware 176/* Layer 4: Neo’s software layer 4 rebuilt in Hardware
@@ -294,11 +294,10 @@ void unicode_input_start (void) {
294// Override method to use NEO_A instead of KC_A 294// Override method to use NEO_A instead of KC_A
295uint16_t hex_to_keycode(uint8_t hex) 295uint16_t hex_to_keycode(uint8_t hex)
296{ 296{
297 if (hex == 0x0) { 297 if(hex == 0x0) {
298 return KC_0; 298 return KC_0;
299 } else if (hex < 0xA) { 299 }
300 return KC_1 + (hex - 0x1); 300 else if(hex >= 0xA) {
301 } else {
302 switch(hex) { 301 switch(hex) {
303 case 0xA: 302 case 0xA:
304 return NEO_A; 303 return NEO_A;
@@ -316,4 +315,6 @@ uint16_t hex_to_keycode(uint8_t hex)
316 return KC_NO; 315 return KC_NO;
317 } 316 }
318 } 317 }
318
319 return KC_1 + (hex - 0x1);
319} 320}
diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/readme.md b/keyboards/ergodox/keymaps/coderkun_neo2/readme.md
index 2a4d3a535..0c9290bf0 100644
--- a/keyboards/ergodox/keymaps/coderkun_neo2/readme.md
+++ b/keyboards/ergodox/keymaps/coderkun_neo2/readme.md
@@ -4,10 +4,18 @@ The idea of this layout is to use it for [Neo2](http://www.neo-layout.org) but a
4 4
5The main goal of the default layer is to provide a complete symmetric layout with each modifier equally placed for both hands (mirror, of course). 5The main goal of the default layer is to provide a complete symmetric layout with each modifier equally placed for both hands (mirror, of course).
6 6
7It also features a layer for additional keys like F-keys (F1 – F12), some mouse keys and (hopefully in the near future) some useful Unicode symbols. 7It also features a layer for additional keys like F-keys (F1 – F12), some mouse keys and some useful Unicode symbols.
8 8
9 9
10## Layers 10## Build
11
12 ```
13 make clean
14 make coderkun_neo2
15 ```
16
17
18## Keymap
11 19
120. Default layer for Neo2 200. Default layer for Neo2
131. Poor man’s QWERTZ 211. Poor man’s QWERTZ
@@ -16,16 +24,106 @@ It also features a layer for additional keys like F-keys (F1 – F12), some mous
164. Neo’s software layers 4 rebuilt in hardware 244. Neo’s software layers 4 rebuilt in hardware
17 25
18 26
19## Build 27### Layer 0: Default layer for Neo2
20 28
211. Enable Unicode in Makefile 29 ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
30 │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │
31 ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
32 │ Y │ X │ V │ L │ C │ W │ HOM │ │ END │ K │ H │ G │ F │ Q │ ß │
33 ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤
34 │ Mod3 │ U │ I │ A │ E │ O ├─────┤ ├─────┤ S │ N │ R │ T │ D │ Mod3 │
35 ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │ │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤
36 │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │
37 └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
38 │ CTL │ ALT │ MO1 │ Win │ Mod4│ │ Mod4│ Win │ MO1 │ Alt │ CTL │
39 └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
40 │ ← │ ↑ │ │ ↓ │ → │
41 ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
42 │ │ │ ─ │ │ ─ │ │ │
43 │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │
44 │ │ │ HYP │ │ MEH │ │ │
45 └─────┴─────┴─────┘ └─────┴─────┴─────┘
22 46
23 ```
24 UNICODE_ENABLE = yes
25 ```
262. Build as usual
27 47
28 ``` 48### Layer 1: Poor man’s QWERTZ
29 make clean 49
30 make KEYMAP=coderkun_neo2 50 ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
31 ``` 51 │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │
52 ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
53 │ C │ P │ T │ F │ K │ L │ HOM │ │ END │ B │ A │ S │ G │ V │ Y │
54 ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤
55 │ Mod3 │ D │ H │ Ö │ O │ I ├─────┤ ├─────┤ U │ - │ Z │ E │ X │ Mod3 │
56 ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
57 │ LSHFT │ Ä │ Q │ R │ W │ N │ │ │ │ J │ M │ , │ . │ ẞ │ Shift │
58 └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
59 │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │
60 └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
61 │ ← │ ↑ │ │ ↓ │ → │
62 ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
63 │ │ │ ─ │ │ ─ │ │ │
64 │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │
65 │ │ │ HYP │ │ MEH │ │ │
66 └─────┴─────┴─────┘ └─────┴─────┴─────┘
67
68
69### Layer 2: Poor man’s Neo
70
71 ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
72 │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │
73 ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
74 │ Y │ X │ V │ L │ C │ W │ HOM │ │ END │ K │ H │ G │ F │ Q │ ß │
75 ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤
76 │ Mod3 │ U │ I │ A │ E │ O ├─────┤ ├─────┤ S │ N │ R │ T │ D │ Mod3 │
77 ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
78 │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │
79 └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
80 │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │
81 └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
82 │ ← │ ↑ │ │ ↓ │ → │
83 ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
84 │ │ │ ─ │ │ ─ │ │ │
85 │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │
86 │ │ │ HYP │ │ MEH │ │ │
87 └─────┴─────┴─────┘ └─────┴─────┴─────┘
88
89
90### Layer 3: F-keys, mouse keys und Unicode symbols
91
92 ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
93 │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │
94 ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
95 │ │ ┌ │ ┬ │ ┐ │ ─ │ │ │ │ │ │ ↔ │ ← │ → │ ↑ │ ↓ │ │
96 ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤
97 │ │ ├ │ ┼ │ ┤ │ 〈 │ 〉 ├─────┤ ├─────┤ │ ✓ │ ✕ │ • │ ∶ │ │
98 ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
99 │ │ └ │ ┴ │ ┘ │ │ │ │ │ │ ⇔ │ ⇐ │ ⇒ │ ⇑ │ ⇓ │ │
100 └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
101 │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │
102 └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
103 │ Ms← │ Ms↑ │ │ Ms↓ │ Ms→ │
104 ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
105 │ │ │ MLC │ │ MRC │ │ │
106 │ │ ├─────┤ ├─────┤ │ │
107 │ │ │ │ │ │ │ │
108 └─────┴─────┴─────┘ └─────┴─────┴─────┘
109
110
111### Layer 4: Neo’s software layers 4 rebuilt in hardware
112
113 ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
114 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
115 ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
116 │ │ PgUp│ BSpc│ ↑ │ Del │ PgDn│ │ │ │ │ 7 │ 8 │ 9 │ + │ − │
117 ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤
118 │ │ Home│ ← │ ↓ │ → │ End ├─────┤ ├─────┤ │ 4 │ 5 │ 6 │ , │ . │
119 ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
120 │ │ Esc │ Tab │ Ins │ Ret │ Undo│ │ │ │ │ 1 │ 2 │ 3 │ │ │
121 └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
122 │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │
123 └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
124 │ │ │ │ │ │
125 ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
126 │ │ │ │ │ │ │ │
127 │ │ ├─────┤ ├─────┤ │ │
128 │ │ │ │ │ │ │ │
129 └─────┴─────┴─────┘ └─────┴─────┴─────┘
diff --git a/keyboards/handwired/promethium/color.h b/keyboards/handwired/promethium/color.h
new file mode 100644
index 000000000..077242d5f
--- /dev/null
+++ b/keyboards/handwired/promethium/color.h
@@ -0,0 +1,15 @@
1#define COLOR_BLANK 0, 0, 0
2
3#define COLOR_BLACK 0, 0, 0
4#define COLOR_WHITE 15,15,15
5#define COLOR_GRAY 7, 7, 7
6
7#define COLOR_RED 15, 0, 0
8#define COLOR_GREEN 0,15, 0
9#define COLOR_BLUE 0, 0,15
10
11#define COLOR_YELLOW 15,15, 0
12#define COLOR_MAGENTA 15, 0,15
13#define COLOR_CYAN 0,15,15
14
15#define COLOR_ORANGE 15, 5, 0 \ No newline at end of file
diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h
index a13406b0d..efb9ebdd7 100644
--- a/keyboards/handwired/promethium/config.h
+++ b/keyboards/handwired/promethium/config.h
@@ -153,7 +153,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
153//#define NO_ACTION_MACRO 153//#define NO_ACTION_MACRO
154//#define NO_ACTION_FUNCTION 154//#define NO_ACTION_FUNCTION
155 155
156#define PS2_INIT_DELAY 3000 156#define PS2_MOUSE_INIT_DELAY 2000
157#define BATTERY_PIN 9 157#define BATTERY_PIN 9
158#define BATTERY_POLL 30000 158#define BATTERY_POLL 30000
159#define MAX_VOLTAGE 4.2 159#define MAX_VOLTAGE 4.2
@@ -205,7 +205,7 @@ enum led_sequence {
205 LED_RSFT, 205 LED_RSFT,
206 LED_RCTL, 206 LED_RCTL,
207 207
208 LED_RGUI, 208 LED_RALT,
209 LED_SLSH, 209 LED_SLSH,
210 LED_SCLN, 210 LED_SCLN,
211 LED_P, 211 LED_P,
@@ -213,9 +213,9 @@ enum led_sequence {
213 LED_O, 213 LED_O,
214 LED_L, 214 LED_L,
215 LED_DOT, 215 LED_DOT,
216 LED_RALT, 216 LED_RGUI,
217 217
218 LED_EMOJI, 218 LED_GREEK,
219 LED_COMM, 219 LED_COMM,
220 LED_K, 220 LED_K,
221 LED_I, 221 LED_I,
@@ -234,35 +234,35 @@ enum led_sequence {
234 LED_TRACKPOINT2, 234 LED_TRACKPOINT2,
235 LED_TRACKPOINT1, 235 LED_TRACKPOINT1,
236 236
237 LED_LSPC,
238 LED_B,
239 LED_G,
240 LED_T, 237 LED_T,
238 LED_G,
239 LED_B,
240 LED_LSPC,
241 241
242 LED_R,
243 LED_F,
244 LED_V,
245 LED_NUM, 242 LED_NUM,
243 LED_V,
244 LED_F,
245 LED_R,
246 246
247 LED_PUNC,
248 LED_C,
249 LED_D,
250 LED_E, 247 LED_E,
248 LED_D,
249 LED_C,
250 LED_EMPTY,
251 251
252 LED_W, 252 LED_LGUI,
253 LED_S,
254 LED_X, 253 LED_X,
255 LED_LALT, 254 LED_S,
255 LED_W,
256 256
257 LED_LGUI,
258 LED_Z,
259 LED_A,
260 LED_Q, 257 LED_Q,
258 LED_A,
259 LED_Z,
260 LED_LALT,
261 261
262 LED_TAB,
263 LED_ESC,
264 LED_LSFT,
265 LED_LCTL, 262 LED_LCTL,
263 LED_LSFT,
264 LED_ESC,
265 LED_TAB,
266 266
267 LED_TOTAL 267 LED_TOTAL
268}; 268};
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/config.h b/keyboards/handwired/promethium/keymaps/priyadi/config.h
index 3f5dd5817..fa86e2247 100644
--- a/keyboards/handwired/promethium/keymaps/priyadi/config.h
+++ b/keyboards/handwired/promethium/keymaps/priyadi/config.h
@@ -14,6 +14,7 @@
14#define PREVENT_STUCK_MODIFIERS 14#define PREVENT_STUCK_MODIFIERS
15 15
16#define RGBSPS_ENABLE 16#define RGBSPS_ENABLE
17#define RGBSPS_DEMO_ENABLE
17 18
18#define UNICODE_TYPE_DELAY 0 19#define UNICODE_TYPE_DELAY 0
19 20
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
index efa5d9756..d562c7bbf 100644
--- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
+++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
@@ -31,6 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
31#include "quantum.h" 31#include "quantum.h"
32#ifdef RGBSPS_ENABLE 32#ifdef RGBSPS_ENABLE
33#include "rgbsps.h" 33#include "rgbsps.h"
34#include "rgbtheme.h"
34#endif 35#endif
35#ifdef PS2_MOUSE_ENABLE 36#ifdef PS2_MOUSE_ENABLE
36#include "ps2_mouse.h" 37#include "ps2_mouse.h"
@@ -42,13 +43,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
42#undef FAUXCLICKY_OFF 43#undef FAUXCLICKY_OFF
43#define FAUXCLICKY_OFF do { \ 44#define FAUXCLICKY_OFF do { \
44 fauxclicky_enabled = false; \ 45 fauxclicky_enabled = false; \
45 rgbsps_set(LED_AUDIO, 0, 0, 0); \ 46 rgbsps_set(LED_AUDIO, COLOR_BLANK); \
46 fauxclicky_stop(); \ 47 fauxclicky_stop(); \
47} while (0) 48} while (0)
48#undef FAUXCLICKY_ON 49#undef FAUXCLICKY_ON
49#define FAUXCLICKY_ON do { \ 50#define FAUXCLICKY_ON do { \
50 fauxclicky_enabled = true; \ 51 fauxclicky_enabled = true; \
51 rgbsps_set(LED_AUDIO, 8, 0, 8); \ 52 rgbsps_set(LED_AUDIO, THEME_COLOR_AUDIO); \
52} while (0) 53} while (0)
53#endif 54#endif
54#endif 55#endif
@@ -144,6 +145,7 @@ enum planck_keycodes {
144#ifndef MODULE_ADAFRUIT_BLE 145#ifndef MODULE_ADAFRUIT_BLE
145 OUT_BT, 146 OUT_BT,
146#endif 147#endif
148 RGBDEMO,
147 KEYCODE_END 149 KEYCODE_END
148}; 150};
149 151
@@ -434,10 +436,10 @@ const uint8_t PROGMEM LED_MODS[] = {
434}; 436};
435 437
436const uint8_t PROGMEM LED_FN[] = { 438const uint8_t PROGMEM LED_FN[] = {
437 LED_PUNC, 439 LED_EMPTY,
438 LED_NUM, 440 LED_NUM,
439 LED_FUN, 441 LED_FUN,
440 LED_EMOJI 442 LED_GREEK
441}; 443};
442 444
443const uint8_t PROGMEM LED_INDICATORS[] = { 445const uint8_t PROGMEM LED_INDICATORS[] = {
@@ -468,16 +470,37 @@ const uint8_t PROGMEM LED_TRACKPOINT[] = {
468 470
469void led_turnoff_keys(void) { 471void led_turnoff_keys(void) {
470 for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { 472 for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) {
471 rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 0, 0, 0); 473 rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), COLOR_BLACK);
472 } 474 }
473 for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { 475 for(uint8_t i = 0; i < COUNT(LED_MODS); i++) {
474 rgbsps_set(pgm_read_byte(&LED_MODS[i]), 0, 0, 0); 476 rgbsps_set(pgm_read_byte(&LED_MODS[i]), COLOR_BLACK);
475 } 477 }
476 for(uint8_t i = 0; i < COUNT(LED_FN); i++) { 478 for(uint8_t i = 0; i < COUNT(LED_FN); i++) {
477 rgbsps_set(pgm_read_byte(&LED_FN[i]), 0, 0, 0); 479 rgbsps_set(pgm_read_byte(&LED_FN[i]), COLOR_BLACK);
478 } 480 }
479} 481}
480 482
483#ifdef RGBSPS_DEMO_ENABLE
484void led_demo(void) {
485 rgbsps_set(LED_IND_LINUX, THEME_COLOR_LINUX);
486 rgbsps_set(LED_IND_APPLE, THEME_COLOR_APPLE);
487 rgbsps_set(LED_IND_WINDOWS, THEME_COLOR_WINDOWS);
488 rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY);
489 rgbsps_set(LED_IND_ALT, THEME_COLOR_ALT);
490 rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO);
491 rgbsps_set(LED_IND_BLUETOOTH, THEME_COLOR_BLUETOOTH);
492 rgbsps_set(LED_IND_USB, THEME_COLOR_USB);
493 rgbsps_set(LED_IND_CAPSLOCK, THEME_COLOR_CAPSLOCK);
494 rgbsps_set(LED_IND_GUI, THEME_COLOR_GUI);
495 rgbsps_set(LED_IND_FUN, THEME_COLOR_FUN);
496 rgbsps_set(LED_IND_NUM, THEME_COLOR_NUM);
497 rgbsps_set(LED_IND_PUNC, THEME_COLOR_PUNC);
498 rgbsps_set(LED_IND_GREEK, THEME_COLOR_GREEK);
499 rgbsps_set(LED_IND_EMOJI, THEME_COLOR_EMOJI);
500 rgbsps_send();
501}
502#endif
503
481void led_reset(void) { 504void led_reset(void) {
482 switch (glow_mode) { 505 switch (glow_mode) {
483 case GLOW_NONE: 506 case GLOW_NONE:
@@ -486,26 +509,26 @@ void led_reset(void) {
486 case GLOW_MIN: 509 case GLOW_MIN:
487 led_turnoff_keys(); 510 led_turnoff_keys();
488 for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) { 511 for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) {
489 rgbsps_set(pgm_read_byte(&LED_HOMING[i]), 8, 8, 8); 512 rgbsps_set(pgm_read_byte(&LED_HOMING[i]), THEME_COLOR_GLOW1_HOME);
490 } 513 }
491 rgbsps_set(LED_F, 15, 0, 0); 514 rgbsps_set(LED_F, THEME_COLOR_GLOW1_HOMING);
492 rgbsps_set(LED_J, 15, 0, 0); 515 rgbsps_set(LED_J, THEME_COLOR_GLOW1_HOMING);
493 break; 516 break;
494 case GLOW_FULL: 517 case GLOW_FULL:
495 for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { 518 for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) {
496 rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 8, 8, 8); 519 rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), THEME_COLOR_GLOW2_ALPHA);
497 } 520 }
498 for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { 521 for(uint8_t i = 0; i < COUNT(LED_MODS); i++) {
499 rgbsps_set(pgm_read_byte(&LED_MODS[i]), 0, 15, 0); 522 rgbsps_set(pgm_read_byte(&LED_MODS[i]), THEME_COLOR_GLOW2_MODS);
500 } 523 }
501 for(uint8_t i = 0; i < COUNT(LED_FN); i++) { 524 for(uint8_t i = 0; i < COUNT(LED_FN); i++) {
502 rgbsps_set(pgm_read_byte(&LED_FN[i]), 0, 0, 15); 525 rgbsps_set(pgm_read_byte(&LED_FN[i]), THEME_COLOR_GLOW2_FN);
503 } 526 }
504 for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) { 527 for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) {
505 rgbsps_set(pgm_read_byte(&LED_HOMING[i]), 15, 0, 0); 528 rgbsps_set(pgm_read_byte(&LED_HOMING[i]), THEME_COLOR_GLOW2_HOME);
506 } 529 }
507 rgbsps_set(LED_F, 15, 15, 0); 530 rgbsps_set(LED_F, THEME_COLOR_GLOW2_HOMING);
508 rgbsps_set(LED_J, 15, 15, 0); 531 rgbsps_set(LED_J, THEME_COLOR_GLOW2_HOMING);
509 break; 532 break;
510 } 533 }
511} 534}
@@ -513,11 +536,11 @@ void led_reset(void) {
513void led_set_default_layer_indicator(void) { 536void led_set_default_layer_indicator(void) {
514 uint8_t default_layer = biton32(default_layer_state); 537 uint8_t default_layer = biton32(default_layer_state);
515 if (default_layer == _QWERTY) { 538 if (default_layer == _QWERTY) {
516 rgbsps_set(LED_IND_QWERTY, 15, 10, 0); 539 rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY);
517 rgbsps_set(LED_IND_ALT, 0, 0, 0); 540 rgbsps_set(LED_IND_ALT, COLOR_BLANK);
518 } else { 541 } else {
519 rgbsps_set(LED_IND_QWERTY, 0, 0, 0); 542 rgbsps_set(LED_IND_QWERTY, COLOR_BLANK);
520 rgbsps_set(LED_IND_ALT, 15, 10, 0); 543 rgbsps_set(LED_IND_ALT, THEME_COLOR_ALT);
521 } 544 }
522 rgbsps_send(); 545 rgbsps_send();
523 return; 546 return;
@@ -528,12 +551,12 @@ void led_set_layer_indicator(void) {
528 551
529 led_reset(); 552 led_reset();
530 553
531 rgbsps_set(LED_IND_GUI, 0, 0, 0); 554 rgbsps_set(LED_IND_GUI, COLOR_BLANK);
532 rgbsps_set(LED_IND_FUN, 0, 0, 0); 555 rgbsps_set(LED_IND_FUN, COLOR_BLANK);
533 rgbsps_set(LED_IND_NUM, 0, 0, 0); 556 rgbsps_set(LED_IND_NUM, COLOR_BLANK);
534 rgbsps_set(LED_IND_PUNC, 0, 0, 0); 557 rgbsps_set(LED_IND_PUNC, COLOR_BLANK);
535 rgbsps_set(LED_IND_GREEK, 0, 0, 0); 558 rgbsps_set(LED_IND_GREEK, COLOR_BLANK);
536 rgbsps_set(LED_IND_EMOJI, 0, 0, 0); 559 rgbsps_set(LED_IND_EMOJI, COLOR_BLANK);
537 560
538 uint8_t layer = biton32(layer_state); 561 uint8_t layer = biton32(layer_state);
539 if (oldlayer == layer) { 562 if (oldlayer == layer) {
@@ -549,71 +572,71 @@ void led_set_layer_indicator(void) {
549 572
550 switch(layer) { 573 switch(layer) {
551 case _GUI: 574 case _GUI:
552 rgbsps_set(LED_IND_GUI, 15, 0, 15); 575 rgbsps_set(LED_IND_GUI, THEME_COLOR_GUI);
553 break; 576 break;
554 case _FUN: 577 case _FUN:
555 rgbsps_set(LED_IND_FUN, 15, 0, 0); 578 rgbsps_set(LED_IND_FUN, THEME_COLOR_FUN);
556 break; 579 break;
557 case _NUM: 580 case _NUM:
558 rgbsps_set(LED_IND_NUM, 0, 0, 15); 581 rgbsps_set(LED_IND_NUM, THEME_COLOR_NUM);
559 break; 582 break;
560 case _PUNC: 583 case _PUNC:
561 rgbsps_set(LED_IND_PUNC, 0, 15, 0); 584 rgbsps_set(LED_IND_PUNC, THEME_COLOR_PUNC);
562 break; 585 break;
563 case _GREEKL: 586 case _GREEKL:
564 case _GREEKU: 587 case _GREEKU:
565 rgbsps_set(LED_IND_GREEK, 0, 15, 15); 588 rgbsps_set(LED_IND_GREEK, THEME_COLOR_GREEK);
566 break; 589 break;
567 case _EMOJI: 590 case _EMOJI:
568 rgbsps_set(LED_IND_EMOJI, 15, 15, 0); 591 rgbsps_set(LED_IND_EMOJI, THEME_COLOR_EMOJI);
569 break; 592 break;
570 default: 593 default:
571 rgbsps_set(LED_IND_GUI, 3, 3, 3); 594 rgbsps_set(LED_IND_GUI, THEME_COLOR_OTHERLAYER);
572 rgbsps_set(LED_IND_FUN, 3, 3, 3); 595 rgbsps_set(LED_IND_FUN, THEME_COLOR_OTHERLAYER);
573 rgbsps_set(LED_IND_NUM, 3, 3, 3); 596 rgbsps_set(LED_IND_NUM, THEME_COLOR_OTHERLAYER);
574 rgbsps_set(LED_IND_PUNC, 3, 3, 3); 597 rgbsps_set(LED_IND_PUNC, THEME_COLOR_OTHERLAYER);
575 rgbsps_set(LED_IND_GREEK, 3, 3, 3); 598 rgbsps_set(LED_IND_GREEK, THEME_COLOR_OTHERLAYER);
576 rgbsps_set(LED_IND_EMOJI, 3, 3, 3); 599 rgbsps_set(LED_IND_EMOJI, THEME_COLOR_OTHERLAYER);
577 } 600 }
578 601
579 rgbsps_send(); 602 rgbsps_send();
580} 603}
581 604
582void led_set_unicode_input_mode(void) { 605void led_set_unicode_input_mode(void) {
583 rgbsps_set(LED_IND_LINUX, 0, 0, 0); 606 rgbsps_set(LED_IND_LINUX, COLOR_BLANK);
584 rgbsps_set(LED_IND_APPLE, 0, 0, 0); 607 rgbsps_set(LED_IND_APPLE, COLOR_BLANK);
585 rgbsps_set(LED_IND_WINDOWS, 0, 0, 0); 608 rgbsps_set(LED_IND_WINDOWS, COLOR_BLANK);
586 609
587 switch (get_unicode_input_mode()) { 610 switch (get_unicode_input_mode()) {
588 case UC_LNX: 611 case UC_LNX:
589 rgbsps_set(LED_IND_LINUX, 15, 15, 15); 612 rgbsps_set(LED_IND_LINUX, THEME_COLOR_LINUX);
590 break; 613 break;
591 case UC_OSX: 614 case UC_OSX:
592 rgbsps_set(LED_IND_APPLE, 15, 15, 15); 615 rgbsps_set(LED_IND_APPLE, THEME_COLOR_APPLE);
593 break; 616 break;
594 case UC_WIN: 617 case UC_WIN:
595 case UC_WINC: 618 case UC_WINC:
596 rgbsps_set(LED_IND_WINDOWS, 15, 15, 15); 619 rgbsps_set(LED_IND_WINDOWS, THEME_COLOR_WINDOWS);
597 break; 620 break;
598 } 621 }
599 rgbsps_send(); 622 rgbsps_send();
600} 623}
601 624
602void led_set_output_ble(void) { 625void led_set_output_ble(void) {
603 rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 15); 626 rgbsps_set(LED_IND_BLUETOOTH, THEME_COLOR_BLUETOOTH);
604 rgbsps_set(LED_IND_USB, 0, 0, 0); 627 rgbsps_set(LED_IND_USB, COLOR_BLANK);
605 rgbsps_send(); 628 rgbsps_send();
606} 629}
607 630
608void led_set_output_usb(void) { 631void led_set_output_usb(void) {
609 rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 0); 632 rgbsps_set(LED_IND_BLUETOOTH, COLOR_BLANK);
610 rgbsps_set(LED_IND_USB, 15, 15, 15); 633 rgbsps_set(LED_IND_USB, THEME_COLOR_USB);
611 rgbsps_send(); 634 rgbsps_send();
612} 635}
613 636
614void led_set_output_none(void) { 637void led_set_output_none(void) {
615 rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 0); 638 rgbsps_set(LED_IND_BLUETOOTH, COLOR_BLANK);
616 rgbsps_set(LED_IND_USB, 0, 0, 0); 639 rgbsps_set(LED_IND_USB, COLOR_BLANK);
617 rgbsps_send(); 640 rgbsps_send();
618} 641}
619 642
@@ -622,9 +645,9 @@ void led_init(void) {
622 rgbsps_turnoff(); 645 rgbsps_turnoff();
623 646
624 // set trackpoint color 647 // set trackpoint color
625 rgbsps_set(LED_TRACKPOINT1, 15, 0, 0); 648 rgbsps_set(LED_TRACKPOINT1, THEME_COLOR_TP1);
626 rgbsps_set(LED_TRACKPOINT2, 0, 0, 15); 649 rgbsps_set(LED_TRACKPOINT2, THEME_COLOR_TP2);
627 rgbsps_set(LED_TRACKPOINT3, 15, 0, 0); 650 rgbsps_set(LED_TRACKPOINT3, THEME_COLOR_TP3);
628 651
629 // unicode input mode 652 // unicode input mode
630 led_set_unicode_input_mode(); 653 led_set_unicode_input_mode();
@@ -632,6 +655,17 @@ void led_init(void) {
632 // layer indicator 655 // layer indicator
633 led_set_layer_indicator(); 656 led_set_layer_indicator();
634 led_set_default_layer_indicator(); 657 led_set_default_layer_indicator();
658
659 // clicky
660#ifdef FAUXCLICKY_ENABLE
661 if (fauxclicky_enabled) {
662 rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO);
663 } else {
664 rgbsps_set(LED_IND_AUDIO, COLOR_BLANK);
665 }
666#endif
667
668 rgbsps_send();
635} 669}
636 670
637 671
@@ -911,7 +945,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
911 * `-----------------------------------------------------------------------------------' 945 * `-----------------------------------------------------------------------------------'
912 */ 946 */
913[_SYS] = KEYMAP( 947[_SYS] = KEYMAP(
914 DEBUG, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 948 DEBUG, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, RGBDEMO,
915 XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX, 949 XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX,
916 XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 950 XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
917 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, 951 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
@@ -1211,15 +1245,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1211 case FC_TOG: 1245 case FC_TOG:
1212#ifdef RGBSPS_ENABLE 1246#ifdef RGBSPS_ENABLE
1213 if (fauxclicky_enabled) { 1247 if (fauxclicky_enabled) {
1214 rgbsps_set(LED_IND_AUDIO, 0, 0, 0); 1248 rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO);
1215 } else { 1249 } else {
1216 rgbsps_set(LED_IND_AUDIO, 5, 11, 13); 1250 rgbsps_set(LED_IND_AUDIO, COLOR_BLANK);
1217 } 1251 }
1218 rgbsps_send(); 1252 rgbsps_send();
1219#endif 1253#endif
1220 return true; 1254 return true;
1221 break; 1255 break;
1222#endif 1256#endif
1257
1258#ifdef RGBSPS_DEMO_ENABLE
1259 case RGBDEMO:
1260 led_demo();
1261 return false;
1262 break;
1263#endif
1223 } 1264 }
1224 return true; 1265 return true;
1225} 1266}
@@ -1280,9 +1321,9 @@ void turn_off_capslock() {
1280 bool new_capslock = usb_led & (1<<USB_LED_CAPS_LOCK); 1321 bool new_capslock = usb_led & (1<<USB_LED_CAPS_LOCK);
1281 if (new_capslock ^ capslock) { // capslock state is different 1322 if (new_capslock ^ capslock) { // capslock state is different
1282 if ((capslock = new_capslock)) { 1323 if ((capslock = new_capslock)) {
1283 rgbsps_set(LED_IND_CAPSLOCK, 15, 0, 0); 1324 rgbsps_set(LED_IND_CAPSLOCK, THEME_COLOR_CAPSLOCK);
1284 } else { 1325 } else {
1285 rgbsps_set(LED_IND_CAPSLOCK, 0, 0, 0); 1326 rgbsps_set(LED_IND_CAPSLOCK, COLOR_BLANK);
1286 } 1327 }
1287 rgbsps_send(); 1328 rgbsps_send();
1288 } 1329 }
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/rgbtheme.h b/keyboards/handwired/promethium/keymaps/priyadi/rgbtheme.h
new file mode 100644
index 000000000..e60971035
--- /dev/null
+++ b/keyboards/handwired/promethium/keymaps/priyadi/rgbtheme.h
@@ -0,0 +1 @@
#include "rgbtheme_default.h"
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_carbon.h b/keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_carbon.h
new file mode 100644
index 000000000..8e0a98b09
--- /dev/null
+++ b/keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_carbon.h
@@ -0,0 +1,36 @@
1#include "color.h"
2
3#define THEME_COLOR_LINUX COLOR_WHITE
4#define THEME_COLOR_APPLE COLOR_WHITE
5#define THEME_COLOR_WINDOWS COLOR_WHITE
6
7#define THEME_COLOR_QWERTY COLOR_RED
8#define THEME_COLOR_ALT COLOR_RED
9
10#define THEME_COLOR_AUDIO COLOR_GREEN
11
12#define THEME_COLOR_BLUETOOTH 7,7,15
13#define THEME_COLOR_USB COLOR_WHITE
14
15#define THEME_COLOR_CAPSLOCK COLOR_RED
16
17#define THEME_COLOR_GUI COLOR_MAGENTA
18#define THEME_COLOR_FUN COLOR_RED
19#define THEME_COLOR_NUM 7,7,15
20#define THEME_COLOR_PUNC COLOR_GREEN
21#define THEME_COLOR_GREEK COLOR_CYAN
22#define THEME_COLOR_EMOJI COLOR_YELLOW
23#define THEME_COLOR_OTHERLAYER COLOR_GRAY
24
25#define THEME_COLOR_GLOW1_HOME COLOR_ORANGE
26#define THEME_COLOR_GLOW1_HOMING COLOR_RED
27
28#define THEME_COLOR_GLOW2_ALPHA COLOR_ORANGE
29#define THEME_COLOR_GLOW2_MODS COLOR_ORANGE
30#define THEME_COLOR_GLOW2_FN COLOR_ORANGE
31#define THEME_COLOR_GLOW2_HOME COLOR_ORANGE
32#define THEME_COLOR_GLOW2_HOMING COLOR_RED
33
34#define THEME_COLOR_TP1 COLOR_ORANGE
35#define THEME_COLOR_TP2 COLOR_RED
36#define THEME_COLOR_TP3 COLOR_ORANGE \ No newline at end of file
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_default.h b/keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_default.h
new file mode 100644
index 000000000..4c3fb1369
--- /dev/null
+++ b/keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_default.h
@@ -0,0 +1,36 @@
1#include "color.h"
2
3#define THEME_COLOR_LINUX COLOR_WHITE
4#define THEME_COLOR_APPLE COLOR_WHITE
5#define THEME_COLOR_WINDOWS COLOR_WHITE
6
7#define THEME_COLOR_QWERTY COLOR_RED
8#define THEME_COLOR_ALT COLOR_RED
9
10#define THEME_COLOR_AUDIO COLOR_GREEN
11
12#define THEME_COLOR_BLUETOOTH COLOR_BLUE
13#define THEME_COLOR_USB COLOR_WHITE
14
15#define THEME_COLOR_CAPSLOCK COLOR_RED
16
17#define THEME_COLOR_GUI COLOR_MAGENTA
18#define THEME_COLOR_FUN COLOR_RED
19#define THEME_COLOR_NUM COLOR_BLUE
20#define THEME_COLOR_PUNC COLOR_GREEN
21#define THEME_COLOR_GREEK COLOR_CYAN
22#define THEME_COLOR_EMOJI COLOR_YELLOW
23#define THEME_COLOR_OTHERLAYER COLOR_GRAY
24
25#define THEME_COLOR_GLOW1_HOME COLOR_GRAY
26#define THEME_COLOR_GLOW1_HOMING COLOR_RED
27
28#define THEME_COLOR_GLOW2_ALPHA COLOR_GRAY
29#define THEME_COLOR_GLOW2_MODS COLOR_GREEN
30#define THEME_COLOR_GLOW2_FN COLOR_BLUE
31#define THEME_COLOR_GLOW2_HOME COLOR_RED
32#define THEME_COLOR_GLOW2_HOMING COLOR_YELLOW
33
34#define THEME_COLOR_TP1 COLOR_RED
35#define THEME_COLOR_TP2 COLOR_BLUE
36#define THEME_COLOR_TP3 COLOR_RED \ No newline at end of file
diff --git a/keyboards/handwired/promethium/matrix.c b/keyboards/handwired/promethium/matrix.c
index 2b7ce2bf5..72dbe8d4d 100644
--- a/keyboards/handwired/promethium/matrix.c
+++ b/keyboards/handwired/promethium/matrix.c
@@ -133,8 +133,8 @@ void matrix_init(void) {
133 matrix_init_quantum(); 133 matrix_init_quantum();
134} 134}
135 135
136uint8_t matrix_scan(void 136uint8_t matrix_scan(void)
137){ 137{
138 // Set row, read cols 138 // Set row, read cols
139 for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { 139 for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
140# if (DEBOUNCING_DELAY > 0) 140# if (DEBOUNCING_DELAY > 0)
diff --git a/keyboards/handwired/promethium/promethium.c b/keyboards/handwired/promethium/promethium.c
index 8b1a0c71f..3cc0f5a8c 100644
--- a/keyboards/handwired/promethium/promethium.c
+++ b/keyboards/handwired/promethium/promethium.c
@@ -4,9 +4,9 @@
4#include "matrix.h" 4#include "matrix.h"
5#include "musical_notes.h" 5#include "musical_notes.h"
6 6
7float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_F3, .03125); 7float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A4, 0.0625);
8float fauxclicky_released_note[2] = MUSICAL_NOTE(_C3, .03125); 8float fauxclicky_released_note[2] = MUSICAL_NOTE(_A4, 0.0625);
9float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C3, .03125); 9float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C6, 0.25);
10 10
11// cubic fit {3.3, 0}, {3.5, 2.9}, {3.6, 5}, {3.7, 8.6}, {3.8, 36}, {3.9, 62}, {4.0, 73}, {4.05, 83}, {4.1, 89}, {4.15, 94}, {4.2, 100} 11// cubic fit {3.3, 0}, {3.5, 2.9}, {3.6, 5}, {3.7, 8.6}, {3.8, 36}, {3.9, 62}, {4.0, 73}, {4.05, 83}, {4.1, 89}, {4.15, 94}, {4.2, 100}
12 12
diff --git a/keyboards/hhkb/keymaps/cinaeco/Makefile b/keyboards/hhkb/keymaps/cinaeco/Makefile
new file mode 100644
index 000000000..05b724051
--- /dev/null
+++ b/keyboards/hhkb/keymaps/cinaeco/Makefile
@@ -0,0 +1,23 @@
1# cinaeco's HHKB firmware
2
3# Build Options
4# change to "no" to disable the options, or define them in the Makefile in
5# the appropriate keymap folder that will get included automatically
6#
7BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
8MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
9EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
10CONSOLE_ENABLE = no # Console for debug(+400)
11COMMAND_ENABLE = yes # Commands for debug and configuration
12NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
13BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
14MIDI_ENABLE = no # MIDI controls
15AUDIO_ENABLE = no # Audio output on port C6
16UNICODE_ENABLE = no # Unicode
17BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
18RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
19SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
20
21ifndef QUANTUM_DIR
22 include ../../../../Makefile
23endif
diff --git a/keyboards/hhkb/keymaps/cinaeco/README.md b/keyboards/hhkb/keymaps/cinaeco/README.md
new file mode 100644
index 000000000..c1c48e609
--- /dev/null
+++ b/keyboards/hhkb/keymaps/cinaeco/README.md
@@ -0,0 +1,23 @@
1# QMK Keyboard Firmware for HHKB
2
3## Modifications
4
5### HHKB Fn Layer
6
7Added some Media keys.
8
9### Utility Layer (SpaceFN)
10
11Hold `Space` for:
12
13- Vi-style direction keys.
14- WASD-style mouse keys.
15- Dynamic macro playback on `1` and `2`.
16- Qwerty/Colemak/Dvorak layout selection on `-`, `=` and `\ `
17
18### Dynamic Macros
19
20Hold `q` and press:
21
22- `1` or `2` to record macro 1 or 2.
23- `s` to stop recording.
diff --git a/keyboards/hhkb/keymaps/cinaeco/config.h b/keyboards/hhkb/keymaps/cinaeco/config.h
new file mode 100644
index 000000000..c7b4c784c
--- /dev/null
+++ b/keyboards/hhkb/keymaps/cinaeco/config.h
@@ -0,0 +1,20 @@
1#ifndef CONFIG_CINAECO_H
2#define CONFIG_CINAECO_H
3
4#include "../../config.h"
5
6#undef MANUFACTURER
7#undef PRODUCT
8#undef DESCRIPTION
9#define MANUFACTURER QMK
10#define PRODUCT HHKB QMK cinaeco
11#define DESCRIPTION HHKB on QMK Firmware with cinaeco keymap
12
13// Increase "Tap" detection window. Avoid missing 'q' or 'z' when typing slowly.
14#undef TAPPING_TERM
15#define TAPPING_TERM 230
16
17// Uncomment to enable NKRO by default. May cause issues with KVM switches.
18//#define FORCE_NKRO
19
20#endif
diff --git a/keyboards/hhkb/keymaps/cinaeco/keymap.c b/keyboards/hhkb/keymaps/cinaeco/keymap.c
new file mode 100644
index 000000000..0b204600d
--- /dev/null
+++ b/keyboards/hhkb/keymaps/cinaeco/keymap.c
@@ -0,0 +1,186 @@
1/* -*- eval: (turn-on-orgtbl); -*-
2 * cinaeco's HHKB Layout
3 */
4#include "hhkb.h"
5
6// Layers.
7#define QWER 0
8#define COLE 1
9#define DVOR 2
10#define HHKB 3
11#define UTIL 4
12#define MREC 5
13
14// Easier-to-read Layer Arrays.
15#define ____ KC_TRNS
16
17enum hhkb_keycodes {
18 DYNAMIC_MACRO_RANGE = SAFE_RANGE,
19};
20
21#include "dynamic_macro.h"
22
23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24
25
26 /* QWER Layer: Qwerty Default
27 *
28 * ,--------------------------------------------------------------.
29 * |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
30 * |--------------------------------------------------------------|
31 * |Tab |Q/MREC| W| E| R| T| Y| U| I| O| P| [| ]|Backs|
32 * |--------------------------------------------------------------|
33 * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Ent/Ctrl|
34 * |--------------------------------------------------------------|
35 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0|
36 * `--------------------------------------------------------------'
37 * |Alt|Gui | Space/UTIL |Gui |Alt|
38 * `-------------------------------------------'
39 *
40 */
41
42 [QWER] = KEYMAP(
43 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, \
44 KC_TAB, LT(MREC, 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 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, CTL_T(KC_ENT), \
46 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(HHKB), \
47 KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
48
49
50 /* COLE Layer: Colemak
51 *
52 * ,--------------------------------------------------------------.
53 * |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
54 * |--------------------------------------------------------------|
55 * |Tab |Q/MREC| W| F| P| G| J| L| U| Y| ;| [| ]|Backs|
56 * |--------------------------------------------------------------|
57 * |Ctrl | A| R| S| T| D| H| N| E| I| O| '|Ent/Ctrl|
58 * |--------------------------------------------------------------|
59 * |Shift | Z| X| C| V| K| B| M| ,| .| /|Shift |Fn0|
60 * `--------------------------------------------------------------'
61 * |Alt|Gui | Space/UTIL |Gui |Alt|
62 * `-------------------------------------------'
63 *
64 */
65
66 [COLE] = KEYMAP(
67 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, \
68 KC_TAB, LT(MREC, KC_Q), KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, \
69 KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, CTL_T(KC_ENT), \
70 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_K, KC_B, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \
71 KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
72
73
74 /* DVOR Layer: Dvorak
75 *
76 * ,--------------------------------------------------------------.
77 * |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| \| `|
78 * |--------------------------------------------------------------|
79 * |Tab |'/MREC| ,| .| P| Y| F| G| C| R| L| /| =|Backs|
80 * |--------------------------------------------------------------|
81 * |Ctrl | A| O| E| U| I| D| H| T| N| S| -|Ent/Ctrl|
82 * |--------------------------------------------------------------|
83 * |Shift | ;| Q| J| K| X| B| M| W| V| Z|Shift |Fn0|
84 * `--------------------------------------------------------------'
85 * |Alt|Gui | Space/UTIL |Gui |Alt|
86 * `-------------------------------------------'
87 *
88 */
89
90 [DVOR] = KEYMAP(
91 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_BSLS, KC_GRV, \
92 KC_TAB, LT(MREC, 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_BSPC, \
93 KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, CTL_T(KC_ENT), \
94 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(HHKB), \
95 KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
96
97
98 /* HHKB Layer: HHKB mode (HHKB Fn)
99 *
100 * ,-----------------------------------------------------------.
101 * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
102 * |-----------------------------------------------------------|
103 * |Caps |PLA|PRV|NXT| | | | |Psc|Slk|Pus|Up | |Backs|
104 * |-----------------------------------------------------------|
105 * | |VoD|VoU|Mut|Ejc| | *| /|Hom|PgU|Lef|Rig|Enter |
106 * |-----------------------------------------------------------|
107 * | | | | | | | +| -|End|PgD|Dow| | |
108 * `-----------------------------------------------------------'
109 * | | | |STOP | |
110 * `-------------------------------------------'
111 */
112
113 [HHKB] = KEYMAP(
114 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, \
115 KC_CAPS, KC_MPLY, KC_MPRV, KC_MNXT, ____, ____, ____, ____, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ____, KC_BSPC, \
116 ____, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, ____, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
117 ____, ____, ____, ____, ____, ____, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ____, ____, \
118 ____, ____, ____, KC_MSTP, ____),
119
120
121 /* UTIL Layer: Extra utilities
122 *
123 * ,-------------------------------------------------------------.
124 * |DFU|PLY1|PLY2| | | | | | | | |QWE|COL|DVO|DBG|
125 * |-------------------------------------------------------------|
126 * | |MLB |M-Up|MRB|MwU| |Hom|PgD|PgU|End| | | | |
127 * |-------------------------------------------------------------|
128 * | |M-Lt|M-Dn|M-R|MwD| |LEF|DOW|UP |RIG| | | |
129 * |-------------------------------------------------------------|
130 * | | | | | |SPC| | | | | | | |
131 * `-------------------------------------------------------------'
132 * | | | | | |
133 * `-------------------------------------------'
134 *
135 */
136
137 [UTIL] = KEYMAP(
138 RESET, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, ____, ____, ____, ____, ____, ____, ____, ____, DF(QWER), DF(COLE), DF(DVOR), DEBUG, \
139 ____, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, ____, KC_HOME, KC_PGDN, KC_PGUP, KC_END, ____, ____, ____, ____, \
140 ____, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, ____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, ____, ____, ____, \
141 ____, ____, ____, ____, ____, KC_SPC, ____, ____, ____, ____, ____, ____, ____, \
142 ____, ____, ____, ____, ____),
143
144
145 /* MREC Layer: Record macros with `q`
146 *
147 * ,-------------------------------------------------------------.
148 * | |REC1|REC2| | | | | | | | | | | | |
149 * |-------------------------------------------------------------|
150 * | | | | | | | | | | | | | | |
151 * |-------------------------------------------------------------|
152 * | | |RSTP| | | | | | | | | | |
153 * |-------------------------------------------------------------|
154 * | | | | | | | | | | | | | |
155 * `-------------------------------------------------------------'
156 * | | | | | |
157 * `-------------------------------------------'
158 *
159 */
160
161 [MREC] = KEYMAP(
162 ____, DYN_REC_START1, DYN_REC_START2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
163 ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
164 ____, ____, DYN_REC_STOP, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
165 ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
166 ____, ____, ____, ____, ____)
167
168};
169
170
171
172const uint16_t PROGMEM fn_actions[] = {
173
174};
175
176const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
177 return MACRO_NONE;
178};
179
180// For Dynamic Macros.
181bool process_record_user(uint16_t keycode, keyrecord_t *record) {
182 if (!process_record_dynamic_macro(keycode, record)) {
183 return false;
184 }
185 return true;
186}
diff --git a/keyboards/hhkb/keymaps/smt/keymap.c b/keyboards/hhkb/keymaps/smt/keymap.c
new file mode 100644
index 000000000..a7ea54de8
--- /dev/null
+++ b/keyboards/hhkb/keymaps/smt/keymap.c
@@ -0,0 +1,176 @@
1/* -*- eval: (turn-on-orgtbl); -*-
2 * default HHKB Layout
3 */
4#include "hhkb.h"
5
6#define _QWERTY 0
7#define _COLEMAK 1
8#define _DVORAK 2
9#define _HHKB 3
10
11enum planck_keycodes {
12 QWERTY = SAFE_RANGE,
13 COLEMAK,
14 DVORAK,
15 HHKB
16};
17
18// Fillers to make layering more clear
19#define _______ KC_TRNS
20#define XXXXXXX KC_NO
21
22// Custom macros
23#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
24#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
25#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift)
26#define MEH_GRV MEH_T(KC_GRV) // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift)
27
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29
30 /* Layer QWERTY: Qwerty Layer
31 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
32 | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
33 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
34 | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | |
35 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
36 | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | |
37 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
38 | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn | | |
39 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
40
41 |------+------+-----------------------+------+------|
42 | LAlt | LGUI | ******* Space ******* | RGUI | RAlt |
43 |------+------+-----------------------+------+------|
44 */
45
46 [_QWERTY] = KEYMAP( // Qwerty layer
47 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, MEH_GRV, \
48 HPR_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, \
49 CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, SFT_ENT, \
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(_HHKB), \
51 KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT),
52
53
54
55 /* Layer COLEMAK: Colemak Layer
56 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
57 | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
58 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
59 | Tab | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | Backs | |
60 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
61 | Cont | A | R | S | T | D | H | N | E | I | O | ' | Ent | | |
62 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
63 | Shift | Z | X | C | V | B | K | M | , | . | / | Shift | Fn | | |
64 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
65
66 |------+------+-----------------------+------+------|
67 | LAlt | LGUI | ******* Space ******* | RGUI | RAlt |
68 |------+------+-----------------------+------+------|
69 */
70
71 [_COLEMAK] = KEYMAP( // Colemak layer
72 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, MEH_GRV, \
73 HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, \
74 CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, SFT_ENT, \
75 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_HHKB), \
76 KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT),
77
78
79
80 /* Layer DVORAK: Dvorak Layer
81 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
82 | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [ | ] | \ | ` |
83 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
84 | Tab | ' | , | . | P | Y | F | G | C | R | L | / | = | Backs | |
85 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
86 | Cont | A | O | E | U | I | D | H | T | N | S | - | Ent | | |
87 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
88 | Shift | ; | Q | J | K | X | B | M | W | V | Z | Shift | Fn | | |
89 |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
90
91 |------+------+-----------------------+------+------|
92 | LAlt | LGUI | ******* Space ******* | RGUI | RAlt |
93 |------+------+-----------------------+------+------|
94 */
95
96 [_DVORAK] = KEYMAP( // Dvorak layer
97 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_BSLS, MEH_GRV, \
98 HPR_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_BSPC, \
99 CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, SFT_ENT, \
100 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(_HHKB), \
101 KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT),
102
103
104
105 /* Layer HHKB: HHKB mode (HHKB Fn)
106 |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----|
107 | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
108 |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----|
109 | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | |
110 |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----|
111 | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | |
112 |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----|
113 | | | Qwt | Cmk | Dvk | | + | - | End | PgD | Dow | | | | |
114 |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----|
115
116 |------+------+----------------------+------+------+
117 | **** | **** | ******************** | **** | **** |
118 |------+------+----------------------+------+------+
119
120 */
121
122 [_HHKB] = KEYMAP(
123 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, \
124 KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_BSPC, \
125 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
126 _______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \
127 _______, _______, _______, _______, _______)};
128
129
130const uint16_t PROGMEM fn_actions[] = {
131
132};
133
134const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
135{
136 // MACRODOWN only works in this function
137 switch(id) {
138 case 0:
139 if (record->event.pressed) {
140 register_code(KC_RSFT);
141 } else {
142 unregister_code(KC_RSFT);
143 }
144 break;
145 }
146 return MACRO_NONE;
147};
148
149void persistant_default_layer_set(uint16_t default_layer) {
150 eeconfig_update_default_layer(default_layer);
151 default_layer_set(default_layer);
152}
153
154bool process_record_user(uint16_t keycode, keyrecord_t *record) {
155 switch (keycode) {
156 case QWERTY:
157 if (record->event.pressed) {
158 persistant_default_layer_set(1UL<<_QWERTY);
159 }
160 return false;
161 break;
162 case COLEMAK:
163 if (record->event.pressed) {
164 persistant_default_layer_set(1UL<<_COLEMAK);
165 }
166 return false;
167 break;
168 case DVORAK:
169 if (record->event.pressed) {
170 persistant_default_layer_set(1UL<<_DVORAK);
171 }
172 return false;
173 break;
174 }
175 return true;
176}
diff --git a/keyboards/hhkb/rules.mk b/keyboards/hhkb/rules.mk
index a46271f02..e4190039f 100644
--- a/keyboards/hhkb/rules.mk
+++ b/keyboards/hhkb/rules.mk
@@ -53,7 +53,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
53#OPT_DEFS += -DBOOTLOADER_SIZE=4096 53#OPT_DEFS += -DBOOTLOADER_SIZE=4096
54 54
55# as per original hasu settings 55# as per original hasu settings
56OPT_DEFS += -DBOOTLOADER_SIZE=512 56OPT_DEFS += -DBOOTLOADER_SIZE=4096
57 57
58# Build Options 58# Build Options
59# comment out to disable the options. 59# comment out to disable the options.
diff --git a/keyboards/miuni32/config.h b/keyboards/miuni32/config.h
index 4f9b68551..9f26b2291 100644
--- a/keyboards/miuni32/config.h
+++ b/keyboards/miuni32/config.h
@@ -163,6 +163,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
163#define RGB_DI_PIN D0 // The pin your RGB strip is wired to 163#define RGB_DI_PIN D0 // The pin your RGB strip is wired to
164#define RGBLIGHT_TIMER // Require for fancier stuff (not compatible with audio) 164#define RGBLIGHT_TIMER // Require for fancier stuff (not compatible with audio)
165#define RGBLED_NUM 7 // Number of LEDs 165#define RGBLED_NUM 7 // Number of LEDs
166#define RGBLIGHT_ANIMATIONS
166#define RGBLIGHT_HUE_STEP 10 167#define RGBLIGHT_HUE_STEP 10
167#define RGBLIGHT_SAT_STEP 17 168#define RGBLIGHT_SAT_STEP 17
168#define RGBLIGHT_VAL_STEP 17 169#define RGBLIGHT_VAL_STEP 17
diff --git a/keyboards/miuni32/keymaps/adam-lee/Makefile b/keyboards/miuni32/keymaps/adam-lee/Makefile
new file mode 100644
index 000000000..88a3aea74
--- /dev/null
+++ b/keyboards/miuni32/keymaps/adam-lee/Makefile
@@ -0,0 +1,21 @@
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 # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # 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 = no # 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. Do not enable this with audio at the same time.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
19ifndef QUANTUM_DIR
20 include ../../../../Makefile
21endif
diff --git a/keyboards/miuni32/keymaps/adam-lee/config.h b/keyboards/miuni32/keymaps/adam-lee/config.h
new file mode 100644
index 000000000..df06a2620
--- /dev/null
+++ b/keyboards/miuni32/keymaps/adam-lee/config.h
@@ -0,0 +1,8 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6// place overrides here
7
8#endif \ No newline at end of file
diff --git a/keyboards/miuni32/keymaps/adam-lee/keymap.c b/keyboards/miuni32/keymaps/adam-lee/keymap.c
new file mode 100644
index 000000000..f799b8929
--- /dev/null
+++ b/keyboards/miuni32/keymaps/adam-lee/keymap.c
@@ -0,0 +1,119 @@
1#include "miuni32.h"
2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 /* Level 0: Default Layer
5 * ,---------------------------------------------------------------------------------------.
6 * | Q | W | E | R | T | Y | U | I | O | P | BSP |
7 * |---------------------------------------------------------------------------------------|
8 * | A | S | D | F | G | H | J | K | L | ENT |LT(1|,)|
9 * |---------------------------------------------------------------------------------------|
10 * |LT(3|Z)| X | C | V | NO | SPC | B | N | M | RSFT |LT(2|.)|
11 * |---------------------------------------------------------------------------------------|
12 */
13 [0] ={
14 {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
15 {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, LT(1, KC_COMMA)},
16 {LT(3, KC_Z), KC_X, KC_C, KC_V, KC_NO, KC_SPC, KC_B, KC_N, KC_M, KC_RSFT, LT(2, KC_DOT)}
17 },
18 /* Level 1: Numbers Layer
19 * ,---------------------------------------------------------------------------------------.
20 * | ESC | 7 | 8 | 9 | / | * | . | , | ( | ) | DEL |
21 * |---------------------------------------------------------------------------------------|
22 * | TAB | 4 | 5 | 6 | - | + | HOME | UP | END | PGUP | TRNS |
23 * |---------------------------------------------------------------------------------------|
24 * | LATL | 1 | 2 | 3 | 0 | NO | LEFT | DOWN | RGHT | PGDN | RSHFT |
25 * |---------------------------------------------------------------------------------------|
26 */
27 [1] ={
28 {KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL},
29 {KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS},
30 {KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_RSFT}
31 },
32 /* Level 2: Symbols Layer
33 * ,---------------------------------------------------------------------------------------.
34 * | ! | @ | # | $ | % | ^ | & | * | - | + | = |
35 * |---------------------------------------------------------------------------------------|
36 * | { | } | [ | ] | TRNS | TRNS | \ | ; | : | ` | ? |
37 * |---------------------------------------------------------------------------------------|
38 * | LSFT | LCTL | L | T | TRNS | TAB | N | TRNS | TRNS | RCTL | TRNS |
39 * |---------------------------------------------------------------------------------------|
40 */
41 [2] ={
42 {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_PLUS, KC_EQL},
43 {KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_BSLS, KC_SCLN, KC_COLN, KC_GRV, KC_QUES},
44 {KC_LSFT, KC_LCTL, KC_L, KC_T, KC_TRNS, KC_TAB, KC_N, KC_TRNS, KC_TRNS, KC_RCTL, KC_TRNS}
45 },
46 /* Level 3: RGB Layer
47 * ,---------------------------------------------------------------------------------------.
48 * | RESET | TRNS | TRNS | TRNS | TRNS | F1 | F2 | F3 | F4 | F5 | F6 |
49 * |---------------------------------------------------------------------------------------|
50 * |RGB_TOG|RGB_MOD|RGB_HUI|RGB_HUD| NO |RGB_SAI|RGB_SAD|RGB_VAI|RGB_VAD| TRNS | TRNS |
51 * |---------------------------------------------------------------------------------------|
52 * | TRNS | TRNS | TRNS | TRNS | NO | F7 | F8 | F9 | F10 | F11 | F12 |
53 * |---------------------------------------------------------------------------------------|
54 */
55 [3] ={
56 {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6},
57 {RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_NO, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS},
58 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}
59 }
60};
61
62const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
63{
64 // MACRODOWN only works in this function
65 switch(id) {
66 case 0:
67 if (record->event.pressed) {
68 register_code(KC_RSFT);
69 } else {
70 unregister_code(KC_RSFT);
71 }
72 break;
73 }
74 return MACRO_NONE;
75};
76
77void matrix_init_user(void) {
78}
79
80void matrix_scan_user(void) {
81}
82
83bool process_record_user(uint16_t keycode, keyrecord_t *record) {
84 return true;
85}
86
87void led_set_user(uint8_t usb_led) {
88
89 if (usb_led & (1 << USB_LED_NUM_LOCK)) {
90
91 } else {
92
93 }
94
95 if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
96
97 } else {
98
99 }
100
101 if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
102
103 } else {
104
105 }
106
107 if (usb_led & (1 << USB_LED_COMPOSE)) {
108
109 } else {
110
111 }
112
113 if (usb_led & (1 << USB_LED_KANA)) {
114
115 } else {
116
117 }
118
119}
diff --git a/keyboards/miuni32/keymaps/adam-lee/readme.md b/keyboards/miuni32/keymaps/adam-lee/readme.md
new file mode 100644
index 000000000..4cff8ef5a
--- /dev/null
+++ b/keyboards/miuni32/keymaps/adam-lee/readme.md
@@ -0,0 +1 @@
# The default keymap for miuni32 \ No newline at end of file
diff --git a/keyboards/miuni32/keymaps/default/keymap.c b/keyboards/miuni32/keymaps/default/keymap.c
index 15e2fa45c..f799b8929 100644
--- a/keyboards/miuni32/keymaps/default/keymap.c
+++ b/keyboards/miuni32/keymaps/default/keymap.c
@@ -1,19 +1,62 @@
1#include "miuni32.h" 1#include "miuni32.h"
2 2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4[0] ={ 4 /* Level 0: Default Layer
5 {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, 5 * ,---------------------------------------------------------------------------------------.
6 {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_RSFT, KC_ENT}, 6 * | Q | W | E | R | T | Y | U | I | O | P | BSP |
7 {KC_Z, KC_X, KC_C, KC_V, KC_V, KC_SPC, KC_B, KC_N, KC_M , MO(1), KC_RCTL} 7 * |---------------------------------------------------------------------------------------|
8 }, 8 * | A | S | D | F | G | H | J | K | L | ENT |LT(1|,)|
9[1] ={ 9 * |---------------------------------------------------------------------------------------|
10 {KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL}, 10 * |LT(3|Z)| X | C | V | NO | SPC | B | N | M | RSFT |LT(2|.)|
11 {KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_TRNS}, 11 * |---------------------------------------------------------------------------------------|
12 {RGB_TOG, RGB_HUI, RGB_HUD, RGB_SAI, KC_TRNS, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, RGB_MOD}, 12 */
13 } 13 [0] ={
14}; 14 {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
15const uint16_t PROGMEM fn_actions[] = { 15 {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, LT(1, KC_COMMA)},
16 16 {LT(3, KC_Z), KC_X, KC_C, KC_V, KC_NO, KC_SPC, KC_B, KC_N, KC_M, KC_RSFT, LT(2, KC_DOT)}
17 },
18 /* Level 1: Numbers Layer
19 * ,---------------------------------------------------------------------------------------.
20 * | ESC | 7 | 8 | 9 | / | * | . | , | ( | ) | DEL |
21 * |---------------------------------------------------------------------------------------|
22 * | TAB | 4 | 5 | 6 | - | + | HOME | UP | END | PGUP | TRNS |
23 * |---------------------------------------------------------------------------------------|
24 * | LATL | 1 | 2 | 3 | 0 | NO | LEFT | DOWN | RGHT | PGDN | RSHFT |
25 * |---------------------------------------------------------------------------------------|
26 */
27 [1] ={
28 {KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL},
29 {KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS},
30 {KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_RSFT}
31 },
32 /* Level 2: Symbols Layer
33 * ,---------------------------------------------------------------------------------------.
34 * | ! | @ | # | $ | % | ^ | & | * | - | + | = |
35 * |---------------------------------------------------------------------------------------|
36 * | { | } | [ | ] | TRNS | TRNS | \ | ; | : | ` | ? |
37 * |---------------------------------------------------------------------------------------|
38 * | LSFT | LCTL | L | T | TRNS | TAB | N | TRNS | TRNS | RCTL | TRNS |
39 * |---------------------------------------------------------------------------------------|
40 */
41 [2] ={
42 {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_PLUS, KC_EQL},
43 {KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_BSLS, KC_SCLN, KC_COLN, KC_GRV, KC_QUES},
44 {KC_LSFT, KC_LCTL, KC_L, KC_T, KC_TRNS, KC_TAB, KC_N, KC_TRNS, KC_TRNS, KC_RCTL, KC_TRNS}
45 },
46 /* Level 3: RGB Layer
47 * ,---------------------------------------------------------------------------------------.
48 * | RESET | TRNS | TRNS | TRNS | TRNS | F1 | F2 | F3 | F4 | F5 | F6 |
49 * |---------------------------------------------------------------------------------------|
50 * |RGB_TOG|RGB_MOD|RGB_HUI|RGB_HUD| NO |RGB_SAI|RGB_SAD|RGB_VAI|RGB_VAD| TRNS | TRNS |
51 * |---------------------------------------------------------------------------------------|
52 * | TRNS | TRNS | TRNS | TRNS | NO | F7 | F8 | F9 | F10 | F11 | F12 |
53 * |---------------------------------------------------------------------------------------|
54 */
55 [3] ={
56 {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6},
57 {RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_NO, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS},
58 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}
59 }
17}; 60};
18 61
19const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 62const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
@@ -31,19 +74,46 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
31 return MACRO_NONE; 74 return MACRO_NONE;
32}; 75};
33 76
34
35void matrix_init_user(void) { 77void matrix_init_user(void) {
36
37} 78}
38 79
39void matrix_scan_user(void) { 80void matrix_scan_user(void) {
40
41} 81}
42 82
43bool process_record_user(uint16_t keycode, keyrecord_t *record) { 83bool process_record_user(uint16_t keycode, keyrecord_t *record) {
44 return true; 84 return true;
45} 85}
46 86
47void led_set_user(uint8_t usb_led) { 87void led_set_user(uint8_t usb_led) {
48 88
89 if (usb_led & (1 << USB_LED_NUM_LOCK)) {
90
91 } else {
92
93 }
94
95 if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
96
97 } else {
98
99 }
100
101 if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
102
103 } else {
104
105 }
106
107 if (usb_led & (1 << USB_LED_COMPOSE)) {
108
109 } else {
110
111 }
112
113 if (usb_led & (1 << USB_LED_KANA)) {
114
115 } else {
116
117 }
118
49} 119}
diff --git a/keyboards/miuni32/keymaps/ht_156/Makefile b/keyboards/miuni32/keymaps/ht_156/Makefile
new file mode 100644
index 000000000..88a3aea74
--- /dev/null
+++ b/keyboards/miuni32/keymaps/ht_156/Makefile
@@ -0,0 +1,21 @@
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 # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # 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 = no # 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. Do not enable this with audio at the same time.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
19ifndef QUANTUM_DIR
20 include ../../../../Makefile
21endif
diff --git a/keyboards/miuni32/keymaps/ht_156/config.h b/keyboards/miuni32/keymaps/ht_156/config.h
new file mode 100644
index 000000000..df06a2620
--- /dev/null
+++ b/keyboards/miuni32/keymaps/ht_156/config.h
@@ -0,0 +1,8 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6// place overrides here
7
8#endif \ No newline at end of file
diff --git a/keyboards/miuni32/keymaps/ht_156/keymap.c b/keyboards/miuni32/keymaps/ht_156/keymap.c
new file mode 100644
index 000000000..e40180d49
--- /dev/null
+++ b/keyboards/miuni32/keymaps/ht_156/keymap.c
@@ -0,0 +1,181 @@
1#include "miuni32.h"
2
3// Keyboard layer definitions
4#define BASE 0
5#define NUMBERS 1
6#define SYMBOLS 2
7#define MEDIA 3
8
9// Keyboard macro defintions
10#define GIT_ST M(0)
11#define GIT_PU M(1)
12#define GIT_CM M(2)
13#define HM_DIR M(3)
14
15const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16 /* Level 0: Default Layer
17 * ,---------------------------------------------------------------------------------------.
18 * | Q | W | E | R | T | Y | U | I | O | P | BSP |
19 * |---------------------------------------------------------------------------------------|
20 * | A | S | D | F | G | H | J | K | L | ENT | RSFT |
21 * |---------------------------------------------------------------------------------------|
22 * |LT(2|Z)|LT(3|X)| C | V | B | SPC | N | M | , |LT(1|.)| RCTL |
23 * |---------------------------------------------------------------------------------------|
24 */
25 [BASE] ={
26 {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
27 {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_RSFT},
28 {LT(2, KC_Z), LT(3, KC_X), KC_C, KC_V, KC_B, KC_SPC, KC_N, KC_M, KC_COMMA, LT(1, KC_DOT), KC_RCTL}
29 },
30 /* Level 1: Numbers Layer
31 * ,---------------------------------------------------------------------------------------.
32 * | ESC | 7 | 8 | 9 | / | * | . | , | ( | ) | DEL |
33 * |---------------------------------------------------------------------------------------|
34 * | TAB | 4 | 5 | 6 | - | + | HOME | UP | END | INS | PGUP |
35 * |---------------------------------------------------------------------------------------|
36 * | LATL | 1 | 2 | 3 | 0 | ENT | LEFT | DOWN | RGHT | !TRNS!| PGDN |
37 * |---------------------------------------------------------------------------------------|
38 */
39 [NUMBERS] ={
40 {KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL},
41 {KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_INSERT, KC_PGUP},
42 {KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_ENT, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_PGDN}
43 },
44 /* Level 2: Symbols Layer
45 * ,---------------------------------------------------------------------------------------.
46 * | ! | @ | # | $ | % | ^ | & | * | _ | = | ? |
47 * |---------------------------------------------------------------------------------------|
48 * | RESET | LSFT | ~ | { | } | \ | | | ; | : | ` | " |
49 * |---------------------------------------------------------------------------------------|
50 * | !TRNS!| LCTL | TRNS | [ | ] | TAB | < | > | TRNS | RCTL | TRNS |
51 * |---------------------------------------------------------------------------------------|
52 */
53 [SYMBOLS] ={
54 {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_EQL, KC_QUES},
55 {RESET, KC_LSFT, KC_TILD, KC_LCBR, KC_RCBR, KC_BSLS, KC_PIPE, KC_SCLN, KC_COLN, KC_GRV, KC_DQUO},
56 {KC_TRNS, KC_LCTL, KC_TRNS, KC_LBRC, KC_RBRC, KC_TAB, KC_LABK, KC_RABK, KC_TRNS, KC_RCTL, KC_TRNS}
57 },
58 /* Level 3: Media Layer
59 * ,---------------------------------------------------------------------------------------.
60 * |RGB_TOG|RGB_HUI|RGB_SAI|RGB_VAI| GIT_CM| CALC | WREF | WFAV | MUTE | VOLD | VOLU |
61 * |---------------------------------------------------------------------------------------|
62 * |RGB_MOD|RGB_HUD|RGB_SAD|RGB_VAD| GIT_ST| WHOM | WBAK | WFWD | TRNS | STOP | PLAY |
63 * |---------------------------------------------------------------------------------------|
64 * | TRNS | !TRNS!| TRNS | HM_DIR| GIT_PU| MYCM | WSTP | WSCH | MSEL | MPRV | MNXT |
65 * |---------------------------------------------------------------------------------------|
66 */
67 [MEDIA] ={
68 {RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, GIT_CM, KC_CALC, KC_WREF, KC_WFAV, KC_MUTE, KC_VOLD, KC_VOLU},
69 {RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, GIT_ST, KC_WHOM, KC_WBAK, KC_WFWD, KC_TRNS, KC_MSTP, KC_MPLY},
70 {KC_TRNS, KC_TRNS, KC_TRNS, HM_DIR, GIT_PU, KC_MYCM, KC_WSTP, KC_WSCH, KC_MSEL, KC_MPRV, KC_MNXT}
71 }
72};
73
74void press_and_release_key(uint8_t code)
75{
76 register_code(code);
77 unregister_code(code);
78}
79
80void press_and_release_mod_key(uint8_t mod, uint8_t code)
81{
82 register_code(mod);
83 register_code(code);
84 unregister_code(code);
85 unregister_code(mod);
86}
87
88const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
89{
90 // MACRODOWN only works in this function
91 switch(id)
92 {
93 case 0:
94 if (record->event.pressed)
95 {
96 return MACRO(T(G), T(I), T(T), T(SPC),
97 T(S), T(T), T(A), T(T), T(U), T(S), END);
98 }
99 break;
100 case 1:
101 if (record->event.pressed)
102 {
103 return MACRO(T(G), T(I), T(T), T(SPC),
104 T(P), T(U), T(L), T(L), END);
105 }
106 break;
107 case 2:
108 if (record->event.pressed)
109 {
110 return MACRO(T(G), T(I), T(T), T(SPC),
111 T(C), T(O), T(M), T(M), T(I), T(T), END);
112 }
113 break;
114 case 3:
115 if (record->event.pressed)
116 {
117 /*press_and_release_key(KC_C);
118 press_and_release_key(KC_D);
119 press_and_release_key(KC_SPC);
120 press_and_release_mod_key(KC_LSFT, KC_GRV);
121 press_and_release_key(KC_SLSH);
122 press_and_release_key(KC_Q);
123 press_and_release_key(KC_M);
124 press_and_release_key(KC_K);
125 press_and_release_mod_key(KC_LSFT, KC_MINS);*/
126 return MACRO(I(0),
127 T(C), T(D), T(SPC),
128 D(LSFT), T(GRV), U(LSFT), T(SLSH),
129 T(Q), T(M), T(K), D(LSFT), T(MINS), U(LSFT),
130 T(F), T(I), T(R), T(M), T(W), T(A), T(R), T(E), T(SLSH),
131 T(K), T(E), T(Y), T(B), T(O), T(A), T(R), T(D), T(S), T(SLSH),
132 T(M), T(I), T(U), T(N), T(I), T(3), T(2), T(SLSH),
133 T(K), T(E), T(Y), T(M), T(A), T(P), T(S), END);
134 }
135 }
136 return MACRO_NONE;
137};
138
139void matrix_init_user(void) {
140}
141
142void matrix_scan_user(void) {
143}
144
145bool process_record_user(uint16_t keycode, keyrecord_t *record) {
146 return true;
147}
148
149void led_set_user(uint8_t usb_led) {
150
151 if (usb_led & (1 << USB_LED_NUM_LOCK)) {
152
153 } else {
154
155 }
156
157 if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
158
159 } else {
160
161 }
162
163 if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
164
165 } else {
166
167 }
168
169 if (usb_led & (1 << USB_LED_COMPOSE)) {
170
171 } else {
172
173 }
174
175 if (usb_led & (1 << USB_LED_KANA)) {
176
177 } else {
178
179 }
180
181}
diff --git a/keyboards/miuni32/keymaps/ht_156/readme.md b/keyboards/miuni32/keymaps/ht_156/readme.md
new file mode 100644
index 000000000..e46cc6d53
--- /dev/null
+++ b/keyboards/miuni32/keymaps/ht_156/readme.md
@@ -0,0 +1 @@
# ht_156's keymap for miuni32, using 33 keys
diff --git a/keyboards/miuni32/miuni32.h b/keyboards/miuni32/miuni32.h
index eecb17f81..8e1b4a38c 100644
--- a/keyboards/miuni32/miuni32.h
+++ b/keyboards/miuni32/miuni32.h
@@ -6,10 +6,10 @@
6#define KEYMAP( \ 6#define KEYMAP( \
7 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ 7 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
8 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ 8 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
9 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A ) { \ 9 K20, K21, K22, K23, K25, K26, K27, K28, K29, K2A ) { \
10 { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A }, \ 10 { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A }, \
11 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A }, \ 11 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A }, \
12 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A } \ 12 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_NO, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A } \
13} 13}
14 14
15#endif 15#endif
diff --git a/keyboards/planck/keymaps/dshields/Makefile b/keyboards/planck/keymaps/dshields/Makefile
new file mode 100644
index 000000000..5eaceda53
--- /dev/null
+++ b/keyboards/planck/keymaps/dshields/Makefile
@@ -0,0 +1,11 @@
1ifndef QUANTUM_DIR
2 include ../../../../Makefile
3endif
4
5MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
6COMMAND_ENABLE = yes # Commands for debug and configuration
7BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
8# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
9SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
10TAP_DANCE_ENABLE = no
11AUDIO_ENABLE = no
diff --git a/keyboards/planck/keymaps/dshields/config.h b/keyboards/planck/keymaps/dshields/config.h
new file mode 100644
index 000000000..35358af0b
--- /dev/null
+++ b/keyboards/planck/keymaps/dshields/config.h
@@ -0,0 +1,23 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#ifndef NO_DEBUG
5#define NO_DEBUG
6#endif
7#ifndef NO_PRINT
8#define NO_PRINT
9#endif
10
11#include "../../config.h"
12
13#define TAPPING_TOGGLE 2
14#define TAPPING_TERM 300
15
16#define ONESHOT_TAP_TOGGLE 2
17#define ONESHOT_TIMEOUT 300
18
19#define _______ KC_TRNS
20#define XXXXXXX KC_NO
21
22#endif
23
diff --git a/keyboards/planck/keymaps/dshields/keymap.c b/keyboards/planck/keymaps/dshields/keymap.c
new file mode 100644
index 000000000..e96a67a53
--- /dev/null
+++ b/keyboards/planck/keymaps/dshields/keymap.c
@@ -0,0 +1,98 @@
1#include "planck.h"
2#include "backlight.h"
3#include "config.h"
4#include "action_layer.h"
5#include "eeconfig.h"
6
7extern keymap_config_t keymap_config;
8
9enum planck_layers { DEF, LWR, RSE, FUN };
10enum planck_keycodes { M1 = SAFE_RANGE, M2, M3, M4 };
11
12const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13 /* Default
14 * ,-----------------------------------------------------------------------------------.
15 * | Q | W | E | R | T | Esc | Bksp | Y | U | I | O | P |
16 * |------+------+------+------+------+-------------+------+------+------+------+------|
17 * | A | S | D | F | G | Tab | Enter| H | J | K | L | ; |
18 * |------+------+------+------+------+------|------+------+------+------+------+------|
19 * | Z | X | C | V | B | Shift| Play | N | M | , | . | / |
20 * |------+------+------+------+------+------+------+------+------+------+------+------|
21 * | Ctrl | Super| Alt | Fun | Lower| Space | Raise| Left | Down | Up |Right |
22 * `-----------------------------------------------------------------------------------'
23 */
24 [DEF] = {
25 {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P},
26 {KC_A, KC_S, KC_D, KC_F, KC_G, KC_TAB, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN},
27 {KC_Z, KC_X, KC_C, KC_V, KC_B, OSM(MOD_LSFT), XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH},
28 {KC_LCTL, KC_LGUI, KC_LALT, TT(FUN), TT(LWR), KC_SPC, KC_SPC, TT(RSE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
29 },
30 /* Lower
31 * ,-----------------------------------------------------------------------------------.
32 * | ! | @ | # | $ | % | | | ^ | & | * | ( | ) |
33 * |------+------+------+------+------+-------------+------+------+------+------+------|
34 * | ~ | | | | | | | _ | + | | { | } |
35 * |------+------+------+------+------+------|------+------+------+------+------+------|
36 * | | | | | | | | | | | " | | |
37 * |------+------+------+------+------+------+------+------+------+------+------+------|
38 * | | | | | | | | Home | PgDn | PgUp | End |
39 * `-----------------------------------------------------------------------------------'
40 */
41 [LWR] = {
42 {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN},
43 {S(KC_GRV), _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, _______, S(KC_LBRC), S(KC_RBRC)},
44 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, S(KC_QUOT), S(KC_BSLS)},
45 {_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
46 },
47 /* Raise
48 * ,-----------------------------------------------------------------------------------.
49 * | 1 | 2 | 3 | 4 | 5 | | | 6 | 7 | 8 | 9 | 0 |
50 * |------+------+------+------+------+-------------+------+------+------+------+------|
51 * | ` | | | | | | | - | = | | [ | ] |
52 * |------+------+------+------+------+------|------+------+------+------+------+------|
53 * | | | | | | | | | | | | |
54 * |------+------+------+------+------+------+------+------+------+------+------+------|
55 * | | | | | | | | Home | PgDn | PgUp | End |
56 * `-----------------------------------------------------------------------------------'
57 */
58 [RSE] = {
59 {KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0},
60 {KC_GRV, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, KC_LBRC, KC_RBRC},
61 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_BSLS},
62 {_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
63 },
64 /* Function
65 * ,-----------------------------------------------------------------------------------.
66 * | F1 | F2 | F3 | F4 | F5 | Reset|Delete| F6 | F7 | F8 | F9 | F10 |
67 * |------+------+------+------+------+-------------+------+------+------+------+------|
68 * | F11 | F12 | F13 | F14 | F15 | | | F16 | F17 | F18 | F19 | F20 |
69 * |------+------+------+------+------+------|------+------+------+------+------+------|
70 * |BlTggl|BlStep| | M1 | M2 | | | M3 | M4 |MsBtn1|MsBtn2|MsBtn3|
71 * |------+------+------+------+------+------+------+------+------+------+------+------|
72 * | | | | | | | |MsLeft|MsDown| MsUp |MsRght|
73 * `-----------------------------------------------------------------------------------'
74 */
75 [FUN] = {
76 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, RESET, KC_DEL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10},
77 {KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, _______, _______, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20},
78 {BL_TOGG, BL_STEP, _______, M1, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3},
79 {_______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R}
80 },
81
82};
83
84bool process_record_user(uint16_t keycode, keyrecord_t *record) {
85 switch (keycode) {
86 case M1:
87 if (record->event.pressed) {
88 SEND_STRING(" 2>&1 > ");
89 }
90 return false;
91 break;
92 }
93 return true;
94}
95
96void matrix_init_user(void) {
97}
98
diff --git a/keyboards/planck/keymaps/lae3/keymap.c b/keyboards/planck/keymaps/lae3/keymap.c
index 81f94ccd6..4127a3ae1 100644
--- a/keyboards/planck/keymaps/lae3/keymap.c
+++ b/keyboards/planck/keymaps/lae3/keymap.c
@@ -52,11 +52,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
52 /* Qwerty 52 /* Qwerty
53 * ,-----------------------------------------------------------------------------------. 53 * ,-----------------------------------------------------------------------------------.
54 * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | 54 * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
55 * |------+------+------+------+------+-------------+------+------+------+------+------| 55 * |------+------+------+------+------+------+------+------+------+------+------+------|
56 * | Tab | A | S | D | F | G | H | J | K | L | ; |Enter | 56 * | Tab | A | S | D | F | G | H | J | K | L | ; |Enter |
57 * |------+------+------+------+------+------|------+------+------+------+------+------|
58 * |Shift | Z | X | C | V | B | N | M | , | . | / |Shift |
59 * |------+------+------+------+------+------+------+------+------+------+------+------| 57 * |------+------+------+------+------+------+------+------+------+------+------+------|
58 * |Shift | Z | X | C | V | B | N | M | , | . | / |Shift |
59 * |------+------+------+------+------+-------------+------+------+------+------+------|
60 * | Ctrl | GUI | Alt | Move |Lower | Space |Raise | Move | Alt | GUI | Ctrl | 60 * | Ctrl | GUI | Alt | Move |Lower | Space |Raise | Move | Alt | GUI | Ctrl |
61 * `-----------------------------------------------------------------------------------' 61 * `-----------------------------------------------------------------------------------'
62 */ 62 */
@@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
93 * |------+------+------+------+------+------+------+------+------+------+------+------| 93 * |------+------+------+------+------+------+------+------+------+------+------+------|
94 * | | | | | | | | 3 | 2 | 1 | - | | 94 * | | | | | | | | 3 | 2 | 1 | - | |
95 * |------+------+------+------+------+-------------+------+------+------+------+------| 95 * |------+------+------+------+------+-------------+------+------+------+------+------|
96 * | | | | | | | | 0 | = | + | | 96 * | | | | | | | | 0 | . | + | |
97 * `-----------------------------------------------------------------------------------' 97 * `-----------------------------------------------------------------------------------'
98 */ 98 */
99 [_NUMPAD] = { 99 [_NUMPAD] = {
@@ -124,11 +124,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
124 /* Lower 124 /* Lower
125 * ,-----------------------------------------------------------------------------------. 125 * ,-----------------------------------------------------------------------------------.
126 * | ` | 1 | 2 | 3 | 4 | 5 | - | = | Del | End | PgDn | | 126 * | ` | 1 | 2 | 3 | 4 | 5 | - | = | Del | End | PgDn | |
127 * |------+------+------+------+------+-------------+------+------+------+------+------| 127 * |------+------+------+------+------+------+------+------+------+------+------+------|
128 * | Caps | 6 | 7 | 8 | 9 | 0 | [ | ] | \ | ' | | | 128 * | Caps | 6 | 7 | 8 | 9 | 0 | [ | ] | \ | ' | | |
129 * |------+------+------+------+------+------|------+------+------+------+------+------|
130 * | | F1 | F2 | F3 | F4 | | | F5 | F6 | F7 | F8 | |
131 * |------+------+------+------+------+------+------+------+------+------+------+------| 129 * |------+------+------+------+------+------+------+------+------+------+------+------|
130 * | | F1 | F2 | F3 | F4 | | | F5 | F6 | F7 | F8 | |
131 * |------+------+------+------+------+-------------+------+------+------+------+------|
132 * | | | | | | | | | | | | 132 * | | | | | | | | | | | |
133 * `-----------------------------------------------------------------------------------' 133 * `-----------------------------------------------------------------------------------'
134 */ 134 */
@@ -142,11 +142,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
142 /* Raise 142 /* Raise
143 * ,-----------------------------------------------------------------------------------. 143 * ,-----------------------------------------------------------------------------------.
144 * | ~ | ! | @ | # | $ | % | _ | + | Ins | Home | PgUp | | 144 * | ~ | ! | @ | # | $ | % | _ | + | Ins | Home | PgUp | |
145 * |------+------+------+------+------+-------------+------+------+------+------+------| 145 * |------+------+------+------+------+------+------+------+------+------+------+------|
146 * | Caps | ^ | & | * | ( | ) | { | } | | | " | | | 146 * | Caps | ^ | & | * | ( | ) | { | } | | | " | | |
147 * |------+------+------+------+------+------|------+------+------+------+------+------|
148 * | | F9 | F10 | F11 | F12 | | | | | | | |
149 * |------+------+------+------+------+------+------+------+------+------+------+------| 147 * |------+------+------+------+------+------+------+------+------+------+------+------|
148 * | | F9 | F10 | F11 | F12 | | | | | | | |
149 * |------+------+------+------+------+-------------+------+------+------+------+------|
150 * | | | | | | | | | | | | 150 * | | | | | | | | | | | |
151 * `-----------------------------------------------------------------------------------' 151 * `-----------------------------------------------------------------------------------'
152 */ 152 */
diff --git a/keyboards/planck/keymaps/lae3/readme.md b/keyboards/planck/keymaps/lae3/readme.md
index 429b51456..57a2f38dd 100644
--- a/keyboards/planck/keymaps/lae3/readme.md
+++ b/keyboards/planck/keymaps/lae3/readme.md
@@ -1 +1,111 @@
1Keymap based around mode-switching for extended functionality 1# Lae3
2_Keymap based around mode-switching for extended functionality_
3
4## Base Layout
5
6 ┌-----------------------------------------------------------------------------------┐
7 | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
8 |------+------+------+------+------+------+------+------+------+------+------+------|
9 | Tab | A | S | D | F | G | H | J | K | L | ; |Enter |
10 |------+------+------+------+------+------+------+------+------+------+------+------|
11 |Shift | Z | X | C | V | B | N | M | , | . | / |Shift |
12 |------+------+------+------+------+-------------+------+------+------+------+------|
13 | Ctrl | GUI | Alt | Move |Lower | Space |Raise | Move | Alt | GUI | Ctrl |
14 └-----------------------------------------------------------------------------------┘
15
16This is more similar to a standard keyboard layout than the standard planck
17layout, but I have found that this is better for programming, especially for
18editor shortcuts.
19
20## Lower Layer
21
22 ┌-----------------------------------------------------------------------------------┐
23 | ` | 1 | 2 | 3 | 4 | 5 | - | = | Del | End | PgDn | |
24 |------+------+------+------+------+------+------+------+------+------+------+------|
25 | Caps | 6 | 7 | 8 | 9 | 0 | [ | ] | \ | ' | | |
26 |------+------+------+------+------+------+------+------+------+------+------+------|
27 | | F1 | F2 | F3 | F4 | | | F5 | F6 | F7 | F8 | |
28 |------+------+------+------+------+-------------+------+------+------+------+------|
29 | | | | | | | | | | | |
30 └-----------------------------------------------------------------------------------┘
31
32All the numbers are on one hand so that they can all be easily accessed when
33playing games. The punctuation was placed in a way that is as similar as
34possible the qwerty punctuation layout on a standard keyboard.
35
36## Raise Layer
37
38 ┌-----------------------------------------------------------------------------------┐
39 | ~ | ! | @ | # | $ | % | _ | + | Ins | Home | PgUp | |
40 |------+------+------+------+------+------+------+------+------+------+------+------|
41 | Caps | ^ | & | * | ( | ) | { | } | | | " | | |
42 |------+------+------+------+------+------+------+------+------+------+------+------|
43 | | F9 | F10 | F11 | F12 | | | | | | | |
44 |------+------+------+------+------+-------------+------+------+------+------+------|
45 | | | | | | | | | | | |
46 └-----------------------------------------------------------------------------------┘
47
48This layer with the exception of the function and control keys is effectively
49the lower layer in combination with the shift key, like on the standard planck
50layout.
51
52## Movement Layer
53
54 ┌-----------------------------------------------------------------------------------┐
55 | |MsBut2|Ms Up |MsBut1|MsWhUp| | Home | PgDn | PgUp | End | | |
56 |------+------+------+------+------+------+------+------+------+------+------+------|
57 | |Ms Lft|Ms Dn |Ms Rgt|MsWhDn| | Left | Down | Up | Right| | |
58 |------+------+------+------+------+------+------+------+------+------+------+------|
59 | | | | | | | | | | | | |
60 |------+------+------+------+------+-------------+------+------+------+------+------|
61 | | | | | | | | | | | |
62 └-----------------------------------------------------------------------------------┘
63
64Layer for simplifying movement.
65
66## Meta Layer
67
68 ┌-----------------------------------------------------------------------------------┐
69 |Reset | | | | | | | | | | | |
70 |------+------+------+------+------+------+------+------+------+------+------+------|
71 | |Bcklgt| Mute |Vol Dn|Vol Up| | |Qwerty|Arrow |Numpad| | |
72 |------+------+------+------+------+------+------+------+------+------+------+------|
73 | | | | | | | | | | | | |
74 |------+------+------+------+------+-------------+------+------+------+------+------|
75 | | | | | | | | | | | |
76 └-----------------------------------------------------------------------------------┘
77
78This Layer is activated when pressing both the Lower and Raise keys. The Arrow
79and Numpad keys each activate a layer between the base layer and the Movement
80layer. The Qwerty key disables both of the layers leaving just the base layer
81active.
82
83## Arrow Layer
84
85 ┌-----------------------------------------------------------------------------------┐
86 | | | | | | | | | | | | |
87 |------+------+------+------+------+------+------+------+------+------+------+------|
88 | | | | | | | | | | | | |
89 |------+------+------+------+------+------+------+------+------+------+------+------|
90 | | | | | | | | | | | Up | |
91 |------+------+------+------+------+-------------+------+------+------+------+------|
92 | | | | | | | | | Left | Down | Right|
93 └-----------------------------------------------------------------------------------┘
94
95Replaces the bottom right of the keyboard with arrow keys for games like The
96Binding of Isaac.
97
98## Numpad Layer
99
100 ┌-----------------------------------------------------------------------------------┐
101 | | | | | | |NumLck| 7 | 8 | 9 | / | |
102 |------+------+------+------+------+------+------+------+------+------+------+------|
103 | | | | | | |Enter | 4 | 5 | 6 | * | |
104 |------+------+------+------+------+------+------+------+------+------+------+------|
105 | | | | | | | | 3 | 2 | 1 | - | |
106 |------+------+------+------+------+-------------+------+------+------+------+------|
107 | | | | | | | | 0 | . | + | |
108 └-----------------------------------------------------------------------------------┘
109
110Replaces the majority of the right side of the keyboard with a numpad because
111why not?
diff --git a/keyboards/planck/keymaps/vifon/keymap.c b/keyboards/planck/keymaps/vifon/keymap.c
index ee0c0ac36..ecd5c2cc4 100644
--- a/keyboards/planck/keymaps/vifon/keymap.c
+++ b/keyboards/planck/keymaps/vifon/keymap.c
@@ -107,7 +107,8 @@ const uint16_t PROGMEM fn_actions[] = {
107bool process_record_user(uint16_t keycode, keyrecord_t *record) { 107bool process_record_user(uint16_t keycode, keyrecord_t *record) {
108 static uint16_t key_timer; 108 static uint16_t key_timer;
109 109
110 if (!process_record_dynamic_macro(keycode, record)) { 110 uint16_t macro_kc = (keycode == MO(_DYN) ? DYN_REC_STOP : keycode);
111 if (!process_record_dynamic_macro(macro_kc, record)) {
111 return false; 112 return false;
112 } 113 }
113 114
diff --git a/keyboards/ps2avrGB/keymaps/default/keymap.c b/keyboards/ps2avrGB/keymaps/default/keymap.c
index 5c66cde59..3e4cebc81 100644
--- a/keyboards/ps2avrGB/keymaps/default/keymap.c
+++ b/keyboards/ps2avrGB/keymaps/default/keymap.c
@@ -18,14 +18,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#include "ps2avrGB.h" 18#include "ps2avrGB.h"
19 19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 KEYMAP( \ 21 KC_KEYMAP(
22 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,HOME,END, \ 22 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,HOME,END,
23 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, DEL, \ 23 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, DEL,
24 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, INS, \ 24 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, INS,
25 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, PGUP,\ 25 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, PGUP,
26 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT, UP, PGDN,\ 26 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT, UP, PGDN,
27 LCTL,LALT,LGUI, SPC, RGUI,RALT,RCTL,LEFT,DOWN,RGHT \ 27 LCTL,LALT,LGUI, SPC, RGUI,RALT,RCTL,LEFT,DOWN,RGHT
28 ), 28 )
29}; 29};
30 30
31const uint16_t PROGMEM fn_actions[] = { 31const uint16_t PROGMEM fn_actions[] = {
diff --git a/keyboards/ps2avrGB/ps2avrGB.h b/keyboards/ps2avrGB/ps2avrGB.h
index 6432e3be9..813f31f80 100644
--- a/keyboards/ps2avrGB/ps2avrGB.h
+++ b/keyboards/ps2avrGB/ps2avrGB.h
@@ -22,6 +22,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
22#include "action.h" 22#include "action.h"
23 23
24#define KEYMAP( \ 24#define KEYMAP( \
25 K05, K25, K35, K45, K55, K06, KA6, KA7, K07, KB5, KC5, KD5, KE5, KD1, KE1, KE2, \
26 K04, K14, K24, K34, K44, K54, K16, KB6, KB7, K17, KA4, KB4, KC4, KE4, KD0, \
27 K03, K13, K23, K33, K43, K53, K26, KC6, KC7, K27, KA3, KB3, KC3, KD3, K67, \
28 K02, K12, K22, K32, K42, K52, K36, KD6, KD7, K37, KA2, KB2, KD2, KE0, \
29 K01, K11, K21, K31, K41, K51, K46, KE6, KE7, K47, KA1, KB1, K86, K77, \
30 K00, K10, K20, K56, K57, KB0, KC0, K66, K76, K96 \
31){ \
32 { K00, K10, K20, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KB0, KC0, KD0, KE0 }, \
33 { K01, K11, K21, K31, K41, K51, KC_NO, KC_NO, KC_NO, KC_NO, KA1, KB1, KC_NO, KD1, KE1 }, \
34 { K02, K12, K22, K32, K42, K52, KC_NO, KC_NO, KC_NO, KC_NO, KA2, KB2, KC_NO, KD2, KE2 }, \
35 { K03, K13, K23, K33, K43, K53, KC_NO, KC_NO, KC_NO, KC_NO, KA3, KB3, KC3, KD3, KC_NO }, \
36 { K04, K14, K24, K34, K44, K54, KC_NO, KC_NO, KC_NO, KC_NO, KA4, KB4, KC4, KC_NO, KE4 }, \
37 { K05, KC_NO, K25, K35, K45, K55, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KB5, KC5, KD5, KE5 }, \
38 { K06, K16, K26, K36, K46, K56, K66, K76, K86, K96, KA6, KB6, KC6, KD6, KE6 }, \
39 { K07, K17, K27, K37, K47, K57, K67, K77, KC_NO, KC_NO, KA7, KB7, KC7, KD7, KE7 } \
40}
41
42#define KC_KEYMAP( \
25 K05, K25, K35, K45, K55, K06, KA6, KA7, K07, KB5, KC5, KD5, KE5, KD1, KE1, KE2, \ 43 K05, K25, K35, K45, K55, K06, KA6, KA7, K07, KB5, KC5, KD5, KE5, KD1, KE1, KE2, \
26 K04, K14, K24, K34, K44, K54, K16, KB6, KB7, K17, KA4, KB4, KC4, KE4, KD0, \ 44 K04, K14, K24, K34, K44, K54, K16, KB6, KB7, K17, KA4, KB4, KC4, KE4, KD0, \
27 K03, K13, K23, K33, K43, K53, K26, KC6, KC7, K27, KA3, KB3, KC3, KD3, K67, \ 45 K03, K13, K23, K33, K43, K53, K26, KC6, KC7, K27, KA3, KB3, KC3, KD3, K67, \
diff --git a/keyboards/s60-x/default/rules.mk b/keyboards/s60-x/default/rules.mk
deleted file mode 100644
index b8ff76260..000000000
--- a/keyboards/s60-x/default/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1RGBLIGHT_ENABLE ?= no \ No newline at end of file
diff --git a/keyboards/s60-x/rgb/rules.mk b/keyboards/s60-x/rgb/rules.mk
deleted file mode 100644
index c303af4bc..000000000
--- a/keyboards/s60-x/rgb/rules.mk
+++ /dev/null
@@ -1,56 +0,0 @@
1# MCU name
2MCU = atmega32u4
3
4# Processor frequency.
5# This will define a symbol, F_CPU, in all source code files equal to the
6# processor frequency in Hz. You can then use this symbol in your source code to
7# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
8# automatically to create a 32-bit value in your source code.
9#
10# This will be an integer division of F_USB below, as it is sourced by
11# F_USB after it has run through any CPU prescalers. Note that this value
12# does not *change* the processor frequency - it should merely be updated to
13# reflect the processor speed set externally so that the code can use accurate
14# software delays.
15F_CPU = 16000000
16
17#
18# LUFA specific
19#
20# Target architecture (see library "Board Types" documentation).
21ARCH = AVR8
22
23# Input clock frequency.
24# This will define a symbol, F_USB, in all source code files equal to the
25# input clock frequency (before any prescaling is performed) in Hz. This value may
26# differ from F_CPU if prescaling is used on the latter, and is required as the
27# raw input clock is fed directly to the PLL sections of the AVR for high speed
28# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
29# at the end, this will be done automatically to create a 32-bit value in your
30# source code.
31#
32# If no clock division is performed on the input clock inside the AVR (via the
33# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
34F_USB = $(F_CPU)
35
36# Interrupt driven control endpoint task(+60)
37OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
38
39
40# Boot Section Size in *bytes*
41OPT_DEFS += -DBOOTLOADER_SIZE=4096
42
43
44# Build Options
45# comment out to disable the options.
46#
47BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
48MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
49EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
50CONSOLE_ENABLE ?= no # Console for debug(+400)
51COMMAND_ENABLE ?= no # Commands for debug and configuration
52SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
53NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
54BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
55AUDIO_ENABLE ?= no
56RGBLIGHT_ENABLE ?= yes \ No newline at end of file
diff --git a/keyboards/s60-x/s60-x.c b/keyboards/s60-x/s60-x.c
deleted file mode 100644
index f031dd770..000000000
--- a/keyboards/s60-x/s60-x.c
+++ /dev/null
@@ -1 +0,0 @@
1#include "s60-x.h" \ No newline at end of file
diff --git a/keyboards/s60-x/s60-x_precompiled.zip b/keyboards/s60-x/s60-x_precompiled.zip
deleted file mode 100644
index 00d99ca8a..000000000
--- a/keyboards/s60-x/s60-x_precompiled.zip
+++ /dev/null
Binary files differ
diff --git a/keyboards/s60-x/Makefile b/keyboards/s60_x/Makefile
index 879e493a2..879e493a2 100644
--- a/keyboards/s60-x/Makefile
+++ b/keyboards/s60_x/Makefile
diff --git a/keyboards/s60-x/config.h b/keyboards/s60_x/config.h
index 8e7bc78be..8b97b3c81 100644
--- a/keyboards/s60-x/config.h
+++ b/keyboards/s60_x/config.h
@@ -32,6 +32,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
32#define MATRIX_ROWS 5 32#define MATRIX_ROWS 5
33#define MATRIX_COLS 15 33#define MATRIX_COLS 15
34 34
35/* number of backlight levels */
36#define BACKLIGHT_PIN B7
37#ifdef BACKLIGHT_PIN
38#define BACKLIGHT_LEVELS 3
39#endif
40
35/* COL2ROW or ROW2COL */ 41/* COL2ROW or ROW2COL */
36#define DIODE_DIRECTION COL2ROW 42#define DIODE_DIRECTION COL2ROW
37 43
@@ -43,4 +49,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 49 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 50)
45 51
52#ifdef SUBPROJECT_default
53 #include "default/config.h"
54#endif
55#ifdef SUBPROJECT_rgb
56 #include "rgb/config.h"
57#endif
58
46#endif 59#endif
diff --git a/keyboards/s60-x/default/Makefile b/keyboards/s60_x/default/Makefile
index 191c6bb66..191c6bb66 100644
--- a/keyboards/s60-x/default/Makefile
+++ b/keyboards/s60_x/default/Makefile
diff --git a/keyboards/s60-x/default/config.h b/keyboards/s60_x/default/config.h
index 436c6fa8b..436c6fa8b 100644
--- a/keyboards/s60-x/default/config.h
+++ b/keyboards/s60_x/default/config.h
diff --git a/keyboards/s60-x/default/default.c b/keyboards/s60_x/default/default.c
index 253f5495c..253f5495c 100644
--- a/keyboards/s60-x/default/default.c
+++ b/keyboards/s60_x/default/default.c
diff --git a/keyboards/s60-x/default/default.h b/keyboards/s60_x/default/default.h
index 86233ef7e..86233ef7e 100644
--- a/keyboards/s60-x/default/default.h
+++ b/keyboards/s60_x/default/default.h
diff --git a/keyboards/s60_x/default/rules.mk b/keyboards/s60_x/default/rules.mk
new file mode 100644
index 000000000..aaa3764df
--- /dev/null
+++ b/keyboards/s60_x/default/rules.mk
@@ -0,0 +1,9 @@
1CONSOLE_ENABLE ?= no # Console for debug(+400)
2COMMAND_ENABLE ?= no # Commands for debug and configuration
3NKRO_ENABLE ?= no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
4BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
5RGBLIGHT_ENABLE ?= no
6
7ifndef QUANTUM_DIR
8 include ../../../Makefile
9endif \ No newline at end of file
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/Makefile b/keyboards/s60_x/keymaps/ansi_qwertz/Makefile
index 6a078bcc3..6a078bcc3 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/Makefile
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/Makefile
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/config.h b/keyboards/s60_x/keymaps/ansi_qwertz/config.h
index 6c01d579f..6c01d579f 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/config.h
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/config.h
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png
index 168780c82..168780c82 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png
Binary files differ
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg
index f03858993..f03858993 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg
index 2304b2a4c..2304b2a4c 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.png b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.png
index 875eb3652..875eb3652 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.png
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.png
Binary files differ
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.svg
index 1ca6a9c87..1ca6a9c87 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.svg
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNG b/keyboards/s60_x/keymaps/ansi_qwertz/docs/base_layer.PNG
index c730c2d65..c730c2d65 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNG
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/docs/base_layer.PNG
Binary files differ
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNG b/keyboards/s60_x/keymaps/ansi_qwertz/docs/function_layer.PNG
index fae2439ca..fae2439ca 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNG
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/docs/function_layer.PNG
Binary files differ
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/gaming_layer.PNG b/keyboards/s60_x/keymaps/ansi_qwertz/docs/gaming_layer.PNG
index 59b202be2..59b202be2 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/docs/gaming_layer.PNG
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/docs/gaming_layer.PNG
Binary files differ
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c b/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c
index 317a245be..ebb3aece3 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c
@@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>. 14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/ 15*/
16 16
17#include "s60-x.h" 17#include "s60_x.h"
18 18
19//make keymap a little easier to read 19//make keymap a little easier to read
20#define _______ KC_TRNS 20#define _______ KC_TRNS
diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md b/keyboards/s60_x/keymaps/ansi_qwertz/readme.md
index b22010612..b22010612 100644
--- a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md
+++ b/keyboards/s60_x/keymaps/ansi_qwertz/readme.md
diff --git a/keyboards/s60-x/keymaps/custom/keymap.c b/keyboards/s60_x/keymaps/custom/keymap.c
index fb2a40b85..66eac3335 100644
--- a/keyboards/s60-x/keymaps/custom/keymap.c
+++ b/keyboards/s60_x/keymaps/custom/keymap.c
@@ -1,4 +1,4 @@
1#include "s60-x.h" 1#include "s60_x.h"
2 2
3/* Main layer: Test layout, using all keys. 3/* Main layer: Test layout, using all keys.
4 4
diff --git a/keyboards/s60-x/keymaps/custom/readme.md b/keyboards/s60_x/keymaps/custom/readme.md
index cf87bd915..cf87bd915 100644
--- a/keyboards/s60-x/keymaps/custom/readme.md
+++ b/keyboards/s60_x/keymaps/custom/readme.md
diff --git a/keyboards/s60-x/keymaps/dbroqua/keymap.c b/keyboards/s60_x/keymaps/dbroqua/keymap.c
index 940119e52..8d1887e75 100644
--- a/keyboards/s60-x/keymaps/dbroqua/keymap.c
+++ b/keyboards/s60_x/keymaps/dbroqua/keymap.c
@@ -1,4 +1,4 @@
1#include "s60-x.h" 1#include "s60_x.h"
2 2
3#define _DEFAULT 0 3#define _DEFAULT 0
4#define _FN 1 4#define _FN 1
@@ -66,19 +66,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
66 */ 66 */
67 [_SFX] = KEYMAP( 67 [_SFX] = KEYMAP(
68 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ 68 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
69 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ 69 ______, BL_TOGG,BL_STEP,BL_DEC, BL_INC, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
70 ______, F(0), F(1), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ 70 ______, F(0), F(1), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
71 ______, ______, F(2), F(3), F(4), F(5), F(6), F(7), ______, ______, ______, ______, ______, ______, ______, \ 71 ______, ______, F(2), F(3), F(4), F(5), F(6), F(7), ______, ______, ______, ______, ______, ______, ______, \
72 ______, ______, ______, ______, ______, ______, ______, ______ \ 72 ______, ______, ______, ______, ______, ______, ______, ______ \
73 ) 73 )
74}; 74};
75 75
76const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { 76const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
77 keyevent_t event = record->event;
78
79 switch (id) {
80
81 }
82 return MACRO_NONE; 77 return MACRO_NONE;
83} 78}
84 79
@@ -108,42 +103,58 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
108 switch (id) { 103 switch (id) {
109 case RGBLED_TOGGLE: 104 case RGBLED_TOGGLE:
110 if (record->event.pressed) { 105 if (record->event.pressed) {
106 #ifdef RGB_ENABLE
111 rgblight_toggle(); 107 rgblight_toggle();
108 #endif
112 } 109 }
113 break; 110 break;
114 case RGBLED_INCREASE_HUE: 111 case RGBLED_INCREASE_HUE:
115 if (record->event.pressed) { 112 if (record->event.pressed) {
113 #ifdef RGB_ENABLE
116 rgblight_increase_hue(); 114 rgblight_increase_hue();
115 #endif
117 } 116 }
118 break; 117 break;
119 case RGBLED_DECREASE_HUE: 118 case RGBLED_DECREASE_HUE:
120 if (record->event.pressed) { 119 if (record->event.pressed) {
120 #ifdef RGB_ENABLE
121 rgblight_decrease_hue(); 121 rgblight_decrease_hue();
122 #endif
122 } 123 }
123 break; 124 break;
124 case RGBLED_INCREASE_SAT: 125 case RGBLED_INCREASE_SAT:
125 if (record->event.pressed) { 126 if (record->event.pressed) {
127 #ifdef RGB_ENABLE
126 rgblight_increase_sat(); 128 rgblight_increase_sat();
129 #endif
127 } 130 }
128 break; 131 break;
129 case RGBLED_DECREASE_SAT: 132 case RGBLED_DECREASE_SAT:
130 if (record->event.pressed) { 133 if (record->event.pressed) {
134 #ifdef RGB_ENABLE
131 rgblight_decrease_sat(); 135 rgblight_decrease_sat();
136 #endif
132 } 137 }
133 break; 138 break;
134 case RGBLED_INCREASE_VAL: 139 case RGBLED_INCREASE_VAL:
135 if (record->event.pressed) { 140 if (record->event.pressed) {
141 #ifdef RGB_ENABLE
136 rgblight_increase_val(); 142 rgblight_increase_val();
143 #endif
137 } 144 }
138 break; 145 break;
139 case RGBLED_DECREASE_VAL: 146 case RGBLED_DECREASE_VAL:
140 if (record->event.pressed) { 147 if (record->event.pressed) {
148 #ifdef RGB_ENABLE
141 rgblight_decrease_val(); 149 rgblight_decrease_val();
150 #endif
142 } 151 }
143 break; 152 break;
144 case RGBLED_STEP_MODE: 153 case RGBLED_STEP_MODE:
145 if (record->event.pressed) { 154 if (record->event.pressed) {
155 #ifdef RGB_ENABLE
146 rgblight_step(); 156 rgblight_step();
157 #endif
147 } 158 }
148 break; 159 break;
149 } 160 }
diff --git a/keyboards/s60-x/keymaps/default/keymap.c b/keyboards/s60_x/keymaps/default/keymap.c
index eb0c6b056..a616e79b3 100644
--- a/keyboards/s60-x/keymaps/default/keymap.c
+++ b/keyboards/s60_x/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
1#include "s60-x.h" 1#include "s60_x.h"
2 2
3/* 0: Main layer 3/* 0: Main layer
4┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ 4┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
diff --git a/keyboards/s60-x/keymaps/default/readme.md b/keyboards/s60_x/keymaps/default/readme.md
index 01cda9df9..01cda9df9 100644
--- a/keyboards/s60-x/keymaps/default/readme.md
+++ b/keyboards/s60_x/keymaps/default/readme.md
diff --git a/keyboards/s60-x/keymaps/hasu/keymap.c b/keyboards/s60_x/keymaps/hasu/keymap.c
index cbeaae028..ac90dc6b2 100644
--- a/keyboards/s60-x/keymaps/hasu/keymap.c
+++ b/keyboards/s60_x/keymaps/hasu/keymap.c
@@ -1,4 +1,4 @@
1#include "s60-x.h" 1#include "s60_x.h"
2 2
3/* 3/*
4 * Hasu 4 * Hasu
diff --git a/keyboards/s60-x/keymaps/hasu/readme.md b/keyboards/s60_x/keymaps/hasu/readme.md
index 64969b616..64969b616 100644
--- a/keyboards/s60-x/keymaps/hasu/readme.md
+++ b/keyboards/s60_x/keymaps/hasu/readme.md
diff --git a/keyboards/s60-x/keymaps/hhkb/keymap.c b/keyboards/s60_x/keymaps/hhkb/keymap.c
index 9afd1247f..dc1bfffc4 100644
--- a/keyboards/s60-x/keymaps/hhkb/keymap.c
+++ b/keyboards/s60_x/keymaps/hhkb/keymap.c
@@ -1,4 +1,4 @@
1#include "s60-x.h" 1#include "s60_x.h"
2 2
3/* 3/*
4 * HHKB Layout 4 * HHKB Layout
diff --git a/keyboards/s60-x/keymaps/hhkb/readme.md b/keyboards/s60_x/keymaps/hhkb/readme.md
index 2bceb26dd..2bceb26dd 100644
--- a/keyboards/s60-x/keymaps/hhkb/readme.md
+++ b/keyboards/s60_x/keymaps/hhkb/readme.md
diff --git a/keyboards/s60-x/keymaps/iso/keymap.c b/keyboards/s60_x/keymaps/iso/keymap.c
index 43a9c48b0..f6fc74172 100644
--- a/keyboards/s60-x/keymaps/iso/keymap.c
+++ b/keyboards/s60_x/keymaps/iso/keymap.c
@@ -1,4 +1,4 @@
1#include "s60-x.h" 1#include "s60_x.h"
2 2
3/* 0: Main layer 3/* 0: Main layer
4┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ 4┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
diff --git a/keyboards/s60-x/keymaps/iso/readme.md b/keyboards/s60_x/keymaps/iso/readme.md
index 2c06bf86f..2c06bf86f 100644
--- a/keyboards/s60-x/keymaps/iso/readme.md
+++ b/keyboards/s60_x/keymaps/iso/readme.md
diff --git a/keyboards/s60-x/keymaps/jpec/keymap.c b/keyboards/s60_x/keymaps/jpec/keymap.c
index c8fc13328..21e77c10b 100644
--- a/keyboards/s60-x/keymaps/jpec/keymap.c
+++ b/keyboards/s60_x/keymaps/jpec/keymap.c
@@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>. 14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/ 15*/
16 16
17#include "s60-x.h" 17#include "s60_x.h"
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 /* Layout 0: Default Layer 20 /* Layout 0: Default Layer
diff --git a/keyboards/s60-x/keymaps/jpec/readme.md b/keyboards/s60_x/keymaps/jpec/readme.md
index 73318dad7..73318dad7 100644
--- a/keyboards/s60-x/keymaps/jpec/readme.md
+++ b/keyboards/s60_x/keymaps/jpec/readme.md
diff --git a/keyboards/s60-x/keymaps/plain/keymap.c b/keyboards/s60_x/keymaps/plain/keymap.c
index 790ac88e7..d5075a07b 100644
--- a/keyboards/s60-x/keymaps/plain/keymap.c
+++ b/keyboards/s60_x/keymaps/plain/keymap.c
@@ -1,4 +1,4 @@
1#include "s60-x.h" 1#include "s60_x.h"
2 2
3/* Main layer: 3/* Main layer:
4┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ 4┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
diff --git a/keyboards/s60-x/keymaps/plain/readme.md b/keyboards/s60_x/keymaps/plain/readme.md
index ab13323e3..ab13323e3 100644
--- a/keyboards/s60-x/keymaps/plain/readme.md
+++ b/keyboards/s60_x/keymaps/plain/readme.md
diff --git a/keyboards/s60-x/keymaps/poker/keymap.c b/keyboards/s60_x/keymaps/poker/keymap.c
index 0a8691792..5b917704e 100644
--- a/keyboards/s60-x/keymaps/poker/keymap.c
+++ b/keyboards/s60_x/keymaps/poker/keymap.c
@@ -1,4 +1,4 @@
1#include "s60-x.h" 1#include "s60_x.h"
2 2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 /* 0: qwerty 4 /* 0: qwerty
diff --git a/keyboards/s60-x/keymaps/poker/readme.md b/keyboards/s60_x/keymaps/poker/readme.md
index 0d8be9d0f..0d8be9d0f 100644
--- a/keyboards/s60-x/keymaps/poker/readme.md
+++ b/keyboards/s60_x/keymaps/poker/readme.md
diff --git a/keyboards/s60-x/keymaps/poker_bit/keymap.c b/keyboards/s60_x/keymaps/poker_bit/keymap.c
index 7626038f4..1f7b1b633 100644
--- a/keyboards/s60-x/keymaps/poker_bit/keymap.c
+++ b/keyboards/s60_x/keymaps/poker_bit/keymap.c
@@ -1,4 +1,4 @@
1#include "s60-x.h" 1#include "s60_x.h"
2 2
3// Poker fix with toggle and bit operation 3// Poker fix with toggle and bit operation
4// Fn + Esc = ` 4// Fn + Esc = `
diff --git a/keyboards/s60-x/keymaps/poker_bit/readme.md b/keyboards/s60_x/keymaps/poker_bit/readme.md
index 0d8be9d0f..0d8be9d0f 100644
--- a/keyboards/s60-x/keymaps/poker_bit/readme.md
+++ b/keyboards/s60_x/keymaps/poker_bit/readme.md
diff --git a/keyboards/s60-x/keymaps/poker_set/keymap.c b/keyboards/s60_x/keymaps/poker_set/keymap.c
index 09423e75b..52eee5321 100644
--- a/keyboards/s60-x/keymaps/poker_set/keymap.c
+++ b/keyboards/s60_x/keymaps/poker_set/keymap.c
@@ -1,4 +1,4 @@
1#include "s60-x.h" 1#include "s60_x.h"
2 2
3// Poker fix with set(state transition) 3// Poker fix with set(state transition)
4// Fn + Esc = ` 4// Fn + Esc = `
diff --git a/keyboards/s60-x/keymaps/poker_set/readme.md b/keyboards/s60_x/keymaps/poker_set/readme.md
index 0d8be9d0f..0d8be9d0f 100644
--- a/keyboards/s60-x/keymaps/poker_set/readme.md
+++ b/keyboards/s60_x/keymaps/poker_set/readme.md
diff --git a/keyboards/s60-x/keymaps/spacefn/keymap.c b/keyboards/s60_x/keymaps/spacefn/keymap.c
index b6dc7ca7e..28369580e 100644
--- a/keyboards/s60-x/keymaps/spacefn/keymap.c
+++ b/keyboards/s60_x/keymaps/spacefn/keymap.c
@@ -1,4 +1,4 @@
1#include "s60-x.h" 1#include "s60_x.h"
2 2
3/* 3/*
4 * SpaceFN 4 * SpaceFN
diff --git a/keyboards/s60-x/keymaps/spacefn/readme.md b/keyboards/s60_x/keymaps/spacefn/readme.md
index d04bd9486..d04bd9486 100644
--- a/keyboards/s60-x/keymaps/spacefn/readme.md
+++ b/keyboards/s60_x/keymaps/spacefn/readme.md
diff --git a/keyboards/s60-x/readme.md b/keyboards/s60_x/readme.md
index 408ad13ac..e30b2f76c 100644
--- a/keyboards/s60-x/readme.md
+++ b/keyboards/s60_x/readme.md
@@ -5,11 +5,6 @@ DIY compact keyboard designed by VinnyCordeiro for Sentraq. Most of the keymaps
5## S60X Resources 5## S60X Resources
6- [Massdrop page](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open) 6- [Massdrop page](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open)
7 7
8## Quickstart
9
10If you just want to test a few layouts, the archive [s60-x_precompiled.zip](s60-x_precompiled.zip) contains pre-compiled .hex-files for all available keymaps. Not all of them are tested.
11You only need to flash them onto your keyboard, which is explained below, there's no need to setup a build environment. For a full list
12
13## Flashing your keyboard 8## Flashing your keyboard
14The recommended programs for flashing your keyboard are [Atmel FLIP](http://www.atmel.com/tools/FLIP.aspx) (Windows) and [dfu-programmer](http://dfu-programmer.sourceforge.net/) (Linux/Windows). 9The recommended programs for flashing your keyboard are [Atmel FLIP](http://www.atmel.com/tools/FLIP.aspx) (Windows) and [dfu-programmer](http://dfu-programmer.sourceforge.net/) (Linux/Windows).
15 10
diff --git a/keyboards/s60-x/rgb/Makefile b/keyboards/s60_x/rgb/Makefile
index bd09e5885..bd09e5885 100644
--- a/keyboards/s60-x/rgb/Makefile
+++ b/keyboards/s60_x/rgb/Makefile
diff --git a/keyboards/s60-x/rgb/config.h b/keyboards/s60_x/rgb/config.h
index 26b246e57..81efc87d5 100644
--- a/keyboards/s60-x/rgb/config.h
+++ b/keyboards/s60_x/rgb/config.h
@@ -9,12 +9,13 @@
9/* key matrix pins */ 9/* key matrix pins */
10#define MATRIX_ROW_PINS { B5, B4, D7, D6, D4 } 10#define MATRIX_ROW_PINS { B5, B4, D7, D6, D4 }
11#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, B6, C6, C7, F1, F0, E6, B3, B2, B1, B0 } 11#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, B6, C6, C7, F1, F0, E6, B3, B2, B1, B0 }
12#define UNUSED_PINS
12 13
13/* number of backlight levels */ 14/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
14#define BACKLIGHT_PIN B7 15#define LOCKING_SUPPORT_ENABLE
15#ifdef BACKLIGHT_PIN 16
16#define BACKLIGHT_LEVELS 3 17/* Locking resynchronize hack */
17#endif 18#define LOCKING_RESYNC_ENABLE
18 19
19/* prevent stuck modifiers */ 20/* prevent stuck modifiers */
20#define PREVENT_STUCK_MODIFIERS 21#define PREVENT_STUCK_MODIFIERS
diff --git a/keyboards/s60-x/rgb/rgb.c b/keyboards/s60_x/rgb/rgb.c
index 0117e14ae..0117e14ae 100644
--- a/keyboards/s60-x/rgb/rgb.c
+++ b/keyboards/s60_x/rgb/rgb.c
diff --git a/keyboards/s60-x/rgb/rgb.h b/keyboards/s60_x/rgb/rgb.h
index cb7a5f567..cb7a5f567 100644
--- a/keyboards/s60-x/rgb/rgb.h
+++ b/keyboards/s60_x/rgb/rgb.h
diff --git a/keyboards/s60_x/rgb/rules.mk b/keyboards/s60_x/rgb/rules.mk
new file mode 100644
index 000000000..6953cc6d6
--- /dev/null
+++ b/keyboards/s60_x/rgb/rules.mk
@@ -0,0 +1,9 @@
1CONSOLE_ENABLE ?= no # Console for debug(+400)
2COMMAND_ENABLE ?= no # Commands for debug and configuration
3NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
4BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
5RGBLIGHT_ENABLE ?= yes # Enable RGB light
6
7ifndef QUANTUM_DIR
8 include ../../../Makefile
9endif \ No newline at end of file
diff --git a/keyboards/s60-x/rules.mk b/keyboards/s60_x/rules.mk
index 7ec93933a..0c568efe9 100644
--- a/keyboards/s60-x/rules.mk
+++ b/keyboards/s60_x/rules.mk
@@ -56,13 +56,9 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
56BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) 56BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
57MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) 57MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
58EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) 58EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
59CONSOLE_ENABLE ?= yes # Console for debug(+400)
60COMMAND_ENABLE ?= yes # Commands for debug and configuration
61# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 59# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
62SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend 60SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
63# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 61# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
64NKRO_ENABLE ?= no # USB Nkey Rollover
65BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
66MIDI_ENABLE ?= no # MIDI controls 62MIDI_ENABLE ?= no # MIDI controls
67UNICODE_ENABLE ?= no # Unicode 63UNICODE_ENABLE ?= no # Unicode
68BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID 64BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/s60_x/s60_x.c b/keyboards/s60_x/s60_x.c
new file mode 100644
index 000000000..595418bfa
--- /dev/null
+++ b/keyboards/s60_x/s60_x.c
@@ -0,0 +1 @@
#include "s60_x.h" \ No newline at end of file
diff --git a/keyboards/s60-x/s60-x.h b/keyboards/s60_x/s60_x.h
index 5bf8cfcef..5bf8cfcef 100644
--- a/keyboards/s60-x/s60-x.h
+++ b/keyboards/s60_x/s60_x.h
diff --git a/keyboards/xd60/readme.md b/keyboards/xd60/readme.md
index 224498caa..dcc45ead2 100644
--- a/keyboards/xd60/readme.md
+++ b/keyboards/xd60/readme.md
@@ -1,6 +1,6 @@
1# QMK Firmware for XIUDI's 60% XD60 PCB 1# QMK Firmware for XIUDI's 60% XD60 PCB
2 2
3![Top View of a pair of XD60 Keyboard](./xd60.JPG) 3![Top View of a pair of XD60 Keyboard](./xd60.jpg)
4 4
5## Quantum MK Firmware 5## Quantum MK Firmware
6For the full Quantum feature list, see [the parent readme.md](/readme.md). 6For the full Quantum feature list, see [the parent readme.md](/readme.md).
diff --git a/quantum/dynamic_macro.h b/quantum/dynamic_macro.h
index 64093f293..f242405de 100644
--- a/quantum/dynamic_macro.h
+++ b/quantum/dynamic_macro.h
@@ -40,6 +40,7 @@
40enum dynamic_macro_keycodes { 40enum dynamic_macro_keycodes {
41 DYN_REC_START1 = DYNAMIC_MACRO_RANGE, 41 DYN_REC_START1 = DYNAMIC_MACRO_RANGE,
42 DYN_REC_START2, 42 DYN_REC_START2,
43 DYN_REC_STOP,
43 DYN_MACRO_PLAY1, 44 DYN_MACRO_PLAY1,
44 DYN_MACRO_PLAY2, 45 DYN_MACRO_PLAY2,
45}; 46};
@@ -47,11 +48,22 @@ enum dynamic_macro_keycodes {
47/* Blink the LEDs to notify the user about some event. */ 48/* Blink the LEDs to notify the user about some event. */
48void dynamic_macro_led_blink(void) 49void dynamic_macro_led_blink(void)
49{ 50{
51#ifdef BACKLIGHT_ENABLE
50 backlight_toggle(); 52 backlight_toggle();
51 _delay_ms(100); 53 _delay_ms(100);
52 backlight_toggle(); 54 backlight_toggle();
55#endif
53} 56}
54 57
58/* Convenience macros used for retrieving the debug info. All of them
59 * need a `direction` variable accessible at the call site.
60 */
61#define DYNAMIC_MACRO_CURRENT_SLOT() (direction > 0 ? 1 : 2)
62#define DYNAMIC_MACRO_CURRENT_LENGTH(BEGIN, POINTER) \
63 ((int)(direction * ((POINTER) - (BEGIN))))
64#define DYNAMIC_MACRO_CURRENT_CAPACITY(BEGIN, END2) \
65 ((int)(direction * ((END2) - (BEGIN)) + 1))
66
55/** 67/**
56 * Start recording of the dynamic macro. 68 * Start recording of the dynamic macro.
57 * 69 *
@@ -61,6 +73,8 @@ void dynamic_macro_led_blink(void)
61void dynamic_macro_record_start( 73void dynamic_macro_record_start(
62 keyrecord_t **macro_pointer, keyrecord_t *macro_buffer) 74 keyrecord_t **macro_pointer, keyrecord_t *macro_buffer)
63{ 75{
76 dprintln("dynamic macro recording: started");
77
64 dynamic_macro_led_blink(); 78 dynamic_macro_led_blink();
65 79
66 clear_keyboard(); 80 clear_keyboard();
@@ -78,6 +92,8 @@ void dynamic_macro_record_start(
78void dynamic_macro_play( 92void dynamic_macro_play(
79 keyrecord_t *macro_buffer, keyrecord_t *macro_end, int8_t direction) 93 keyrecord_t *macro_buffer, keyrecord_t *macro_end, int8_t direction)
80{ 94{
95 dprintf("dynamic macro: slot %d playback\n", DYNAMIC_MACRO_CURRENT_SLOT());
96
81 uint32_t saved_layer_state = layer_state; 97 uint32_t saved_layer_state = layer_state;
82 98
83 clear_keyboard(); 99 clear_keyboard();
@@ -96,35 +112,68 @@ void dynamic_macro_play(
96/** 112/**
97 * Record a single key in a dynamic macro. 113 * Record a single key in a dynamic macro.
98 * 114 *
115 * @param macro_buffer[in] The start of the used macro buffer.
99 * @param macro_pointer[in,out] The current buffer position. 116 * @param macro_pointer[in,out] The current buffer position.
100 * @param macro_end2[in] The end of the other macro which shouldn't be overwritten. 117 * @param macro2_end[in] The end of the other macro.
101 * @param direction[in] Either +1 or -1, which way to iterate the buffer. 118 * @param direction[in] Either +1 or -1, which way to iterate the buffer.
102 * @param record[in] The current keypress. 119 * @param record[in] The current keypress.
103 */ 120 */
104void dynamic_macro_record_key( 121void dynamic_macro_record_key(
122 keyrecord_t *macro_buffer,
105 keyrecord_t **macro_pointer, 123 keyrecord_t **macro_pointer,
106 keyrecord_t *macro_end2, 124 keyrecord_t *macro2_end,
107 int8_t direction, 125 int8_t direction,
108 keyrecord_t *record) 126 keyrecord_t *record)
109{ 127{
110 if (*macro_pointer + direction != macro_end2) { 128 /* If we've just started recording, ignore all the key releases. */
129 if (!record->event.pressed && *macro_pointer == macro_buffer) {
130 dprintln("dynamic macro: ignoring a leading key-up event");
131 return;
132 }
133
134 /* The other end of the other macro is the last buffer element it
135 * is safe to use before overwriting the other macro.
136 */
137 if (*macro_pointer - direction != macro2_end) {
111 **macro_pointer = *record; 138 **macro_pointer = *record;
112 *macro_pointer += direction; 139 *macro_pointer += direction;
113 } else { 140 } else {
114 /* Notify about the end of buffer. The blinks are paired 141 dynamic_macro_led_blink();
115 * because they should happen on both down and up events. */
116 backlight_toggle();
117 } 142 }
143
144 dprintf(
145 "dynamic macro: slot %d length: %d/%d\n",
146 DYNAMIC_MACRO_CURRENT_SLOT(),
147 DYNAMIC_MACRO_CURRENT_LENGTH(macro_buffer, *macro_pointer),
148 DYNAMIC_MACRO_CURRENT_CAPACITY(macro_buffer, macro2_end));
118} 149}
119 150
120/** 151/**
121 * End recording of the dynamic macro. Essentially just update the 152 * End recording of the dynamic macro. Essentially just update the
122 * pointer to the end of the macro. 153 * pointer to the end of the macro.
123 */ 154 */
124void dynamic_macro_record_end(keyrecord_t *macro_pointer, keyrecord_t **macro_end) 155void dynamic_macro_record_end(
156 keyrecord_t *macro_buffer,
157 keyrecord_t *macro_pointer,
158 int8_t direction,
159 keyrecord_t **macro_end)
125{ 160{
126 dynamic_macro_led_blink(); 161 dynamic_macro_led_blink();
127 162
163 /* Do not save the keys being held when stopping the recording,
164 * i.e. the keys used to access the layer DYN_REC_STOP is on.
165 */
166 while (macro_pointer != macro_buffer &&
167 (macro_pointer - direction)->event.pressed) {
168 dprintln("dynamic macro: trimming a trailing key-down event");
169 macro_pointer -= direction;
170 }
171
172 dprintf(
173 "dynamic macro: slot %d saved, length: %d\n",
174 DYNAMIC_MACRO_CURRENT_SLOT(),
175 DYNAMIC_MACRO_CURRENT_LENGTH(macro_buffer, macro_pointer));
176
128 *macro_end = macro_pointer; 177 *macro_end = macro_pointer;
129} 178}
130 179
@@ -152,7 +201,7 @@ bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t *record)
152 * &macro_buffer macro_end 201 * &macro_buffer macro_end
153 * v v 202 * v v
154 * +------------------------------------------------------------+ 203 * +------------------------------------------------------------+
155 * |>>>>>> MACRO1 >>>>>>| |<<<<<<<<<<<<< MACRO2 <<<<<<<<<<<<<| 204 * |>>>>>> MACRO1 >>>>>> <<<<<<<<<<<<< MACRO2 <<<<<<<<<<<<<|
156 * +------------------------------------------------------------+ 205 * +------------------------------------------------------------+
157 * ^ ^ 206 * ^ ^
158 * r_macro_end r_macro_buffer 207 * r_macro_end r_macro_buffer
@@ -209,18 +258,17 @@ bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t *record)
209 } else { 258 } else {
210 /* A macro is being recorded right now. */ 259 /* A macro is being recorded right now. */
211 switch (keycode) { 260 switch (keycode) {
212 case MO(_DYN): 261 case DYN_REC_STOP:
213 /* Use the layer key used to access the macro recording as 262 /* Stop the macro recording. */
214 * a stop button. */
215 if (record->event.pressed) { /* Ignore the initial release 263 if (record->event.pressed) { /* Ignore the initial release
216 * just after the recoding 264 * just after the recoding
217 * starts. */ 265 * starts. */
218 switch (macro_id) { 266 switch (macro_id) {
219 case 1: 267 case 1:
220 dynamic_macro_record_end(macro_pointer, &macro_end); 268 dynamic_macro_record_end(macro_buffer, macro_pointer, +1, &macro_end);
221 break; 269 break;
222 case 2: 270 case 2:
223 dynamic_macro_record_end(macro_pointer, &r_macro_end); 271 dynamic_macro_record_end(r_macro_buffer, macro_pointer, -1, &r_macro_end);
224 break; 272 break;
225 } 273 }
226 macro_id = 0; 274 macro_id = 0;
@@ -230,10 +278,10 @@ bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t *record)
230 /* Store the key in the macro buffer and process it normally. */ 278 /* Store the key in the macro buffer and process it normally. */
231 switch (macro_id) { 279 switch (macro_id) {
232 case 1: 280 case 1:
233 dynamic_macro_record_key(&macro_pointer, r_macro_end, +1, record); 281 dynamic_macro_record_key(macro_buffer, &macro_pointer, r_macro_end, +1, record);
234 break; 282 break;
235 case 2: 283 case 2:
236 dynamic_macro_record_key(&macro_pointer, macro_end, -1, record); 284 dynamic_macro_record_key(r_macro_buffer, &macro_pointer, macro_end, -1, record);
237 break; 285 break;
238 } 286 }
239 return true; 287 return true;
@@ -244,4 +292,8 @@ bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t *record)
244 return true; 292 return true;
245} 293}
246 294
295#undef DYNAMIC_MACRO_CURRENT_SLOT
296#undef DYNAMIC_MACRO_CURRENT_LENGTH
297#undef DYNAMIC_MACRO_CURRENT_CAPACITY
298
247#endif 299#endif
diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk
index 5df539def..ccecdb192 100644
--- a/tmk_core/avr.mk
+++ b/tmk_core/avr.mk
@@ -89,9 +89,9 @@ DEBUG_HOST = localhost
89#============================================================================ 89#============================================================================
90# Autodecct teensy loader 90# Autodecct teensy loader
91ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) 91ifneq (, $(shell which teensy-loader-cli 2>/dev/null))
92 TEENSY_LOADER_CLI = teensy-loader-cli 92 TEENSY_LOADER_CLI ?= teensy-loader-cli
93else 93else
94 TEENSY_LOADER_CLI = teensy_loader_cli 94 TEENSY_LOADER_CLI ?= teensy_loader_cli
95endif 95endif
96 96
97# Program the device. 97# Program the device.
@@ -100,43 +100,47 @@ program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep
100 100
101teensy: $(BUILD_DIR)/$(TARGET).hex 101teensy: $(BUILD_DIR)/$(TARGET).hex
102 $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex 102 $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
103
104BATCHISP ?= batchisp
103 105
104flip: $(BUILD_DIR)/$(TARGET).hex 106flip: $(BUILD_DIR)/$(TARGET).hex
105 batchisp -hardware usb -device $(MCU) -operation erase f 107 $(BATCHISP) -hardware usb -device $(MCU) -operation erase f
106 batchisp -hardware usb -device $(MCU) -operation loadbuffer $(BUILD_DIR)/$(TARGET).hex program 108 $(BATCHISP) -hardware usb -device $(MCU) -operation loadbuffer $(BUILD_DIR)/$(TARGET).hex program
107 batchisp -hardware usb -device $(MCU) -operation start reset 0 109 $(BATCHISP) -hardware usb -device $(MCU) -operation start reset 0
110
111DFU_PROGRAMMER ?= dfu-programmer
108 112
109dfu: $(BUILD_DIR)/$(TARGET).hex sizeafter 113dfu: $(BUILD_DIR)/$(TARGET).hex sizeafter
110 until dfu-programmer $(MCU) get bootloader-version; do\ 114 until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\
111 echo "Error: Bootloader not found. Trying again in 5s." ;\ 115 echo "Error: Bootloader not found. Trying again in 5s." ;\
112 sleep 5 ;\ 116 sleep 5 ;\
113 done 117 done
114ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1))) 118ifneq (, $(findstring 0.7, $(shell $(DFU_PROGRAMMER) --version 2>&1)))
115 dfu-programmer $(MCU) erase --force 119 $(DFU_PROGRAMMER) $(MCU) erase --force
116else 120else
117 dfu-programmer $(MCU) erase 121 $(DFU_PROGRAMMER) $(MCU) erase
118endif 122endif
119 dfu-programmer $(MCU) flash $(BUILD_DIR)/$(TARGET).hex 123 $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex
120 dfu-programmer $(MCU) reset 124 $(DFU_PROGRAMMER) $(MCU) reset
121 125
122dfu-start: 126dfu-start:
123 dfu-programmer $(MCU) reset 127 $(DFU_PROGRAMMER) $(MCU) reset
124 dfu-programmer $(MCU) start 128 $(DFU_PROGRAMMER) $(MCU) start
125 129
126flip-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep 130flip-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep
127 $(COPY) $(BUILD_DIR)/$(TARGET).eep $(BUILD_DIR)/$(TARGET)eep.hex 131 $(COPY) $(BUILD_DIR)/$(TARGET).eep $(BUILD_DIR)/$(TARGET)eep.hex
128 batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase 132 $(BATCHISP) -hardware usb -device $(MCU) -operation memory EEPROM erase
129 batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $(BUILD_DIR)/$(TARGET)eep.hex program 133 $(BATCHISP) -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $(BUILD_DIR)/$(TARGET)eep.hex program
130 batchisp -hardware usb -device $(MCU) -operation start reset 0 134 $(BATCHISP) -hardware usb -device $(MCU) -operation start reset 0
131 $(REMOVE) $(BUILD_DIR)/$(TARGET)eep.hex 135 $(REMOVE) $(BUILD_DIR)/$(TARGET)eep.hex
132 136
133dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep 137dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep
134ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1))) 138ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1)))
135 dfu-programmer $(MCU) flash --eeprom $(BUILD_DIR)/$(TARGET).eep 139 $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(BUILD_DIR)/$(TARGET).eep
136else 140else
137 dfu-programmer $(MCU) flash-eeprom $(BUILD_DIR)/$(TARGET).eep 141 $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(BUILD_DIR)/$(TARGET).eep
138endif 142endif
139 dfu-programmer $(MCU) reset 143 $(DFU_PROGRAMMER) $(MCU) reset
140 144
141# Convert hex to bin. 145# Convert hex to bin.
142flashbin: $(BUILD_DIR)/$(TARGET).hex 146flashbin: $(BUILD_DIR)/$(TARGET).hex
diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk
index eb0c40138..2a8d32fb9 100644
--- a/tmk_core/chibios.mk
+++ b/tmk_core/chibios.mk
@@ -151,5 +151,7 @@ endif
151# List any extra directories to look for libraries here. 151# List any extra directories to look for libraries here.
152EXTRALIBDIRS = $(RULESPATH)/ld 152EXTRALIBDIRS = $(RULESPATH)/ld
153 153
154DFU_UTIL ?= dfu-util
155
154dfu-util: $(BUILD_DIR)/$(TARGET).bin sizeafter 156dfu-util: $(BUILD_DIR)/$(TARGET).bin sizeafter
155 dfu-util $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin 157 $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin