aboutsummaryrefslogtreecommitdiff
path: root/keyboards/sofle
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/sofle')
-rw-r--r--keyboards/sofle/keymaps/devdev/config.h44
-rw-r--r--keyboards/sofle/keymaps/killmaster/config.h64
-rw-r--r--keyboards/sofle/keymaps/killmaster/keymap.c403
-rw-r--r--keyboards/sofle/keymaps/killmaster/readme.md19
-rw-r--r--keyboards/sofle/keymaps/killmaster/rules.mk4
-rw-r--r--keyboards/sofle/keymaps/rgb_default/config.h44
-rw-r--r--keyboards/sofle/rev1/readme.md27
-rw-r--r--keyboards/sofle/rev1/rev1.c86
8 files changed, 647 insertions, 44 deletions
diff --git a/keyboards/sofle/keymaps/devdev/config.h b/keyboards/sofle/keymaps/devdev/config.h
index 7d597d991..32d071735 100644
--- a/keyboards/sofle/keymaps/devdev/config.h
+++ b/keyboards/sofle/keymaps/devdev/config.h
@@ -1,18 +1,18 @@
1 /* Copyright 2021 Dane Evans 1 /* Copyright 2021 Dane Evans
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or 5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version. 6 * (at your option) any later version.
7 * 7 *
8 * This program is distributed in the hope that it will be useful, 8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details. 11 * GNU General Public License for more details.
12 * 12 *
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/ 15*/
16 #pragma once 16 #pragma once
17 17
18 18
@@ -29,7 +29,7 @@
29 29
30#define CUSTOM_FONT 30#define CUSTOM_FONT
31 31
32#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding 32#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding
33 33
34 34
35#define TAPPING_FORCE_HOLD 35#define TAPPING_FORCE_HOLD
@@ -56,7 +56,7 @@
56 56
57#ifdef RGBLIGHT_ENABLE 57#ifdef RGBLIGHT_ENABLE
58 #undef RGBLED_NUM 58 #undef RGBLED_NUM
59 59
60 //#define RGBLIGHT_ANIMATIONS 60 //#define RGBLIGHT_ANIMATIONS
61 //#define RGBLIGHT_EFFECT_BREATHING 61 //#define RGBLIGHT_EFFECT_BREATHING
62 #define RGBLIGHT_EFFECT_RAINBOW_MOOD 62 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
@@ -68,11 +68,11 @@
68 //#define RGBLIGHT_EFFECT_RGB_TEST 68 //#define RGBLIGHT_EFFECT_RGB_TEST
69 //#define RGBLIGHT_EFFECT_ALTERNATING 69 //#define RGBLIGHT_EFFECT_ALTERNATING
70 //#define RGBLIGHT_EFFECT_TWINKLE 70 //#define RGBLIGHT_EFFECT_TWINKLE
71 71
72 #define RGBLED_NUM 70 72 #define RGBLED_NUM 70
73 //#define RGBLED_SPLIT 73 //#define RGBLED_SPLIT
74 #define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet 74 #define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet
75 75
76 //#define RGBLED_NUM 30 76 //#define RGBLED_NUM 30
77 #define RGBLIGHT_LIMIT_VAL 120 77 #define RGBLIGHT_LIMIT_VAL 120
78 #define RGBLIGHT_HUE_STEP 10 78 #define RGBLIGHT_HUE_STEP 10
@@ -84,11 +84,11 @@
84# define RGB_MATRIX_KEYPRESSES // reacts to keypresses 84# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
85// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) 85// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
86// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects 86// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
87# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended 87# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
88# define RGB_MATRIX_FRAMEBUFFER_EFFECTS 88# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
89// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) 89// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
90// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) 90// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
91# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. 91# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
92 92
93#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT 93#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT
94 94
@@ -127,4 +127,4 @@
127// # define DISABLE_RGB_MATRIX_MULTISPLASH 127// # define DISABLE_RGB_MATRIX_MULTISPLASH
128// # define DISABLE_RGB_MATRIX_SOLID_SPLASH 128// # define DISABLE_RGB_MATRIX_SOLID_SPLASH
129// # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH 129// # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
130#endif \ No newline at end of file 130#endif
diff --git a/keyboards/sofle/keymaps/killmaster/config.h b/keyboards/sofle/keymaps/killmaster/config.h
new file mode 100644
index 000000000..2e6abe84e
--- /dev/null
+++ b/keyboards/sofle/keymaps/killmaster/config.h
@@ -0,0 +1,64 @@
1/* Copyright 2021 Carlos Martins
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18/* The way how "handedness" is decided (which half is which),
19see https://docs.qmk.fm/#/feature_split_keyboard?id=setting-handedness
20for more options.
21*/
22
23#define RGB_DI_PIN D3
24
25#ifdef RGB_MATRIX_ENABLE
26
27#define RGBLED_NUM 72
28#define DRIVER_LED_TOTAL RGBLED_NUM
29#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
30#define RGB_MATRIX_HUE_STEP 8
31#define RGB_MATRIX_SAT_STEP 8
32#define RGB_MATRIX_VAL_STEP 8
33#define RGB_MATRIX_SPD_STEP 10
34#define RGB_MATRIX_KEYPRESSES
35#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
36#define RGB_MATRIX_SPLIT {36,36}
37#define SPLIT_TRANSPORT_MIRROR
38
39#endif
40
41#ifdef RGBLIGHT_ENABLE
42#define RGBLIGHT_SPLIT
43#define RGBLED_NUM 70
44#define RGB_SPLIT {36,36}
45#define RGBLIGHT_LIMIT_VAL 120
46// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
47// /*== all animations enable ==*/
48// #define RGBLIGHT_ANIMATIONS
49// /*== or choose animations ==*/
50// #define RGBLIGHT_EFFECT_BREATHING
51 //#define RGBLIGHT_EFFECT_RAINBOW_MOOD
52 //#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
53// #define RGBLIGHT_EFFECT_SNAKE
54// #define RGBLIGHT_EFFECT_KNIGHT
55// #define RGBLIGHT_EFFECT_CHRISTMAS
56 #define RGBLIGHT_EFFECT_STATIC_GRADIENT
57 #define RGBLIGHT_EFFECT_RGB_TEST
58// #define RGBLIGHT_EFFECT_ALTERNATING
59#endif
60
61#define MEDIA_KEY_DELAY 2
62
63#define USB_POLLING_INTERVAL_MS 1
64#define QMK_KEYS_PER_SCAN 12
diff --git a/keyboards/sofle/keymaps/killmaster/keymap.c b/keyboards/sofle/keymaps/killmaster/keymap.c
new file mode 100644
index 000000000..950dee36b
--- /dev/null
+++ b/keyboards/sofle/keymaps/killmaster/keymap.c
@@ -0,0 +1,403 @@
1/* Copyright 2021 Carlos Martins
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18#include <stdio.h>
19
20enum sofle_layers {
21 /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */
22 _QWERTY,
23 _LOWER,
24 _RAISE,
25 _ADJUST,
26};
27
28enum custom_keycodes {
29 KC_QWERTY = SAFE_RANGE,
30 KC_LOWER,
31 KC_RAISE,
32 KC_ADJUST,
33 KC_PRVWD,
34 KC_NXTWD,
35 KC_LSTRT,
36 KC_LEND,
37 KC_DLINE
38};
39
40
41const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42/*
43 * QWERTY
44 * ,-----------------------------------------. ,-----------------------------------------.
45 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
46 * |------+------+------+------+------+------| |------+------+------+------+------+------|
47 * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc |
48 * |------+------+------+------+------+------| |------+------+------+------+------+------|
49 * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
50 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
51 * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
52 * `-----------------------------------------/ / \ \-----------------------------------------'
53 * | LGUI | LAlt | LCTR |LOWER | /Space / \Enter \ |RAISE | RCTR | RAlt | RGUI |
54 * | | | | |/ / \ \ | | | | |
55 * `----------------------------------' '------''---------------------------'
56 */
57
58[_QWERTY] = LAYOUT(
59 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
60 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
61 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
62 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
63 KC_LGUI,KC_LALT,KC_LCTRL, KC_LOWER, KC_SPC, KC_ENT, KC_RAISE, KC_RCTRL, KC_RALT, KC_RGUI
64),
65/* LOWER
66 * ,-----------------------------------------. ,-----------------------------------------.
67 * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
68 * |------+------+------+------+------+------| |------+------+------+------+------+------|
69 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 |
70 * |------+------+------+------+------+------| |------+------+------+------+------+------|
71 * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | |
72 * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
73 * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift|
74 * `-----------------------------------------/ / \ \-----------------------------------------'
75 * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
76 * | | | | |/ / \ \ | | | | |
77 * `----------------------------------' '------''---------------------------'
78 */
79[_LOWER] = LAYOUT(
80 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
81 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12,
82 _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
83 _______, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
84 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
85),
86/* RAISE
87 * ,----------------------------------------. ,-----------------------------------------.
88 * | | | | | | | | | | | | | |
89 * |------+------+------+------+------+------| |------+------+------+------+------+------|
90 * | Esc | Ins | Pscr | Menu | |RGBTog| | | PWrd | Up | NWrd | DLine| Bspc |
91 * |------+------+------+------+------+------| |------+------+------+------+------+------|
92 * | Tab | LAt | LCtl |LShift| | Caps |-------. ,-------| | Left | Down | Rigth| Del | Bspc |
93 * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
94 * |Shift | Undo | Cut | Copy | Paste| |-------| |-------| | LStr | | LEnd | | Shift|
95 * `-----------------------------------------/ / \ \-----------------------------------------'
96 * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
97 * | | | | |/ / \ \ | | | | |
98 * `----------------------------------' '------''---------------------------'
99 */
100[_RAISE] = LAYOUT(
101 _______, _______ , _______ , _______ , RGB_RMOD , RGB_MOD, _______, _______ , _______, _______ , _______ ,_______,
102 _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, RGB_TOG, KC_PGUP, KC_PRVWD, KC_UP, KC_NXTWD,KC_DLINE, KC_BSPC,
103 _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_BSPC,
104 _______,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, KC_LSTRT, XXXXXXX, KC_LEND, XXXXXXX, _______,
105 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
106),
107/* ADJUST
108 * ,-----------------------------------------. ,-----------------------------------------.
109 * | | | | | | | | | | | | | |
110 * |------+------+------+------+------+------| |------+------+------+------+------+------|
111 * | RESET| |QWERTY|COLEMAK| | | | | | | | | |
112 * |------+------+------+------+------+------| |------+------+------+------+------+------|
113 * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | |
114 * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
115 * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | |
116 * `-----------------------------------------/ / \ \-----------------------------------------'
117 * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
118 * | | | | |/ / \ \ | | | | |
119 * `----------------------------------' '------''---------------------------'
120 */
121 [_ADJUST] = LAYOUT(
122 XXXXXXX , XXXXXXX, XXXXXXX , XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
123 RESET , XXXXXXX, KC_QWERTY, XXXXXXX , CG_TOGG,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
124 XXXXXXX , XXXXXXX,CG_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX,
125 XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
126 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
127 )
128};
129
130#ifdef OLED_DRIVER_ENABLE
131
132static void render_logo(void) {
133 static const char PROGMEM bananas_logo[] = {
134 // 'killmaster_bananas', 128x32px
135 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xe0, 0x02, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
136 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
137 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
138 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
139 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
140 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
141 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
142 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
143 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
144 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8,
145 0x00, 0x00, 0x80, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x40, 0x40, 0xd8, 0xc8, 0x00, 0x00, 0x00, 0x00,
146 0x08, 0x08, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0xf8, 0xf8, 0x00, 0x00, 0x00,
147 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40,
148 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0xc0, 0x40, 0x00, 0x00, 0x40, 0x40, 0xf0,
149 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x00,
150 0x40, 0xc0, 0x80, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
151 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf0,
152 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f,
153 0x02, 0x07, 0x0d, 0x10, 0x20, 0x20, 0x00, 0x00, 0x20, 0x20, 0x3f, 0x3f, 0x20, 0x20, 0x00, 0x00,
154 0x00, 0x00, 0x1f, 0x3f, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x20, 0x20, 0x20,
155 0x00, 0x00, 0x3f, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x1c, 0x36, 0x22, 0x22, 0x22,
156 0x1f, 0x20, 0x00, 0x00, 0x10, 0x23, 0x22, 0x22, 0x26, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x1f,
157 0x30, 0x20, 0x20, 0x20, 0x00, 0x00, 0x0f, 0x1f, 0x32, 0x22, 0x22, 0x32, 0x23, 0x00, 0x00, 0x00,
158 0x20, 0x3f, 0x21, 0x20, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
159 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x0f, 0x0f, 0x1f, 0x1f,
160 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3e, 0x3e, 0x1c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
161 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
162 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
163 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
164 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
165 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
166 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
167 };
168 oled_write_raw_P(bananas_logo, sizeof(bananas_logo));
169}
170
171static void print_status_narrow(void) {
172 // Print current mode
173 oled_write_P(PSTR("Sofle"), false);
174 oled_write_P(PSTR("\n\n\n"), false);
175 switch (get_highest_layer(default_layer_state)) {
176 case _QWERTY:
177 oled_write_ln_P(PSTR("QWERT"), false);
178 break;
179 default:
180 oled_write_P(PSTR("Undef"), false);
181 }
182 oled_write_P(PSTR("\n\n"), false);
183 // Print current layer
184 oled_write_ln_P(PSTR("Layer"), false);
185 switch (get_highest_layer(layer_state)) {
186 case _QWERTY:
187 oled_write_P(PSTR("Base\n"), false);
188 break;
189 case _RAISE:
190 oled_write_P(PSTR("Raise"), false);
191 break;
192 case _LOWER:
193 oled_write_P(PSTR("Lower"), false);
194 break;
195 case _ADJUST:
196 oled_write_P(PSTR("Adj\n"), false);
197 break;
198 default:
199 oled_write_ln_P(PSTR("Undef"), false);
200 }
201 oled_write_P(PSTR("\n\n"), false);
202}
203
204oled_rotation_t oled_init_user(oled_rotation_t rotation) {
205 if (is_keyboard_master()) {
206 return OLED_ROTATION_270;
207 }
208 else {
209 return OLED_ROTATION_180;
210 }
211 return rotation;
212}
213
214void oled_task_user(void) {
215 if (is_keyboard_master()) {
216 print_status_narrow();
217 } else {
218 render_logo();
219 }
220}
221
222
223
224#endif // OLED_DRIVER_ENABLE
225
226bool process_record_user(uint16_t keycode, keyrecord_t *record) {
227 switch (keycode) {
228 case KC_QWERTY:
229 if (record->event.pressed) {
230 set_single_persistent_default_layer(_QWERTY);
231 }
232 return false;
233 case KC_LOWER:
234 if (record->event.pressed) {
235 layer_on(_LOWER);
236 update_tri_layer(_LOWER, _RAISE, _ADJUST);
237 } else {
238 layer_off(_LOWER);
239 update_tri_layer(_LOWER, _RAISE, _ADJUST);
240 }
241 return false;
242 case KC_RAISE:
243 if (record->event.pressed) {
244 layer_on(_RAISE);
245 update_tri_layer(_LOWER, _RAISE, _ADJUST);
246 } else {
247 layer_off(_RAISE);
248 update_tri_layer(_LOWER, _RAISE, _ADJUST);
249 }
250 return false;
251 case KC_ADJUST:
252 if (record->event.pressed) {
253 layer_on(_ADJUST);
254 } else {
255 layer_off(_ADJUST);
256 }
257 return false;
258 case KC_PRVWD:
259 if (record->event.pressed) {
260 if (keymap_config.swap_lctl_lgui) {
261 register_mods(mod_config(MOD_LALT));
262 register_code(KC_LEFT);
263 } else {
264 register_mods(mod_config(MOD_LCTL));
265 register_code(KC_LEFT);
266 }
267 } else {
268 if (keymap_config.swap_lctl_lgui) {
269 unregister_mods(mod_config(MOD_LALT));
270 unregister_code(KC_LEFT);
271 } else {
272 unregister_mods(mod_config(MOD_LCTL));
273 unregister_code(KC_LEFT);
274 }
275 }
276 break;
277 case KC_NXTWD:
278 if (record->event.pressed) {
279 if (keymap_config.swap_lctl_lgui) {
280 register_mods(mod_config(MOD_LALT));
281 register_code(KC_RIGHT);
282 } else {
283 register_mods(mod_config(MOD_LCTL));
284 register_code(KC_RIGHT);
285 }
286 } else {
287 if (keymap_config.swap_lctl_lgui) {
288 unregister_mods(mod_config(MOD_LALT));
289 unregister_code(KC_RIGHT);
290 } else {
291 unregister_mods(mod_config(MOD_LCTL));
292 unregister_code(KC_RIGHT);
293 }
294 }
295 break;
296 case KC_LSTRT:
297 if (record->event.pressed) {
298 if (keymap_config.swap_lctl_lgui) {
299 //CMD-arrow on Mac, but we have CTL and GUI swapped
300 register_mods(mod_config(MOD_LCTL));
301 register_code(KC_LEFT);
302 } else {
303 register_code(KC_HOME);
304 }
305 } else {
306 if (keymap_config.swap_lctl_lgui) {
307 unregister_mods(mod_config(MOD_LCTL));
308 unregister_code(KC_LEFT);
309 } else {
310 unregister_code(KC_HOME);
311 }
312 }
313 break;
314 case KC_LEND:
315 if (record->event.pressed) {
316 if (keymap_config.swap_lctl_lgui) {
317 //CMD-arrow on Mac, but we have CTL and GUI swapped
318 register_mods(mod_config(MOD_LCTL));
319 register_code(KC_RIGHT);
320 } else {
321 register_code(KC_END);
322 }
323 } else {
324 if (keymap_config.swap_lctl_lgui) {
325 unregister_mods(mod_config(MOD_LCTL));
326 unregister_code(KC_RIGHT);
327 } else {
328 unregister_code(KC_END);
329 }
330 }
331 break;
332 case KC_DLINE:
333 if (record->event.pressed) {
334 register_mods(mod_config(MOD_LCTL));
335 register_code(KC_BSPC);
336 } else {
337 unregister_mods(mod_config(MOD_LCTL));
338 unregister_code(KC_BSPC);
339 }
340 break;
341 }
342 return true;
343}
344
345#ifdef ENCODER_ENABLE
346
347bool encoder_update_user(uint8_t index, bool clockwise) {
348 uint8_t temp_mod = get_mods();
349 uint8_t temp_osm = get_oneshot_mods();
350 bool is_ctrl = (temp_mod | temp_osm) & MOD_MASK_CTRL;
351 bool is_shift = (temp_mod | temp_osm) & MOD_MASK_SHIFT;
352
353 if (is_shift) {
354 if (index == 0) { /* First encoder */
355 if (clockwise) {
356 rgb_matrix_increase_hue();
357 } else {
358 rgb_matrix_decrease_hue();
359 }
360 } else if (index == 1) { /* Second encoder */
361 if (clockwise) {
362 rgb_matrix_decrease_sat();
363 } else {
364 rgb_matrix_increase_sat();
365 }
366 }
367 } else if (is_ctrl) {
368 if (index == 0) { /* First encoder */
369 if (clockwise) {
370 rgb_matrix_increase_val();
371 } else {
372 rgb_matrix_decrease_val();
373 }
374 } else if (index == 1) { /* Second encoder */
375 if (clockwise) {
376 rgb_matrix_increase_speed();
377 } else {
378 rgb_matrix_decrease_speed();
379 }
380 }
381 } else {
382 if (index == 1) { /* First encoder */
383 if (clockwise) {
384 tap_code(KC_PGUP);
385 // tap_code(KC_MS_WH_UP);
386 } else {
387 tap_code(KC_PGDOWN);
388 // tap_code(KC_MS_WH_DOWN);
389 }
390 } else if (index == 0) { /* Second encoder */
391 uint16_t mapped_code = 0;
392 if (clockwise) {
393 mapped_code = KC_VOLD;
394 } else {
395 mapped_code = KC_VOLU;
396 }
397 tap_code_delay(mapped_code, MEDIA_KEY_DELAY);
398 }
399 }
400 return true;
401}
402
403#endif
diff --git a/keyboards/sofle/keymaps/killmaster/readme.md b/keyboards/sofle/keymaps/killmaster/readme.md
new file mode 100644
index 000000000..6d6dea228
--- /dev/null
+++ b/keyboards/sofle/keymaps/killmaster/readme.md
@@ -0,0 +1,19 @@
1![SofleKeyboard default keymap](https://github.com/josefadamcik/SofleKeyboard/raw/master/Images/soflekeyboard.png)
2![SofleKeyboard adjust layer](https://github.com/josefadamcik/SofleKeyboard/raw/master/Images/soflekeyboard_layout_adjust.png)
3
4
5# Default keymap for Sofle Keyboard
6
7Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) and [adjust layer](http://www.keyboard-layout-editor.com/#/gists/4bcf66f922cfd54da20ba04905d56bd4)
8
9
10Features:
11
12- Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift)
13- Various modes, can be switched (using Adjust layer and the selected one is stored in EEPROM.
14- Modes for Qwerty and Colemak support
15- Modes for Mac vs Linux/Win support -> different order of modifiers and different action shortcuts on the "UPPER" layer (the red one in the image). Designed to simplify transtions when switching between operating systems often.
16- The OLED on master half shows selected mode and caps lock state and is rotated.
17- Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN.
18
19
diff --git a/keyboards/sofle/keymaps/killmaster/rules.mk b/keyboards/sofle/keymaps/killmaster/rules.mk
new file mode 100644
index 000000000..38d611450
--- /dev/null
+++ b/keyboards/sofle/keymaps/killmaster/rules.mk
@@ -0,0 +1,4 @@
1EXTRAKEY_ENABLE = yes
2LTO_ENABLE = yes
3RGB_MATRIX_ENABLE = yes
4RGB_MATRIX_DRIVER = WS2812
diff --git a/keyboards/sofle/keymaps/rgb_default/config.h b/keyboards/sofle/keymaps/rgb_default/config.h
index 7d597d991..32d071735 100644
--- a/keyboards/sofle/keymaps/rgb_default/config.h
+++ b/keyboards/sofle/keymaps/rgb_default/config.h
@@ -1,18 +1,18 @@
1 /* Copyright 2021 Dane Evans 1 /* Copyright 2021 Dane Evans
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or 5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version. 6 * (at your option) any later version.
7 * 7 *
8 * This program is distributed in the hope that it will be useful, 8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details. 11 * GNU General Public License for more details.
12 * 12 *
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/ 15*/
16 #pragma once 16 #pragma once
17 17
18 18
@@ -29,7 +29,7 @@
29 29
30#define CUSTOM_FONT 30#define CUSTOM_FONT
31 31
32#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding 32#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding
33 33
34 34
35#define TAPPING_FORCE_HOLD 35#define TAPPING_FORCE_HOLD
@@ -56,7 +56,7 @@
56 56
57#ifdef RGBLIGHT_ENABLE 57#ifdef RGBLIGHT_ENABLE
58 #undef RGBLED_NUM 58 #undef RGBLED_NUM
59 59
60 //#define RGBLIGHT_ANIMATIONS 60 //#define RGBLIGHT_ANIMATIONS
61 //#define RGBLIGHT_EFFECT_BREATHING 61 //#define RGBLIGHT_EFFECT_BREATHING
62 #define RGBLIGHT_EFFECT_RAINBOW_MOOD 62 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
@@ -68,11 +68,11 @@
68 //#define RGBLIGHT_EFFECT_RGB_TEST 68 //#define RGBLIGHT_EFFECT_RGB_TEST
69 //#define RGBLIGHT_EFFECT_ALTERNATING 69 //#define RGBLIGHT_EFFECT_ALTERNATING
70 //#define RGBLIGHT_EFFECT_TWINKLE 70 //#define RGBLIGHT_EFFECT_TWINKLE
71 71
72 #define RGBLED_NUM 70 72 #define RGBLED_NUM 70
73 //#define RGBLED_SPLIT 73 //#define RGBLED_SPLIT
74 #define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet 74 #define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet
75 75
76 //#define RGBLED_NUM 30 76 //#define RGBLED_NUM 30
77 #define RGBLIGHT_LIMIT_VAL 120 77 #define RGBLIGHT_LIMIT_VAL 120
78 #define RGBLIGHT_HUE_STEP 10 78 #define RGBLIGHT_HUE_STEP 10
@@ -84,11 +84,11 @@
84# define RGB_MATRIX_KEYPRESSES // reacts to keypresses 84# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
85// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) 85// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
86// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects 86// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
87# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended 87# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
88# define RGB_MATRIX_FRAMEBUFFER_EFFECTS 88# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
89// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) 89// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
90// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) 90// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
91# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. 91# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
92 92
93#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT 93#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT
94 94
@@ -127,4 +127,4 @@
127// # define DISABLE_RGB_MATRIX_MULTISPLASH 127// # define DISABLE_RGB_MATRIX_MULTISPLASH
128// # define DISABLE_RGB_MATRIX_SOLID_SPLASH 128// # define DISABLE_RGB_MATRIX_SOLID_SPLASH
129// # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH 129// # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
130#endif \ No newline at end of file 130#endif
diff --git a/keyboards/sofle/rev1/readme.md b/keyboards/sofle/rev1/readme.md
new file mode 100644
index 000000000..629d568e6
--- /dev/null
+++ b/keyboards/sofle/rev1/readme.md
@@ -0,0 +1,27 @@
1# Sofle Keyboard
2
3![SofleKeyboard version 1](https://raw.githubusercontent.com/josefadamcik/SofleKeyboard/master/Images/IMG_20200126_114622.jpg)
4
5Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards.
6
7More details about the keyboard on my blog: [Let me introduce you SofleKeyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html)
8
9The current (temporary) build guide and a build log is available here: [SofleKeyboard build log/guide](https://josef-adamcik.cz/electronics/soflekeyboard-build-log-and-build-guide.html)
10
11* Keyboard Maintainer: [Josef Adamcik](https://josef-adamcik.cz) [Twitter:@josefadamcik](https://twitter.com/josefadamcik)
12* Hardware Supported: SofleKeyboard PCB, ProMicro
13* Hardware Availability: [PCB & Case Data](https://github.com/josefadamcik/SofleKeyboard)
14
15Make example for this keyboard (after setting up your build environment):
16
17 make sofle:default
18
19Flashing example for this keyboard:
20
21 make sofle:default:flash
22
23Press reset button on he keyboard when asked.
24
25Disconnect the first half, connect the second one and repeat the process.
26
27See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/sofle/rev1/rev1.c b/keyboards/sofle/rev1/rev1.c
index bbb014c4d..88a28e6a4 100644
--- a/keyboards/sofle/rev1/rev1.c
+++ b/keyboards/sofle/rev1/rev1.c
@@ -1 +1,87 @@
1/* Copyright 2021 Carlos Martins
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
1#include "sofle.h" 17#include "sofle.h"
18
19#ifdef RGB_MATRIX_ENABLE
20 // Physical Layout
21 // Columns
22 // 0 1 2 3 4 5 6 7 8 9 10 11 12 13
23 // ROWS
24 // 12 13 22 23 32 33 33 32 23 22 13 12 0
25 // 02 03 04 04 03 02
26 // 11 14 21 24 31 34 34 31 24 21 14 11 1
27 // 01 01
28 // 10 15 20 25 30 35 35 30 25 20 15 10 2
29 //
30 // 09 16 19 26 29 36 36 29 26 19 16 09 3
31 //
32 // 08 17 18 27 28 28 27 18 17 08 4
33 // 07 06 05 05 06 07
34
35led_config_t g_led_config = {
36 {
37 { 11, 12, 21, 22, 31, 32 },
38 { 10, 13, 20, 23, 30, 33 },
39 { 9, 14, 19, 24, 29, 34},
40 { 8, 15, 18, 25, 28, 35},
41 { 7, 16, 17, 26, 27, NO_LED },
42 { 47, 48, 57, 58, 67, 68},
43 { 46, 49, 56, 59, 66, 69},
44 { 45, 50, 55, 60, 65, 70},
45 { 44, 51, 54, 61, 64, 71},
46 { 43, 52, 53, 62, 63, NO_LED }
47 },
48 {
49 // Left side underglow
50 {96, 40}, {16, 20}, {48, 10}, {80, 18}, {88, 60}, {56, 57}, {24,60},
51 // Left side Matrix
52 {32, 57}, { 0, 48}, { 0, 36}, { 0, 24}, { 0, 12},
53 {16, 12}, {16, 24}, {16, 36}, {16, 48}, {48, 55},
54 {64, 57}, {32, 45}, {32, 33}, {32, 21}, {32, 9},
55 {48, 7}, {48, 19}, {48, 31}, {48, 43}, {80, 59},
56 {96, 64}, {64, 45}, {64, 33}, {64, 21}, {64, 9},
57 {80, 10}, {80, 22}, {80, 34}, {80, 47},
58
59
60 // Right side underglow
61 {128, 40}, {208, 20}, {176, 10}, {144, 18}, {136, 60}, {168, 57}, {200,60},
62 // Right side Matrix
63 {192, 57}, {224, 48}, {224, 36}, {224, 24}, {224, 12},
64 {208, 12}, {208, 24}, {208, 36}, {208, 48}, {176, 55},
65 {160, 57}, {192, 45}, {192, 33}, {192, 21}, {192, 9},
66 {176, 7}, {176, 19}, {176, 31}, {176, 43}, {144, 59},
67 {128, 64}, {160, 45}, {160, 33}, {160, 21}, {160, 9},
68 {144, 10}, {144, 22}, {144, 34}, {144, 47},
69 },
70 {
71 LED_FLAG_NONE, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW,
72 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
73 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
74 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
75 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
76 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
77 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
78 LED_FLAG_NONE, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW,
79 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
80 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
81 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
82 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
83 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
84 LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT
85 }
86};
87#endif