aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/rgbkb/sol/common/glcdfont.c24
-rw-r--r--keyboards/rgbkb/sol/config.h7
-rw-r--r--keyboards/rgbkb/sol/keymaps/brianweyer/rules.mk45
-rw-r--r--keyboards/rgbkb/sol/keymaps/danielhklein/rules.mk44
-rw-r--r--keyboards/rgbkb/sol/keymaps/default/keymap.c350
-rw-r--r--keyboards/rgbkb/sol/keymaps/default/readme.md4
-rw-r--r--keyboards/rgbkb/sol/keymaps/default/rules.mk40
-rw-r--r--keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk51
-rw-r--r--keyboards/rgbkb/sol/keymaps/xulkal/rules.mk48
-rw-r--r--keyboards/rgbkb/sol/rev1/config.h7
-rw-r--r--keyboards/rgbkb/sol/rev1/post_rules.mk19
-rw-r--r--keyboards/rgbkb/sol/rev1/rev1.c24
-rw-r--r--keyboards/rgbkb/sol/rev1/rules.mk28
-rw-r--r--keyboards/rgbkb/sol/rev2/config.h61
-rw-r--r--keyboards/rgbkb/sol/rev2/info.json87
-rw-r--r--keyboards/rgbkb/sol/rev2/post_rules.mk37
-rw-r--r--keyboards/rgbkb/sol/rev2/rev2.c89
-rw-r--r--keyboards/rgbkb/sol/rev2/rev2.h1
-rw-r--r--keyboards/rgbkb/sol/rev2/rules.mk35
-rw-r--r--keyboards/rgbkb/sol/rules.mk42
-rw-r--r--keyboards/rgbkb/sol/sol.h28
-rw-r--r--users/xulkal/custom_encoder.c2
22 files changed, 684 insertions, 389 deletions
diff --git a/keyboards/rgbkb/sol/common/glcdfont.c b/keyboards/rgbkb/sol/common/glcdfont.c
index f772e3181..61b40c092 100644
--- a/keyboards/rgbkb/sol/common/glcdfont.c
+++ b/keyboards/rgbkb/sol/common/glcdfont.c
@@ -168,11 +168,11 @@ static const unsigned char font[] PROGMEM = {
168 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, 168 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
169 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, 169 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
170 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, 170 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
171 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, 171 0x00, 0x00, 0xF0, 0xF4, 0xEC, 0xDE,
172 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, 172 0xDE, 0xBE, 0x3E, 0x3E, 0x3F, 0x3F,
173 0x00, 0x00, 0x00, 0xE0, 0xEC, 0xDF, 173 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x3F,
174 0xFC, 0xE0, 0x00, 0x00, 0x00, 0x00, 174 0x3F, 0x3E, 0x3E, 0xBE, 0xDE, 0xDE,
175 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 175 0xEC, 0xF4, 0xF0, 0x00, 0x00, 0x00,
176 0x00, 0x00, 0x00, 0x7F, 0x80, 0x80, 176 0x00, 0x00, 0x00, 0x7F, 0x80, 0x80,
177 0x80, 0x70, 0x0F, 0x00, 0x00, 0x80, 177 0x80, 0x70, 0x0F, 0x00, 0x00, 0x80,
178 0x7F, 0x00, 0x00, 0x7F, 0x80, 0x80, 178 0x7F, 0x00, 0x00, 0x7F, 0x80, 0x80,
@@ -200,11 +200,11 @@ static const unsigned char font[] PROGMEM = {
200 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, 200 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
201 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, 201 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
202 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, 202 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
203 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, 203 0x00, 0x00, 0x01, 0x0F, 0x3F, 0xFF,
204 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, 204 0xFF, 0xFF, 0xFC, 0xE0, 0x80, 0x00,
205 0x40, 0x7C, 0x3F, 0x3F, 0x23, 0x01,
206 0x23, 0x3F, 0x37, 0x6C, 0x40, 0x00,
207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 205 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
206 0x80, 0xE0, 0xFC, 0xFF, 0xFF, 0xFF,
207 0x3F, 0x0F, 0x01, 0x00, 0x00, 0x00,
208 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 208 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
209 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 209 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
210 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 210 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -233,8 +233,8 @@ static const unsigned char font[] PROGMEM = {
233 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 233 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
234 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 234 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
235 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 235 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
236 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 236 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F,
237 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 237 0xFE, 0xFC, 0x00, 0xFC, 0xFE, 0x7F,
238 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 238 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x00,
239 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 239 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
240}; 240};
diff --git a/keyboards/rgbkb/sol/config.h b/keyboards/rgbkb/sol/config.h
index 23f4503bf..9b136db05 100644
--- a/keyboards/rgbkb/sol/config.h
+++ b/keyboards/rgbkb/sol/config.h
@@ -35,16 +35,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
35#define MATRIX_COLS 7 35#define MATRIX_COLS 7
36#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7 } 36#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7 }
37 37
38// Encoder support
39#define ENCODERS_PAD_A { D2 }
40#define ENCODERS_PAD_B { D6 }
41
42/* Set 0 if debouncing isn't needed */ 38/* Set 0 if debouncing isn't needed */
43#define DEBOUNCE 5 39#define DEBOUNCE 5
44 40
45/* ws2812 RGB LED */
46#define RGB_DI_PIN B3
47
48#ifdef IOS_DEVICE_ENABLE 41#ifdef IOS_DEVICE_ENABLE
49 #define RGBLIGHT_LIMIT_VAL 40 42 #define RGBLIGHT_LIMIT_VAL 40
50#elif RGBLIGHT_FULL_POWER 43#elif RGBLIGHT_FULL_POWER
diff --git a/keyboards/rgbkb/sol/keymaps/brianweyer/rules.mk b/keyboards/rgbkb/sol/keymaps/brianweyer/rules.mk
index 12c877946..47dd9a7e2 100644
--- a/keyboards/rgbkb/sol/keymaps/brianweyer/rules.mk
+++ b/keyboards/rgbkb/sol/keymaps/brianweyer/rules.mk
@@ -1,38 +1,15 @@
1# Build Options 1# Overridden build options from rev1
2# change to "no" to disable the options, or define them in the Makefile in 2
3# the appropriate keymap folder that will get included automatically 3# RGB Options
4# 4LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 5
6MOUSEKEY_ENABLE = no # Mouse keys(+4700) 6# Misc
7 7OLED_DRIVER_ENABLE = yes # Enable the OLED Driver
8EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
9CONSOLE_ENABLE = no # Console for debug(+400)
10COMMAND_ENABLE = no # Commands for debug and configuration
11NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12RGBLIGHT_ENABLE = yes # Enable global lighting effects. Do not enable with RGB Matrix
13RGBLIGHT_ANIMATIONS = yes # LED animations
14LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
15RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
16RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. Can be very laggy (+1500)
17RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port
18UNICODE_ENABLE = no # Unicode
19SWAP_HANDS_ENABLE = no # Enable one-hand typing
20
21OLED_DRIVER_ENABLE = yes # Enable the OLED Driver (+5000)
22IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
23 8
24# Do not edit past here
25 9
26ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
27 OPT_DEFS += -DIOS_DEVICE_ENABLE
28else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes)
29 OPT_DEFS += -DRGBLIGHT_FULL_POWER
30endif
31 10
32ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes)
33 OPT_DEFS += -DRGB_MATRIX_KEYPRESSES
34endif
35 11
36ifeq ($(strip $(LED_MIRRORED)), yes) 12
37 OPT_DEFS += -DLED_MIRRORED 13# Do not edit past here
38endif 14
15include keyboards/$(KEYBOARD)/post_rules.mk
diff --git a/keyboards/rgbkb/sol/keymaps/danielhklein/rules.mk b/keyboards/rgbkb/sol/keymaps/danielhklein/rules.mk
index 09b0e201d..2993bdacc 100644
--- a/keyboards/rgbkb/sol/keymaps/danielhklein/rules.mk
+++ b/keyboards/rgbkb/sol/keymaps/danielhklein/rules.mk
@@ -1,38 +1,14 @@
1# Build Options 1# Overridden build options from rev1
2# change to "no" to disable the options, or define them in the Makefile in 2
3# the appropriate keymap folder that will get included automatically 3# Debug Options
4# 4CONSOLE_ENABLE = yes # Console for debug(+400)
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 5COMMAND_ENABLE = yes # Commands for debug and configuration
6MOUSEKEY_ENABLE = no # Mouse keys(+4700) 6
7
8EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
9CONSOLE_ENABLE = yes # Console for debug(+400)
10COMMAND_ENABLE = yes # Commands for debug and configuration
11NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12RGBLIGHT_ENABLE = yes # Enable global lighting effects. Do not enable with RGB Matrix
13RGBLIGHT_ANIMATIONS = yes # LED animations
14LED_MIRRORED = yes # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
15RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
16RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. Can be very laggy (+1500)
17RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port
18UNICODE_ENABLE = no # Unicode
19SWAP_HANDS_ENABLE = no # Enable one-hand typing
20
21OLED_DRIVER_ENABLE = no # Enable the OLED Driver (+5000)
22IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
23 7
24# Do not edit past here
25 8
26ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
27 OPT_DEFS += -DIOS_DEVICE_ENABLE
28else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes)
29 OPT_DEFS += -DRGBLIGHT_FULL_POWER
30endif
31 9
32ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes)
33 OPT_DEFS += -DRGB_MATRIX_KEYPRESSES
34endif
35 10
36ifeq ($(strip $(LED_MIRRORED)), yes) 11# Do not edit past here
37 OPT_DEFS += -DLED_MIRRORED 12
38endif 13include keyboards/$(KEYBOARD)/post_rules.mk
14
diff --git a/keyboards/rgbkb/sol/keymaps/default/keymap.c b/keyboards/rgbkb/sol/keymaps/default/keymap.c
index ca7352482..f948dc450 100644
--- a/keyboards/rgbkb/sol/keymaps/default/keymap.c
+++ b/keyboards/rgbkb/sol/keymaps/default/keymap.c
@@ -5,13 +5,6 @@
5#include "split_util.h" 5#include "split_util.h"
6#endif 6#endif
7 7
8extern keymap_config_t keymap_config;
9
10#ifdef RGBLIGHT_ENABLE
11//Following line allows macro to read current RGB settings
12extern rgblight_config_t rgblight_config;
13#endif
14
15// Each layer gets a name for readability, which is then used in the keymap matrix below. 8// Each layer gets a name for readability, which is then used in the keymap matrix below.
16// The underscores don't mean anything - you can have a layer called STUFF or any other name. 9// The underscores don't mean anything - you can have a layer called STUFF or any other name.
17// Layer names don't all need to be of the same length, obviously, and you can also skip them 10// Layer names don't all need to be of the same length, obviously, and you can also skip them
@@ -23,22 +16,18 @@ enum layer_number {
23 _ADJ 16 _ADJ
24}; 17};
25 18
26enum custom_keycodes { 19// Keycode defines for layers
27 QWERTY = SAFE_RANGE, 20#define QWERTY DF(_QWERTY)
28 COLEMAK, 21#define COLEMAK DF(_COLEMAK)
29 FN, 22#define FN MO(_FN)
30 ADJ, 23#define ADJ MO(_ADJ)
31 BACKLIT,
32 RGBRST
33};
34 24
35enum macro_keycodes { 25enum custom_keycodes {
36 KC_SAMPLEMACRO, 26 RGBRST = SAFE_RANGE,
27 RGB_MENU
37}; 28};
38 29
39 30#define FN_ESC LT(_FN, KC_ESC)
40
41#define FN_ESC LT(_FN, KC_ESC)
42#define FN_CAPS LT(_FN, KC_CAPS) 31#define FN_CAPS LT(_FN, KC_CAPS)
43 32
44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -50,9 +39,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| 39 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
51 * |FN(CAPS)| A | S | D | F | G | ( | | ) | H | J | K | L | ; | ' | 40 * |FN(CAPS)| A | S | D | F | G | ( | | ) | H | J | K | L | ; | ' |
52 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 41 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
53 * |Shift | Z | X | C | V | B | { | | } | N | M | , | . | / |Shift | 42 * |Shift | Z | X | C | V | B | { | | } | N | M | , | . | / |Enter |
54 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 43 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
55 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right | 44 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right |
56 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------' 45 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
57 * | Space| DEL | | Enter| Space| 46 * | Space| DEL | | Enter| Space|
58 * `-------------' `-------------' 47 * `-------------' `-------------'
@@ -74,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
74 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| 63 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
75 * |FN(CAPS)| A | R | S | T | G | ( | | ) | K | N | E | I | O | ' | 64 * |FN(CAPS)| A | R | S | T | G | ( | | ) | K | N | E | I | O | ' |
76 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 65 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
77 * |Shift | Z | X | C | D | V | { | | } | M | H | , | . | / |Shift | 66 * |Shift | Z | X | C | D | V | { | | } | M | H | , | . | / |Enter |
78 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 67 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
79 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right | 68 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right |
80 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------' 69 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
@@ -83,9 +72,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
83 */ 72 */
84 [_COLEMAK] = LAYOUT( \ 73 [_COLEMAK] = LAYOUT( \
85 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ 74 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
86 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \ 75 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \
87 FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_LPRN, KC_RPRN, KC_K, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ 76 FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_LPRN, KC_RPRN, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
88 KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_LCBR, KC_RCBR, KC_M, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ 77 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \
89 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJ, KC_SPC, KC_DEL, KC_ENT, KC_SPC, FN, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, \ 78 KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJ, KC_SPC, KC_DEL, KC_ENT, KC_SPC, FN, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, \
90 KC_SPC, KC_DEL, KC_ENT, KC_SPC \ 79 KC_SPC, KC_DEL, KC_ENT, KC_SPC \
91 ), 80 ),
@@ -107,8 +96,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
107 */ 96 */
108 [_FN] = LAYOUT( \ 97 [_FN] = LAYOUT( \
109 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ 98 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
110 _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, \ 99 _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_SLCK, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, \
111 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, \ 100 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_NLCK, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, \
112 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 101 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
113 _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, \ 102 _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, \
114 _______, _______, _______, _______ \ 103 _______, _______, _______, _______ \
@@ -134,120 +123,184 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
134 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ 123 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
135 _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 124 _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
136 _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______, \ 125 _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______, \
137 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ 126 _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, RGB_SPI, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \
138 _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, \ 127 _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, \
139 _______, _______, _______, _______ \ 128 _______, _______, _______, _______ \
140 ) 129 )
141}; 130};
142 131
132// For RGBRST Keycode
133#if defined(RGB_MATRIX_ENABLE)
134void rgb_matrix_increase_flags(void)
135{
136 switch (rgb_matrix_get_flags()) {
137 case LED_FLAG_ALL: {
138 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
139 rgb_matrix_set_color_all(0, 0, 0);
140 }
141 break;
142 case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: {
143 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
144 rgb_matrix_set_color_all(0, 0, 0);
145 }
146 break;
147 case LED_FLAG_UNDERGLOW: {
148 rgb_matrix_set_flags(LED_FLAG_NONE);
149 rgb_matrix_disable_noeeprom();
150 }
151 break;
152 default: {
153 rgb_matrix_set_flags(LED_FLAG_ALL);
154 rgb_matrix_enable_noeeprom();
155 }
156 break;
157 }
158}
143 159
160void rgb_matrix_decrease_flags(void)
161{
162 switch (rgb_matrix_get_flags()) {
163 case LED_FLAG_ALL: {
164 rgb_matrix_set_flags(LED_FLAG_NONE);
165 rgb_matrix_disable_noeeprom();
166 }
167 break;
168 case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: {
169 rgb_matrix_set_flags(LED_FLAG_ALL);
170 rgb_matrix_set_color_all(0, 0, 0);
171 }
172 break;
173 case LED_FLAG_UNDERGLOW: {
174 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
175 rgb_matrix_set_color_all(0, 0, 0);
176 }
177 break;
178 default: {
179 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
180 rgb_matrix_enable_noeeprom();
181 }
182 break;
183 }
184}
185#endif
144 186
145// define variables for reactive RGB 187#ifdef RGB_OLED_MENU
146bool TOG_STATUS = false; 188uint8_t rgb_encoder_state = 4;
147int RGB_current_mode; 189
190typedef void (*rgb_matrix_f)(void);
191
192const rgb_matrix_f rgb_matrix_functions[6][2] = {
193 { rgb_matrix_increase_hue, rgb_matrix_decrease_hue },
194 { rgb_matrix_increase_sat, rgb_matrix_decrease_sat },
195 { rgb_matrix_increase_val, rgb_matrix_decrease_val },
196 { rgb_matrix_increase_speed, rgb_matrix_decrease_speed },
197 { rgb_matrix_step, rgb_matrix_step_reverse },
198 { rgb_matrix_increase_flags, rgb_matrix_decrease_flags }
199};
200#endif
148 201
149#ifdef ENCODER_ENABLE 202#ifdef ENCODER_ENABLE
203
204static pin_t encoders_pad_a[] = ENCODERS_PAD_A;
205#define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a)/sizeof(pin_t))
206
207const uint16_t PROGMEM encoders[][NUMBER_OF_ENCODERS * 2][2] = {
208 [_QWERTY] = ENCODER_LAYOUT( \
209 KC_VOLU, KC_VOLD,
210 KC_VOLU, KC_VOLD
211 ),
212 [_COLEMAK] = ENCODER_LAYOUT( \
213 _______, _______,
214 _______, _______
215 ),
216 [_FN] = ENCODER_LAYOUT( \
217 _______, _______,
218 _______, _______
219 ),
220 [_ADJ] = ENCODER_LAYOUT( \
221 _______, _______,
222 _______, _______
223 )
224};
225
150void encoder_update_user(uint8_t index, bool clockwise) { 226void encoder_update_user(uint8_t index, bool clockwise) {
151 if (index == 0) { /* First encoder */ 227 if (!is_keyboard_master())
152 if (clockwise) { 228 return;
153 tap_code(KC_VOLU); 229
154 } else { 230#ifdef RGB_OLED_MENU
155 tap_code(KC_VOLD); 231 if (index == RGB_OLED_MENU) {
156 } 232 (*rgb_matrix_functions[rgb_encoder_state][clockwise])();
157 } else if (index == 1) { /* Second encoder*/ 233 } else
158 if (clockwise) { 234#endif
159 tap_code(KC_VOLU); 235 {
160 } else { 236 uint8_t layer = biton32(layer_state);
161 tap_code(KC_VOLD); 237 uint16_t keycode = encoders[layer][index][clockwise];
238 while (keycode == KC_TRANSPARENT && layer > 0)
239 {
240 layer--;
241 if ((layer_state & (1 << layer)) != 0)
242 keycode = encoders[layer][index][clockwise];
162 } 243 }
244 if (keycode != KC_TRANSPARENT)
245 tap_code16(keycode);
163 } 246 }
164} 247}
165#endif 248#endif
166 249
167// Setting ADJ layer RGB back to default
168void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
169 if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
170 #ifdef RGBLIGHT_ENABLE
171 //rgblight_mode(RGB_current_mode);
172 #endif
173 layer_on(layer3);
174 } else {
175 layer_off(layer3);
176 }
177}
178
179bool process_record_user(uint16_t keycode, keyrecord_t *record) { 250bool process_record_user(uint16_t keycode, keyrecord_t *record) {
180 //uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)); 251 static uint16_t reset_timer;
181
182 switch (keycode) { 252 switch (keycode) {
183 case QWERTY: 253 case RGBRST:
254#if defined(RGBLIGHT_ENABLE)
255 if (record->event.pressed) {
256 eeconfig_update_rgblight_default();
257 rgblight_enable();
258 }
259#elif defined(RGB_MATRIX_ENABLE)
260 if (record->event.pressed) {
261 eeconfig_update_rgb_matrix_default();
262 }
263#endif
264 return false;
265 case RESET:
184 if (record->event.pressed) { 266 if (record->event.pressed) {
185 set_single_persistent_default_layer(_QWERTY); 267 reset_timer = timer_read();
268 } else {
269 if (timer_elapsed(reset_timer) >= 500) {
270 reset_keyboard();
271 }
186 } 272 }
187 return false; 273 return false;
188 break; 274#if defined(RGB_MATRIX_ENABLE) && defined(KEYBOARD_rgbkb_sol_rev2)
189 case COLEMAK: 275 case RGB_TOG:
190 if(record->event.pressed) { 276 if (record->event.pressed) {
191 set_single_persistent_default_layer(_COLEMAK); 277 rgb_matrix_increase_flags();
192 } 278 }
193 return false; 279 return false;
194 break; 280#endif
195 case FN: 281 case RGB_MENU:
282#ifdef RGB_OLED_MENU
196 if (record->event.pressed) { 283 if (record->event.pressed) {
197 //not sure how to have keyboard check mode and set it to a variable, so my work around 284 if (get_mods() & MOD_MASK_SHIFT) {
198 //uses another variable that would be set to true after the first time a reactive key is pressed. 285 rgb_encoder_state = (rgb_encoder_state - 1);
199 if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false 286 if (rgb_encoder_state > 5) {
287 rgb_encoder_state = 5;
288 }
200 } else { 289 } else {
201 TOG_STATUS = !TOG_STATUS; 290 rgb_encoder_state = (rgb_encoder_state + 1) % 6;
202 #ifdef RGBLIGHT_ENABLE
203 //rgblight_mode(15);
204 #endif
205 } 291 }
206 layer_on(_FN);
207 } else {
208 #ifdef RGBLIGHT_ENABLE
209 //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
210 #endif
211 layer_off(_FN);
212 TOG_STATUS = false;
213 } 292 }
293#endif
214 return false; 294 return false;
215 break;
216 case ADJ:
217 if (record->event.pressed) {
218 layer_on(_ADJ);
219 } else {
220 layer_off(_ADJ);
221 }
222 return false;
223 break;
224 //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
225 case RGBRST:
226 #ifdef RGBLIGHT_ENABLE
227 if (record->event.pressed) {
228 eeconfig_update_rgblight_default();
229 rgblight_enable();
230 RGB_current_mode = rgblight_config.mode;
231 }
232 #endif
233 break;
234 } 295 }
235 return true; 296 return true;
236} 297}
237 298
238void matrix_init_user(void) {
239#ifdef RGBLIGHT_ENABLE
240 RGB_current_mode = rgblight_config.mode;
241#endif
242}
243
244
245// OLED Driver Logic 299// OLED Driver Logic
246#ifdef OLED_DRIVER_ENABLE 300#ifdef OLED_DRIVER_ENABLE
247
248oled_rotation_t oled_init_user(oled_rotation_t rotation) { 301oled_rotation_t oled_init_user(oled_rotation_t rotation) {
249 if (!has_usb()) 302 if (is_keyboard_master())
250 return OLED_ROTATION_180; // flip 180 for offhand 303 return OLED_ROTATION_90;
251 return rotation; 304 return rotation;
252} 305}
253 306
@@ -255,62 +308,63 @@ static void render_logo(void) {
255 static const char PROGMEM sol_logo[] = { 308 static const char PROGMEM sol_logo[] = {
256 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, 309 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
257 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, 310 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
258 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; 311 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
259 312 };
260 oled_write_P(sol_logo, false); 313 oled_write_P(sol_logo, false);
261} 314}
262 315
263//assign the right code to your layers for OLED display
264#define L_BASE 0
265#define L_FN (1<<_FN)
266#define L_ADJ (1<<_ADJ)
267#define L_ADJ_TRI (L_ADJ|L_FN)
268
269static void render_status(void) { 316static void render_status(void) {
270 // Render to mode icon 317 // Render to mode icon
271 static const char PROGMEM mode_logo[4][4] = { 318 static const char PROGMEM sol_icon[] = {
272 {0x95,0x96,0x0a,0}, 319 0x9b,0x9c,0x9d,0x9e,0x9f,
273 {0xb5,0xb6,0x0a,0}, 320 0xbb,0xbc,0xbd,0xbe,0xbf,
274 {0x97,0x98,0x0a,0}, 321 0xdb,0xdc,0xdd,0xde,0xdf,0
275 {0xb7,0xb8,0x0a,0} }; 322 };
276 323 oled_write_P(sol_icon, false);
277 if (keymap_config.swap_lalt_lgui != false) { 324
278 oled_write_P(mode_logo[0], false); 325 // Define layers here
279 oled_write_P(mode_logo[1], false); 326 oled_write_P(PSTR("Layer"), false);
280 } else { 327 switch (biton32(layer_state)) {
281 oled_write_P(mode_logo[2], false); 328 case _QWERTY:
282 oled_write_P(mode_logo[3], false); 329 oled_write_P(PSTR("BASE "), false);
283 } 330 break;
284 331 case _COLEMAK:
285 // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below 332 oled_write_P(PSTR("CLMK "), false);
286 oled_write_P(PSTR("Layer: "), false);
287 switch (layer_state) {
288 case L_BASE:
289 oled_write_P(PSTR("Default\n"), false);
290 break; 333 break;
291 case L_FN: 334 case _FN:
292 oled_write_P(PSTR("FN \n"), false); 335 oled_write_P(PSTR("FN "), false);
293 break; 336 break;
294 case L_ADJ: 337 case _ADJ:
295 case L_ADJ_TRI: 338 oled_write_P(PSTR("ADJ "), false);
296 oled_write_P(PSTR("ADJ \n"), false);
297 break; 339 break;
298 default: 340 default:
299 oled_write_P(PSTR("UNDEF \n"), false); 341 oled_write_P(PSTR("UNDEF"), false);
300 } 342 }
301 343
302 // Host Keyboard LED Status 344 // Host Keyboard LED Status
303 uint8_t led_usb_state = host_keyboard_leds(); 345 uint8_t led_state = host_keyboard_leds();
304 oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR("NUMLOCK ") : PSTR(" "), false); 346 oled_write_P(PSTR("-----"), false);
305 oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("CAPS ") : PSTR(" "), false); 347 oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUMLK") : PSTR(" "), false);
306 oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCLK ") : PSTR(" "), false); 348 oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLK") : PSTR(" "), false);
349 oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false);
350
351#ifdef RGB_OLED_MENU
352 static char buffer[31] = { 0 };
353 snprintf(buffer, sizeof(buffer), "h%3d s%3d v%3d s%3d m%3d e%3d ", rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v, rgb_matrix_config.speed, rgb_matrix_config.mode, rgb_matrix_get_flags());
354 buffer[4 + rgb_encoder_state * 5] = '<';
355
356 oled_write_P(PSTR("-----"), false);
357 oled_write(buffer, false);
358#endif
307} 359}
308 360
309void oled_task_user(void) { 361void oled_task_user(void) {
310 if (is_keyboard_master()) 362 if (is_keyboard_master()) {
311 render_status(); 363 render_status();
312 else 364 } else {
313 render_logo(); 365 render_logo();
366 oled_scroll_left();
367 }
314} 368}
315 369
316#endif 370#endif
diff --git a/keyboards/rgbkb/sol/keymaps/default/readme.md b/keyboards/rgbkb/sol/keymaps/default/readme.md
index 75182c06f..4a97a7bab 100644
--- a/keyboards/rgbkb/sol/keymaps/default/readme.md
+++ b/keyboards/rgbkb/sol/keymaps/default/readme.md
@@ -10,7 +10,7 @@
10 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| 10 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
11 * |FN(CAPS)| A | S | D | F | G | ( | | ) | H | J | K | L | ; | ' | 11 * |FN(CAPS)| A | S | D | F | G | ( | | ) | H | J | K | L | ; | ' |
12 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 12 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
13 * |Shift | Z | X | C | V | B | { | | } | N | M | , | . | / |Shift | 13 * |Shift | Z | X | C | V | B | { | | } | N | M | , | . | / |Enter |
14 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 14 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
15 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right | 15 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right |
16 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------' 16 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
@@ -27,7 +27,7 @@
27 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| 27 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
28 * |FN(CAPS)| A | R | S | T | G | ( | | ) | K | N | E | I | O | ' | 28 * |FN(CAPS)| A | R | S | T | G | ( | | ) | K | N | E | I | O | ' |
29 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 29 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
30 * |Shift | Z | X | C | D | V | { | | } | M | H | , | . | / |Shift | 30 * |Shift | Z | X | C | D | V | { | | } | M | H | , | . | / |Enter |
31 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 31 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
32 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right | 32 * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right |
33 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------' 33 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
diff --git a/keyboards/rgbkb/sol/keymaps/default/rules.mk b/keyboards/rgbkb/sol/keymaps/default/rules.mk
index 09b0e201d..203d59c6a 100644
--- a/keyboards/rgbkb/sol/keymaps/default/rules.mk
+++ b/keyboards/rgbkb/sol/keymaps/default/rules.mk
@@ -1,38 +1,16 @@
1# Build Options 1# Default keymap does not have any overridden options from the rev1 / rev2 rules.mk files.
2# change to "no" to disable the options, or define them in the Makefile in 2# Example:
3# the appropriate keymap folder that will get included automatically 3# if you wanted to disable EXTRAKEY_ENABLE, you would copy the line from the rev1/rules.mk file
4# and paste it in to this file, changing the yes to no. Like so:
5# EXTRAKEY_ENABLE = no # Audio control and System control(+450)
4# 6#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 7# To keep things clean and tidy, as well as make upgrades easier, only place overrides from the defaults in this file.
6MOUSEKEY_ENABLE = no # Mouse keys(+4700) 8
7 9
8EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
9CONSOLE_ENABLE = yes # Console for debug(+400)
10COMMAND_ENABLE = yes # Commands for debug and configuration
11NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12RGBLIGHT_ENABLE = yes # Enable global lighting effects. Do not enable with RGB Matrix
13RGBLIGHT_ANIMATIONS = yes # LED animations
14LED_MIRRORED = yes # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
15RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
16RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. Can be very laggy (+1500)
17RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port
18UNICODE_ENABLE = no # Unicode
19SWAP_HANDS_ENABLE = no # Enable one-hand typing
20 10
21OLED_DRIVER_ENABLE = no # Enable the OLED Driver (+5000)
22IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
23 11
24# Do not edit past here
25 12
26ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) 13# Do not edit past here
27 OPT_DEFS += -DIOS_DEVICE_ENABLE
28else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes)
29 OPT_DEFS += -DRGBLIGHT_FULL_POWER
30endif
31 14
32ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes) 15include keyboards/$(KEYBOARD)/post_rules.mk
33 OPT_DEFS += -DRGB_MATRIX_KEYPRESSES
34endif
35 16
36ifeq ($(strip $(LED_MIRRORED)), yes)
37 OPT_DEFS += -DLED_MIRRORED
38endif
diff --git a/keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk b/keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk
index 21dca0b11..056959a55 100644
--- a/keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk
+++ b/keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk
@@ -1,38 +1,21 @@
1# Build Options 1# Overridden build options from rev1 & rev2
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 = no # Mouse keys(+4700)
7
8EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
9CONSOLE_ENABLE = yes # Console for debug(+400)
10COMMAND_ENABLE = yes # Commands for debug and configuration
11NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
13RGBLIGHT_ANIMATIONS = no # LED animations
14LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
15RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
16RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. Can be very laggy (+1500)
17RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port
18UNICODE_ENABLE = no # Unicode
19SWAP_HANDS_ENABLE = no # Enable one-hand typing
20
21OLED_DRIVER_ENABLE = no # Enable the OLED Driver (+5000)
22IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
23 2
24# Do not edit past here 3# Debug Options
4CONSOLE_ENABLE = yes # Console for debug(+400)
5COMMAND_ENABLE = yes # Commands for debug and configuration
6
7# RGB Options
8RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
9RGBLIGHT_ANIMATIONS = no # LED animations
10LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
11RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
12
13# Userspace implements their own LTO
14LINK_TIME_OPTIMIZATION_ENABLE = no
25 15
26ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
27 OPT_DEFS += -DIOS_DEVICE_ENABLE
28else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes)
29 OPT_DEFS += -DRGBLIGHT_FULL_POWER
30endif
31 16
32ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes)
33 OPT_DEFS += -DRGB_MATRIX_KEYPRESSES
34endif
35 17
36ifeq ($(strip $(LED_MIRRORED)), yes) 18# Do not edit past here
37 OPT_DEFS += -DLED_MIRRORED 19
38endif 20include keyboards/$(KEYBOARD)/post_rules.mk
21
diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk b/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk
index ad0c48034..238d1cf23 100644
--- a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk
+++ b/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk
@@ -1,37 +1,19 @@
1# Build Options 1# Overridden build options from rev1 & rev2
2# change to "no" to disable the options, or define them in the Makefile in 2
3# the appropriate keymap folder that will get included automatically 3# RGB Options
4# 4RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 5RGBLIGHT_ANIMATIONS = no # LED animations
6MOUSEKEY_ENABLE = no # Mouse keys(+4700) 6LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 7RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
8CONSOLE_ENABLE = no # Console for debug(+400) 8FULLHAND_ENABLE = yes # Enables the additional 24 Full Hand LEDs
9COMMAND_ENABLE = no # Commands for debug and configuration 9
10NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 10# Misc
11RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix 11OLED_DRIVER_ENABLE = yes # Enable the OLED Driver
12RGBLIGHT_ANIMATIONS = no # LED animations
13LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
14RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
15RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. Can be very laggy (+1500)
16RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port
17UNICODE_ENABLE = no # Unicode
18SWAP_HANDS_ENABLE = no # Enable one-hand typing
19OLED_DRIVER_ENABLE = yes # Enable the OLED Driver (+5000)
20ENCODER_ENABLE = no # Enable rotary encoder (+90)
21IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
22 12
23# Do not edit past here
24 13
25ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
26 OPT_DEFS += -DIOS_DEVICE_ENABLE
27else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes)
28 OPT_DEFS += -DRGBLIGHT_FULL_POWER
29endif
30 14
31ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes)
32 OPT_DEFS += -DRGB_MATRIX_KEYPRESSES
33endif
34 15
35ifeq ($(strip $(LED_MIRRORED)), yes) 16# Do not edit past here
36 OPT_DEFS += -DLED_MIRRORED 17
37endif 18include keyboards/$(KEYBOARD)/post_rules.mk
19
diff --git a/keyboards/rgbkb/sol/rev1/config.h b/keyboards/rgbkb/sol/rev1/config.h
index 51c4bbb65..3cfc3eef9 100644
--- a/keyboards/rgbkb/sol/rev1/config.h
+++ b/keyboards/rgbkb/sol/rev1/config.h
@@ -26,6 +26,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define PRODUCT Sol 26#define PRODUCT Sol
27#define DESCRIPTION "An RGB, split, ortho-esque keyboard" 27#define DESCRIPTION "An RGB, split, ortho-esque keyboard"
28 28
29/* ws2812 RGB LED */
30#define RGB_DI_PIN B3
31
29#ifdef LED_MIRRORED 32#ifdef LED_MIRRORED
30 #define RGBLED_NUM 35 33 #define RGBLED_NUM 35
31#else 34#else
@@ -34,3 +37,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
34#define DRIVER_LED_TOTAL RGBLED_NUM 37#define DRIVER_LED_TOTAL RGBLED_NUM
35 38
36#define RGB_MATRIX_CENTER { 112, 35 } 39#define RGB_MATRIX_CENTER { 112, 35 }
40
41// Encoder support
42#define ENCODERS_PAD_A { D2 }
43#define ENCODERS_PAD_B { D6 }
diff --git a/keyboards/rgbkb/sol/rev1/post_rules.mk b/keyboards/rgbkb/sol/rev1/post_rules.mk
new file mode 100644
index 000000000..ede37a1ad
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev1/post_rules.mk
@@ -0,0 +1,19 @@
1# As long as the users rules.mk has include $(KEYBOARD)/post_rules.mk this will be run after to properly setup any keyboard features and defines
2
3ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
4 OPT_DEFS += -DIOS_DEVICE_ENABLE
5else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes)
6 OPT_DEFS += -DRGBLIGHT_FULL_POWER
7endif
8
9ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes)
10 OPT_DEFS += -DRGB_MATRIX_KEYPRESSES
11endif
12
13ifeq ($(strip $(RGB_MATRIX_FRAMEBUFFER)), yes)
14 OPT_DEFS += -DRGB_MATRIX_FRAMEBUFFER_EFFECTS
15endif
16
17ifeq ($(strip $(LED_MIRRORED)), yes)
18 OPT_DEFS += -DLED_MIRRORED
19endif
diff --git a/keyboards/rgbkb/sol/rev1/rev1.c b/keyboards/rgbkb/sol/rev1/rev1.c
index 6ee4b610b..21b4503ab 100644
--- a/keyboards/rgbkb/sol/rev1/rev1.c
+++ b/keyboards/rgbkb/sol/rev1/rev1.c
@@ -2,18 +2,18 @@
2 2
3#ifdef RGB_MATRIX_ENABLE 3#ifdef RGB_MATRIX_ENABLE
4led_config_t g_led_config = { { 4led_config_t g_led_config = { {
5 { 0, 1, 2, 3, 4, 5, 6 }, 5 { 0, 1, 2, 3, 4, 5, 6 },
6 { 7, 8, 9, 10, 11, 12, 13 }, 6 { 7, 8, 9, 10, 11, 12, 13 },
7 { 14, 15, 16, 17, 18, 19, 20 }, 7 { 14, 15, 16, 17, 18, 19, 20 },
8 { 21, 22, 23, 24, 25, 26, 27 }, 8 { 21, 22, 23, 24, 25, 26, 27 },
9 { 28, 29, 30, 31, 32, 33, 34 }, 9 { 28, 29, 30, 31, 32, 33, 34 },
10 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 }, 10 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 },
11 { 35, 36, 37, 38, 39, 40, 41 }, 11 { 35, 36, 37, 38, 39, 40, 41 },
12 { 42, 43, 44, 45, 46, 47, 48 }, 12 { 42, 43, 44, 45, 46, 47, 48 },
13 { 49, 50, 51, 52, 53, 54, 55 }, 13 { 49, 50, 51, 52, 53, 54, 55 },
14 { 56, 57, 58, 59, 60, 61, 62 }, 14 { 56, 57, 58, 59, 60, 61, 62 },
15 { 63, 64, 65, 66, 67, 68, 68 }, 15 { 63, 64, 65, 66, 67, 68, 68 },
16 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 68, 68 } 16 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 68, 68 }
17}, { 17}, {
18 // Left Hand Mapped Left to Right 18 // Left Hand Mapped Left to Right
19 { 0, 0 }, { 21, 0 }, { 38, 0 }, { 56, 0 }, { 73, 0 }, { 91, 0 }, { 112, 0 }, 19 { 0, 0 }, { 21, 0 }, { 38, 0 }, { 56, 0 }, { 73, 0 }, { 91, 0 }, { 112, 0 },
diff --git a/keyboards/rgbkb/sol/rev1/rules.mk b/keyboards/rgbkb/sol/rev1/rules.mk
index e69de29bb..dd6d25eb9 100644
--- a/keyboards/rgbkb/sol/rev1/rules.mk
+++ b/keyboards/rgbkb/sol/rev1/rules.mk
@@ -0,0 +1,28 @@
1# RGBKB Sol Rev1 Defaults
2
3# Keycode Options
4BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
5MOUSEKEY_ENABLE = no # Mouse keys(+4700)
6EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
7UNICODE_ENABLE = no # Unicode keycodes
8NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
9
10# Debug Options
11CONSOLE_ENABLE = no # Console for debug(+400)
12COMMAND_ENABLE = no # Commands for debug and configuration
13
14# RGB Options
15RGBLIGHT_ENABLE = yes # Enable global lighting effects. Do not enable with RGB Matrix
16RGBLIGHT_ANIMATIONS = yes # LED animations
17LED_MIRRORED = yes # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
18
19RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
20RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects.
21RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap.
22
23RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness for RGBLIGHT or RGB_MATRIX. Otherwise, limited to a safe level for a normal USB-A port
24IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
25
26# Misc
27OLED_DRIVER_ENABLE = no # Enable the OLED Driver
28SWAP_HANDS_ENABLE = no # Enable one-hand typing
diff --git a/keyboards/rgbkb/sol/rev2/config.h b/keyboards/rgbkb/sol/rev2/config.h
new file mode 100644
index 000000000..af74b7e46
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev2/config.h
@@ -0,0 +1,61 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3Copyright 2015 Jack Humbert
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#pragma once
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0xFEED
23#define PRODUCT_ID 0x3060
24#define DEVICE_VER 0x0002
25#define MANUFACTURER RGBKB
26#define PRODUCT Sol
27#define DESCRIPTION "An RGB, split, ortho-esque keyboard"
28
29/* ws2812 RGB LED */
30#define RGB_DI_PIN B7
31
32#define BACKLIGHT_LEDS 124
33
34#ifdef FULLHAND_ENABLE
35 #define FULLHAND_LEDS 24
36#else
37 #define FULLHAND_LEDS 0
38#endif
39
40// Underglow / DIY Tent Glow are parallel to the top row leds, no separate define
41
42#ifdef LED_MIRRORED
43 #define RGBLED_NUM ((BACKLIGHT_LEDS + FULLHAND_LEDS) / 2)
44#else
45 #define RGBLED_NUM (BACKLIGHT_LEDS + FULLHAND_LEDS)
46#endif
47#define DRIVER_LED_TOTAL RGBLED_NUM
48
49#define RGB_MATRIX_CENTER { 112, 37 }
50
51// Encoder support
52#ifndef EXTRA_ENCODERS_ENABLE
53#define ENCODERS_PAD_A { D2 }
54#define ENCODERS_PAD_B { D6 }
55#else
56#ifdef OLED_DRIVER_ENABLE
57 #error Extra encoders cannot be enabled at the same time as the OLED Driver as they use the same pins.
58#endif
59#define ENCODERS_PAD_A { D2, D1, B0 }
60#define ENCODERS_PAD_B { D6, B1, D0 }
61#endif
diff --git a/keyboards/rgbkb/sol/rev2/info.json b/keyboards/rgbkb/sol/rev2/info.json
new file mode 100644
index 000000000..e252ea2e2
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev2/info.json
@@ -0,0 +1,87 @@
1{
2 "keyboard_name": "Sol",
3 "url": "",
4 "maintainer": "Legonut",
5 "width": 17,
6 "height": 6.5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"L00", "x":0, "y":0, "w":1.5},
11 {"label":"L01", "x":1.5, "y":0},
12 {"label":"L02", "x":2.5, "y":0},
13 {"label":"L03", "x":3.5, "y":0},
14 {"label":"L04", "x":4.5, "y":0},
15 {"label":"L05", "x":5.5, "y":0},
16 {"label":"L06", "x":6.75, "y":0},
17 {"label":"R06", "x":9.25, "y":0},
18 {"label":"R00", "x":10.5, "y":0},
19 {"label":"R01", "x":11.5, "y":0},
20 {"label":"R02", "x":12.5, "y":0},
21 {"label":"R03", "x":13.5, "y":0},
22 {"label":"R04", "x":14.5, "y":0},
23 {"label":"R05", "x":15.5, "y":0, "w":1.5},
24 {"label":"L10", "x":0, "y":1, "w":1.5},
25 {"label":"L11", "x":1.5, "y":1},
26 {"label":"L12", "x":2.5, "y":1},
27 {"label":"L13", "x":3.5, "y":1},
28 {"label":"L14", "x":4.5, "y":1},
29 {"label":"L15", "x":5.5, "y":1},
30 {"label":"L16", "x":6.75, "y":1},
31 {"label":"R16", "x":9.25, "y":1},
32 {"label":"R10", "x":10.5, "y":1},
33 {"label":"R11", "x":11.5, "y":1},
34 {"label":"R12", "x":12.5, "y":1},
35 {"label":"R13", "x":13.5, "y":1},
36 {"label":"R14", "x":14.5, "y":1},
37 {"label":"R15", "x":15.5, "y":1, "w":1.5},
38 {"label":"L20", "x":0, "y":2, "w":1.5},
39 {"label":"L21", "x":1.5, "y":2},
40 {"label":"L22", "x":2.5, "y":2},
41 {"label":"L23", "x":3.5, "y":2},
42 {"label":"L24", "x":4.5, "y":2},
43 {"label":"L25", "x":5.5, "y":2},
44 {"label":"L26", "x":6.75, "y":2},
45 {"label":"R26", "x":9.25, "y":2},
46 {"label":"R20", "x":10.5, "y":2},
47 {"label":"R21", "x":11.5, "y":2},
48 {"label":"R22", "x":12.5, "y":2},
49 {"label":"R23", "x":13.5, "y":2},
50 {"label":"R24", "x":14.5, "y":2},
51 {"label":"R25", "x":15.5, "y":2, "w":1.5},
52 {"label":"L30", "x":0, "y":3, "w":1.5},
53 {"label":"L31", "x":1.5, "y":3},
54 {"label":"L32", "x":2.5, "y":3},
55 {"label":"L33", "x":3.5, "y":3},
56 {"label":"L34", "x":4.5, "y":3},
57 {"label":"L35", "x":5.5, "y":3},
58 {"label":"L36", "x":6.75, "y":3},
59 {"label":"R36", "x":9.25, "y":3},
60 {"label":"R30", "x":10.5, "y":3},
61 {"label":"R31", "x":11.5, "y":3},
62 {"label":"R32", "x":12.5, "y":3},
63 {"label":"R33", "x":13.5, "y":3},
64 {"label":"R34", "x":14.5, "y":3},
65 {"label":"R35", "x":15.5, "y":3, "w":1.5},
66 {"label":"L40", "x":0, "y":4, "w":1.5},
67 {"label":"L41", "x":1.5, "y":4},
68 {"label":"L42", "x":2.5, "y":4},
69 {"label":"L43", "x":3.5, "y":4},
70 {"label":"L44", "x":4.5, "y":4},
71 {"label":"L45", "x":6, "y":4.5},
72 {"label":"L46", "x":7, "y":4.5},
73 {"label":"R46", "x":9, "y":4.5},
74 {"label":"R40", "x":10, "y":4.5},
75 {"label":"R41", "x":11.5, "y":4},
76 {"label":"R42", "x":12.5, "y":4},
77 {"label":"R43", "x":13.5, "y":4},
78 {"label":"R44", "x":14.5, "y":4},
79 {"label":"R45", "x":15.5, "y":4, "w":1.5},
80 {"label":"L55", "x":6, "y":5.5},
81 {"label":"L56", "x":7, "y":5.5},
82 {"label":"R56", "x":9, "y":5.5},
83 {"label":"R50", "x":10, "y":5.5}
84 ]
85 }
86 }
87}
diff --git a/keyboards/rgbkb/sol/rev2/post_rules.mk b/keyboards/rgbkb/sol/rev2/post_rules.mk
new file mode 100644
index 000000000..0cbf430ad
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev2/post_rules.mk
@@ -0,0 +1,37 @@
1# As long as the users rules.mk has include $(KEYBOARD)/post_rules.mk this will be run after to properly setup any keyboard features and defines
2
3ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
4 OPT_DEFS += -DIOS_DEVICE_ENABLE
5else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes)
6 OPT_DEFS += -DRGBLIGHT_FULL_POWER
7endif
8
9ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes)
10 OPT_DEFS += -DRGB_MATRIX_KEYPRESSES
11endif
12
13ifeq ($(strip $(RGB_MATRIX_FRAMEBUFFER)), yes)
14 OPT_DEFS += -DRGB_MATRIX_FRAMEBUFFER_EFFECTS
15endif
16
17ifeq ($(strip $(LED_MIRRORED)), yes)
18 OPT_DEFS += -DLED_MIRRORED
19endif
20
21ifeq ($(strip $(FULLHAND_ENABLE)), yes)
22 OPT_DEFS += -DFULLHAND_ENABLE
23endif
24
25ifeq ($(strip $(EXTRA_ENCODERS_ENABLE)), yes)
26 OPT_DEFS += -DEXTRA_ENCODERS_ENABLE
27endif
28
29ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
30 ifeq ($(strip $(ENCODER_ENABLE)), yes)
31 ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
32 ifneq ($(strip $(RGB_OLED_MENU)), no)
33 OPT_DEFS += -DRGB_OLED_MENU=$(strip $(RGB_OLED_MENU))
34 endif
35 endif
36 endif
37endif
diff --git a/keyboards/rgbkb/sol/rev2/rev2.c b/keyboards/rgbkb/sol/rev2/rev2.c
new file mode 100644
index 000000000..467aa18e4
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev2/rev2.c
@@ -0,0 +1,89 @@
1#include "quantum.h"
2
3#ifdef RGB_MATRIX_ENABLE
4led_config_t g_led_config = { {
5 { 0, 1, 2, 3, 4, 5, 6 },
6 { 7, 8, 9, 10, 11, 12, 13 },
7 { 14, 15, 16, 17, 18, 19, 20 },
8 { 21, 22, 23, 24, 25, 26, 27 },
9 { 28, 29, 30, 31, 32, 33, 34 },
10 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 },
11// Need to shift Right hand indexes if full hand LEDs are enabled
12#define LO (FULLHAND_LEDS / 2)
13 { LO+62, LO+63, LO+64, LO+65, LO+66, LO+67, LO+68 },
14 { LO+69, LO+70, LO+71, LO+72, LO+73, LO+74, LO+75 },
15 { LO+76, LO+77, LO+78, LO+79, LO+80, LO+81, LO+82 },
16 { LO+83, LO+84, LO+85, LO+86, LO+87, LO+88, LO+89 },
17 { LO+90, LO+91, LO+92, LO+93, LO+94, LO+95, LO+95 },
18 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, LO+95, LO+95 }
19#undef LO
20}, {
21// Left Hand Mapped Left to Right
22 { 11, 14 }, { 28, 14 }, { 42, 14 }, { 56, 14 }, { 70, 14 }, { 84, 14 }, { 102, 14 },
23 { 11, 28 }, { 28, 28 }, { 42, 28 }, { 56, 28 }, { 70, 28 }, { 84, 28 }, { 98, 25 },
24 { 11, 42 }, { 28, 42 }, { 42, 42 }, { 56, 42 }, { 70, 42 }, { 84, 42 }, { 98, 39 },
25 { 11, 56 }, { 28, 56 }, { 42, 56 }, { 56, 56 }, { 70, 56 }, { 84, 56 }, { 98, 53 },
26 { 11, 70 }, { 28, 70 }, { 42, 70 }, { 56, 70 }, { 70, 70 }, { 83, 87 }, { 93, 97 },
27// Edge Light Left
28 { 0, 66 }, { 0, 52 }, { 0, 38 }, { 0, 24 }, { 0, 10 }, { 31, 0 }, { 38, 0 },
29 { 46, 0 }, { 54, 0 }, { 61, 0 }, { 69, 0 }, { 76, 0 }, { 84, 0 }, { 109, 11 },
30 { 109, 24 }, { 109, 39 }, { 109, 53 }, { 110, 73 }, { 112, 85 }, { 106, 95 }, { 95, 98 },
31 { 83, 91 }, { 71, 84 }, { 58, 77 }, { 42, 74 }, { 28, 74 }, { 14, 74 },
32// Full Hand Left
33#ifdef FULLHAND_ENABLE
34 { 2, 88 }, { 2, 103 }, { 2, 117 }, { 2, 132 }, { 10, 145 }, { 25, 145 }, { 39, 145 },
35 { 54, 145 }, { 69, 145 }, { 79, 136 }, { 87, 124 }, { 94, 111 },
36#endif
37// Left Hand Mapped Right to Left
38 { 213, 14 }, { 196, 14 }, { 182, 14 }, { 168, 14 }, { 154, 14 }, { 140, 14 }, { 122, 14 },
39 { 213, 28 }, { 196, 28 }, { 182, 28 }, { 168, 28 }, { 154, 28 }, { 140, 28 }, { 126, 25 },
40 { 213, 42 }, { 196, 42 }, { 182, 42 }, { 168, 42 }, { 154, 42 }, { 140, 42 }, { 126, 39 },
41 { 213, 56 }, { 196, 56 }, { 182, 56 }, { 168, 56 }, { 154, 56 }, { 140, 56 }, { 126, 53 },
42 { 213, 70 }, { 196, 70 }, { 182, 70 }, { 168, 70 }, { 154, 70 }, { 141, 87 }, { 131, 97 },
43// Edge Light Right
44 { 224, 66 }, { 224, 52 }, { 224, 38 }, { 224, 24 }, { 224, 10 }, { 193, 0 }, { 186, 0 },
45 { 178, 0 }, { 170, 0 }, { 163, 0 }, { 155, 0 }, { 148, 0 }, { 140, 0 }, { 115, 11 },
46 { 115, 24 }, { 115, 39 }, { 115, 53 }, { 114, 73 }, { 112, 85 }, { 118, 95 }, { 129, 98 },
47 { 141, 91 }, { 153, 84 }, { 166, 77 }, { 182, 74 }, { 196, 74 }, { 210, 74 }
48// Full Hand Right
49#ifdef FULLHAND_ENABLE
50 ,{ 222, 88 }, { 222, 103 }, { 222, 117 }, { 222, 132 }, { 214, 145 }, { 199, 145 }, { 185, 145 },
51 { 170, 145 }, { 155, 145 }, { 145, 136 }, { 137, 124 }, { 130, 111 }
52#endif
53}, {
54// Left Hand Mapped Left to Right
55 1, 4, 4, 4, 4, 4, 1,
56 1, 4, 4, 4, 4, 4, 1,
57 1, 4, 4, 4, 4, 4, 1,
58 1, 4, 4, 4, 4, 4, 1,
59 1, 1, 1, 1, 1, 1, 1,
60// Edge Light Left
61 2, 2, 2, 2, 2, 2, 2,
62 2, 2, 2, 2, 2, 2, 2,
63 2, 2, 2, 2, 2, 2, 2,
64 2, 2, 2, 2, 2, 2,
65// Full Hand Left
66#ifdef FULLHAND_ENABLE
67 2, 2, 2, 2, 2, 2, 2,
68 2, 2, 2, 2, 2,
69#endif
70// Left Hand Mapped Right to Left
71 1, 4, 4, 4, 4, 4, 1,
72 1, 4, 4, 4, 4, 4, 1,
73 1, 4, 4, 4, 4, 4, 1,
74 1, 4, 4, 4, 4, 4, 1,
75 1, 1, 1, 1, 1, 1, 1,
76// Edge Light Right
77 2, 2, 2, 2, 2, 2, 2,
78 2, 2, 2, 2, 2, 2, 2,
79 2, 2, 2, 2, 2, 2, 2,
80 2, 2, 2, 2, 2, 2
81// Full Hand Right
82#ifdef FULLHAND_ENABLE
83 ,2, 2, 2, 2, 2, 2, 2,
84 2, 2, 2, 2, 2
85#endif
86} };
87
88#endif
89
diff --git a/keyboards/rgbkb/sol/rev2/rev2.h b/keyboards/rgbkb/sol/rev2/rev2.h
new file mode 100644
index 000000000..6f70f09be
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev2/rev2.h
@@ -0,0 +1 @@
#pragma once
diff --git a/keyboards/rgbkb/sol/rev2/rules.mk b/keyboards/rgbkb/sol/rev2/rules.mk
new file mode 100644
index 000000000..87b400fa1
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev2/rules.mk
@@ -0,0 +1,35 @@
1# RGBKB Sol Rev2 Defaults
2
3# Keycode Options
4BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(
5MOUSEKEY_ENABLE = no # Mouse keys
6EXTRAKEY_ENABLE = yes # Audio control and System control
7UNICODE_ENABLE = no # Unicode keycodes
8NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
9
10# Debug Options
11CONSOLE_ENABLE = no # Console for debug(+400)
12COMMAND_ENABLE = no # Commands for debug and configuration
13
14# RGB Options
15RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
16RGBLIGHT_ANIMATIONS = no # LED animations
17LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
18
19RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
20RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects.
21RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap.
22
23RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness for RGBLIGHT or RGB_MATRIX. Otherwise, limited to a safe level for a normal USB-A port
24FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs
25IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
26
27# Misc
28OLED_DRIVER_ENABLE = no # Enable the OLED Driver
29EXTRA_ENCODERS_ENABLE = no # Enables 3 encoders per side (up from 1, not compatible with OLED_DRIVER_ENABLE)
30SWAP_HANDS_ENABLE = no # Enable one-hand typing
31LINK_TIME_OPTIMIZATION_ENABLE = yes # Enable Link Time Optimizations greatly reducing firmware size by disabling the old Macros and Functions features
32
33# Special RGB Matrix, OLED, & Encoder Control Menu!
34RGB_OLED_MENU = no # Enabled by setting this to the encoder index (0-5) you wish to use to control the menu.
35 # Use the RGB_MENU keycode in the keymap for the encoder to advance the menu to the next option.
diff --git a/keyboards/rgbkb/sol/rules.mk b/keyboards/rgbkb/sol/rules.mk
index a3dcfc290..3be8f0b22 100644
--- a/keyboards/rgbkb/sol/rules.mk
+++ b/keyboards/rgbkb/sol/rules.mk
@@ -2,41 +2,15 @@
2MCU = atmega32u4 2MCU = atmega32u4
3 3
4# Processor frequency. 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 5F_CPU = 16000000
16 6
17#
18# LUFA specific
19#
20# Target architecture (see library "Board Types" documentation). 7# Target architecture (see library "Board Types" documentation).
21ARCH = AVR8 8ARCH = AVR8
22 9
23# Input clock frequency. 10# 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) 11F_USB = $(F_CPU)
35 12
36# Bootloader 13# Bootloader
37# This definition is optional, and if your keyboard supports multiple bootloaders of
38# different sizes, comment this out, and the correct address will be loaded
39# automatically (+60). See bootloader.mk for all options.
40BOOTLOADER = qmk-dfu 14BOOTLOADER = qmk-dfu
41 15
42# Interrupt driven control endpoint task(+60) 16# Interrupt driven control endpoint task(+60)
@@ -48,18 +22,4 @@ OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
48SPLIT_KEYBOARD = yes 22SPLIT_KEYBOARD = yes
49ENCODER_ENABLE = yes 23ENCODER_ENABLE = yes
50 24
51# Build Options 25DEFAULT_FOLDER = rgbkb/sol/rev2
52# change to "no" to disable the options, or define them in the Makefile in
53# the appropriate keymap folder that will get included automatically
54#
55BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
56MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
57EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
58CONSOLE_ENABLE = no # Console for debug(+400)
59COMMAND_ENABLE = yes # Commands for debug and configuration
60NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
61UNICODE_ENABLE = no # Unicode
62BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
63RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
64
65DEFAULT_FOLDER = rgbkb/sol/rev1
diff --git a/keyboards/rgbkb/sol/sol.h b/keyboards/rgbkb/sol/sol.h
index d26546006..1bc87cb0a 100644
--- a/keyboards/rgbkb/sol/sol.h
+++ b/keyboards/rgbkb/sol/sol.h
@@ -3,6 +3,8 @@
3#include "quantum.h" 3#include "quantum.h"
4#ifdef KEYBOARD_rgbkb_sol_rev1 4#ifdef KEYBOARD_rgbkb_sol_rev1
5#include "rev1.h" 5#include "rev1.h"
6#else
7#include "rev2.h"
6#endif 8#endif
7 9
8 10
@@ -29,6 +31,32 @@
29 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, R50, R56 } \ 31 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, R50, R56 } \
30 } 32 }
31 33
34#define ENCODER_LAYOUT( \
35 E10, E11, \
36 E20, E21 \
37) \
38{ \
39 { E10, E11 }, \
40 { E20, E21 } \
41}
42
43#define EXTRA_ENCODER_LAYOUT( \
44 E10, E11, \
45 E20, E21, \
46 E30, E31, \
47 E40, E41, \
48 E50, E51, \
49 E60, E61 \
50) \
51{ \
52 { E10, E11 }, \
53 { E20, E21 }, \
54 { E30, E31 }, \
55 { E40, E41 }, \
56 { E50, E51 }, \
57 { E60, E61 } \
58}
59
32#define KC________ KC_TRNS 60#define KC________ KC_TRNS
33#define KC_RGB_MOD RGB_MOD 61#define KC_RGB_MOD RGB_MOD
34#define KC_FN FN 62#define KC_FN FN
diff --git a/users/xulkal/custom_encoder.c b/users/xulkal/custom_encoder.c
index 09f1cda0d..076a9891a 100644
--- a/users/xulkal/custom_encoder.c
+++ b/users/xulkal/custom_encoder.c
@@ -4,7 +4,7 @@
4const uint16_t PROGMEM encoders[][2] = { 4const uint16_t PROGMEM encoders[][2] = {
5 { KC_PGUP, KC_PGDN }, 5 { KC_PGUP, KC_PGDN },
6 { KC_DOWN, KC_UP } 6 { KC_DOWN, KC_UP }
7} 7};
8 8
9void encoder_update_user(uint8_t index, bool clockwise) 9void encoder_update_user(uint8_t index, bool clockwise)
10{ 10{