1717/*
1818 * The SuperMicro 25% keyboard: a pure -full features- "Alpha 26" keymap on Gherkin, compatible also with 28 and 30 keys layouts
1919 * See https://github.com/stevexyz/qmk_firmware/blob/master/keyboards/40percentclub/gherkin/keymaps/stevexyz/readme.md for more information
20- * ____ __ __ _
21- * / ___|_ _ _ __ ___ _ _| \/ (_) ___ _ __ ___
22- * \___ \ | | | '_ \/ _ \ '_| |\/| | |/ __| '__/ _ \
20+ * ____ __ __ _
21+ * / ___|_ _ _ __ ___ _ _| \/ (_) ___ _ __ ___
22+ * \___ \ | | | '_ \/ _ \ '_| |\/| | |/ __| '__/ _ \
2323 * ___) |_| | |_) __/ | | | | | | (__| | | (_) |
24- * |____/\__,_| .__/\___|_| |_| |_|_|\___|_| \___/
24+ * |____/\__,_| .__/\___|_| |_| |_|_|\___|_| \___/
2525 * ____ _ |_| _ _ ___ ___ _
2626 * / ___| |__ ___ _ _| | _(_)_ __ |__ \| __|()//
27- * | | _| '_ \ / _ \ '_| |/ / | '_ \ _) |__ \ //
28- * | |_| | | | | __/ | | <| | | | | / _/ __) //
27+ * | | _| '_ \ / _ \ '_| |/ / | '_ \ _) |__ \ //
28+ * | |_| | | | | __/ | | <| | | | | / _/ __) //
2929 * \____|_| |_|\___|_| |_|\_\_|_| |_||____|___//()
3030 */
3131
3232
3333#include QMK_KEYBOARD_H
34+ //extern rgblight_config_t rgblight_config;
35+ //extern keymap_config_t keymap_config;
3436
3537enum layers {
3638 // "standard" layers
@@ -75,10 +77,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7577 * | A | S | D | F | G | H | J | K | L | Enter|
7678 * | Shift| FnNav|NumSym| AltGr| OSkey| OSkey| AltGr| FnNav|NumSym| Shift|
7779 * '------+------+------+------+------+------|------+------+------+------'
78- * | | | | | | | | |
79- * ESC | Z | X | C | V | B | N | M | Space| Down
80- * | Ctrl | Alt | FnNav|NumSym| Shift| Alt | Ctrl | Shift|
81- * '-------------------------------------------------------'
80+ * | | | | | | | | |
81+ * ESC | Z | X | C | V | B | N | M | Space| Down
82+ * | Ctrl | Alt | FnNav|NumSym| Shift| Alt | Ctrl | Shift|
83+ * '-------------------------------------------------------'
8284 */
8385 [LAYER_HOME ] = LAYOUT_ortho_3x10 (
8486 LT (LAYER_ARROWPAD , KC_Q ), LT (LAYER_NUMPAD , KC_W ), LT (LAYER_MEDIAPAD , KC_E ), LT (LAYER_MIDI , KC_R ), LT (LAYER_SPECIAL5 , KC_T ), LT (LAYER_FUNC , KC_Y ), LT (LAYER_NUMSYM , KC_U ), MT (MOD_LALT , KC_I ), MT (MOD_RCTL , KC_O ), MT (MOD_RSFT , KC_P ),
@@ -96,10 +98,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
9698 * | ESC | Home | PgDn | PgUp | End | Left | Down | Up | Right|Backsp|
9799 * | Shift| ____ |SysLay| AltGr| OSkey| OSkey| AltGr| ____ |SysLay| Shift|
98100 * '------+------+------+------+------+------|------+------+------+------'
99- * | | | | | | | | |
100- * PgUp | F11 | F12 | | Space|PrnScr|ScrLck|Pause | Space| PgDn
101- * | Ctrl | Alt | ____ |SysLay| Shift| Alt | Ctrl | Shift|
102- * '-------------------------------------------------------'
101+ * | | | | | | | | |
102+ * PgUp | F11 | F12 | | Space|PrnScr|ScrLck|Pause | Space| PgDn
103+ * | Ctrl | Alt | ____ |SysLay| Shift| Alt | Ctrl | Shift|
104+ * '-------------------------------------------------------'
103105 */
104106 [LAYER_FUNC ] = LAYOUT_ortho_3x10 (
105107 KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , LT (LAYER_SYST , KC_F7 ), MT (MOD_LALT , KC_F8 ), MT (MOD_RCTL ,KC_F9 ), MT (MOD_RSFT , KC_F10 ),
@@ -117,10 +119,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
117119 * | TAB | ` | - | = | [ | ] | \ | ; | ' | Del |
118120 * | Shift|SysLay| ____ | AltGr| OSkey| OSkey| AltGr|SysLay| ____ | Shift|
119121 * ' -----+------+------+------+------+------|------+------+------+------'
120- * | | | | | < | > | ? | |
122+ * | | | | | < | > | ? | |
121123 * Left |BackSp| Del | Enter| | , | . | / | Space| Right
122- * | Ctrl | Alt |SysLay| ____ | Shift| Alt | Ctrl | Shift|
123- * '-------------------------------------------------------'
124+ * | Ctrl | Alt |SysLay| ____ | Shift| Alt | Ctrl | Shift|
125+ * '-------------------------------------------------------'
124126 */
125127 [LAYER_NUMSYM ] = LAYOUT_ortho_3x10 (
126128 KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , LT (LAYER_SYST , KC_6 ), KC_7 , MT (MOD_LALT , KC_8 ), MT (MOD_RCTL ,KC_9 ), MT (MOD_RSFT , KC_0 ),
@@ -138,10 +140,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
138140 * | Vol- | Vol+ | PgDn | PgUp |AppMen| Left | Down | Up | Right|Backsp|
139141 * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
140142 * '------+------+------+------+------+------|------+------+------+------'
141- * | | | | | | | | |
142- * Home |Backsp| Del | Enter| Space| Mute | Caps | Ins | Space| End
143- * | Ctrl | Alt | ____ | ____ | Shift| Alt | Ctrl | ____ |
144- * '-------------------------------------------------------'
143+ * | | | | | | | | |
144+ * Home |Backsp| Del | Enter| Space| Mute | Caps | Ins | Space| End
145+ * | Ctrl | Alt | ____ | ____ | Shift| Alt | Ctrl | ____ |
146+ * '-------------------------------------------------------'
145147 */
146148 [LAYER_SYST ] = LAYOUT_ortho_3x10 (
147149 KC_MPLY , KC_STOP , KC_MPRV , KC_MNXT , KC_MS_BTN1 , KC_MS_LEFT , KC_MS_DOWN , KC_MS_UP , KC_MS_RIGHT , MT (MOD_RSFT , KC_MS_BTN2 ),
@@ -159,15 +161,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
159161 * | | Del | PgDn |MsLeft|MsDown|MsRigh| Left | Down | Right| Enter|
160162 * | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
161163 * '------+------+------+------+------+------|------+------+------+------'
162- * | | | | | | | | |
163- * | | |MsWhlU|MsDown|MsWhlD| End | Down | PgDn | Del
164- * | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ |
165- * '-------------------------------------------------------'
164+ * | | | | | | | | |
165+ * | | |MsWhlU|MsDown|MsWhlD| End | Down | PgDn | Del
166+ * | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ |
167+ * '-------------------------------------------------------'
166168 */
167169 [LAYER_ARROWPAD ] = LAYOUT_ortho_3x10 (
168- KC_NO , KC_NO , KC_NO , KC_MS_BTN1 , KC_MS_UP , KC_MS_BTN2 , KC_HOME , KC_UP , KC_PGUP , KC_BSPC ,
169- KC_LSFT , KC_DEL , KC_PGDN , KC_MS_LEFT , KC_MS_DOWN , KC_MS_RIGHT , KC_LEFT , KC_DOWN , KC_RIGHT , KC_ENT ,
170- KC_NO , KC_LCTL , KC_LALT , KC_MS_WH_UP , KC_MS_DOWN , KC_MS_WH_DOWN , KC_END , KC_DOWN , KC_PGDN , KC_DEL
170+ KC_NO , KC_NO , KC_NO , KC_MS_BTN1 , KC_MS_UP , KC_MS_BTN2 , KC_HOME , KC_UP , KC_PGUP , KC_BSPC ,
171+ KC_LSFT , KC_DEL , KC_PGDN , KC_MS_LEFT , KC_MS_DOWN , KC_MS_RIGHT , KC_LEFT , KC_DOWN , KC_RIGHT , KC_ENT ,
172+ KC_NO , KC_LCTL , KC_LALT , KC_MS_WH_UP , KC_MS_DOWN , KC_MS_WH_DOWN , KC_END , KC_DOWN , KC_PGDN , KC_DEL
171173 ),
172174
173175/* NumPad (mod on W)
@@ -180,17 +182,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
180182 * | | | | Tab | - | + | 4 | 5 | 6 | Enter|
181183 * | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
182184 * '------+------+------+------+------+------|------+------+------+------'
183- * | | | | | | | | |
184- * |BackSp| Del | Enter| , | . | 1 | 2 | 3 | 000
185- * | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ |
186- * '-------------------------------------------------------'
185+ * | | | | | | | | |
186+ * |BackSp| Del | Enter| , | . | 1 | 2 | 3 | 000
187+ * | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ |
188+ * '-------------------------------------------------------'
187189 */
188190 [LAYER_NUMPAD ] = LAYOUT_ortho_3x10 (
189- KC_NO , KC_NO , KC_3 , KC_KP_EQUAL , KC_KP_SLASH , KC_KP_ASTERISK , KC_7 , KC_8 , KC_9 , KC_0 ,
190- KC_LSFT , KC_NO , KC_NO , KC_TAB , KC_KP_MINUS , KC_KP_PLUS , KC_4 , KC_5 , KC_6 , KC_ENT ,
191+ KC_NO , KC_NO , KC_3 , KC_KP_EQUAL , KC_KP_SLASH , KC_KP_ASTERISK , KC_7 , KC_8 , KC_9 , KC_0 ,
192+ KC_LSFT , KC_NO , KC_NO , KC_TAB , KC_KP_MINUS , KC_KP_PLUS , KC_4 , KC_5 , KC_6 , KC_ENT ,
191193 KC_NO , KC_BSPC , KC_DEL , KC_ENT , KC_COMM , KC_DOT , KC_1 , KC_2 , KC_3 , CK_TRIPLEZERO
192194 ),
193-
195+
194196 /* MediaPad (mod on E)
195197 * ,---------------------------------------------------------------------.
196198 * | | | | | | | | | | |
@@ -201,17 +203,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
201203 * | | | | | | Mute | Prev | Play | Next | Stop |
202204 * | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
203205 * '------+------+------+------+------+------|------+------+------+------'
204- * | | | | | | | | |
205- * | | | | | | | Vol- | |
206- * | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ |
207- * '-------------------------------------------------------'
206+ * | | | | | | | | |
207+ * | | | | | | | Vol- | |
208+ * | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ |
209+ * '-------------------------------------------------------'
208210 */
209211 [LAYER_MEDIAPAD ] = LAYOUT_ortho_3x10 (
210- KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_VOLU , KC_NO , KC_NO ,
211- KC_LSFT , KC_NO , KC_NO , KC_NO , KC_NO , KC_MUTE , KC_MPRV , KC_MPLY , KC_MNXT , KC_STOP ,
212+ KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_VOLU , KC_NO , KC_NO ,
213+ KC_LSFT , KC_NO , KC_NO , KC_NO , KC_NO , KC_MUTE , KC_MPRV , KC_MPLY , KC_MNXT , KC_STOP ,
212214 KC_NO , KC_LCTL , KC_LALT , KC_NO , KC_NO , KC_NO , KC_NO , KC_VOLD , KC_NO , KC_NO
213- ),
214-
215+ ),
216+
215217 /* MIDI (mod on R)
216218 * ,---------------------------------------------------------------------.
217219 * | | | | | | | | | | |
@@ -222,49 +224,68 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
222224 * | A# | | C# | D# | | F# | G# | A# | | C# |
223225 * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
224226 * '------+------+------+------+------+------|------+------+------+------'
225- * | | | | | | | | |
226- * A | B | C | D | E | F | G | A | B | C
227- * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
228- * '-------------------------------------------------------'
227+ * | | | | | | | | |
228+ * A | B | C | D | E | F | G | A | B | C
229+ * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
230+ * '-------------------------------------------------------'
229231 */
230232 [LAYER_MIDI ] = LAYOUT_ortho_3x10 (
231233 KC_NO ,KC_NO , KC_NO , KC_NO , MI_TRNSD , MI_TRNSU , MI_OCTD , MI_OCTU , MI_CHD , MI_CHU ,
232- MI_As_1 , KC_NO , MI_Cs_2 , MI_Ds_2 , KC_NO , MI_Fs_2 , MI_Gs_2 , MI_As_2 , KC_NO , MI_Cs_3 ,
234+ MI_As_1 , KC_NO , MI_Cs_2 , MI_Ds_2 , KC_NO , MI_Fs_2 , MI_Gs_2 , MI_As_2 , KC_NO , MI_Cs_3 ,
233235 MI_A_1 , MI_B_1 , MI_C_2 , MI_D_2 , MI_E_2 , MI_F_2 , MI_G_2 , MI_A_2 , MI_B_2 , MI_C_3
234- ),
235-
236- /* To be customized (mod on T)
236+ ),
237+
238+ /* RGB and easteregg (mod on T)
237239 * ,---------------------------------------------------------------------.
238240 * | | | | | | | | | | |
239- * | | | | | | | | | | |
241+ * |RgbTog|RgbMod|RgbRMo|RgbHuI | |RgbHuD|RgbSaI|RgbSaD|RgbVaI|RgbVaD |
240242 * | ____ | ____ | ____ | ____ | | ____ | ____ | ____ | ____ | ____ |
241243 * |------+------+------+------+-------------+------+------+------+------|
242244 * | | | | | | | | | | |
243245 * | | | | | | | | | | |
244246 * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
245247 * '------+------+------+------+------+------|------+------+------+------'
246- * | | | | | | | | |
247- * | | | | | | | | |
248- * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
249- * '-------------------------------------------------------'
248+ * | | | | | | | | |
249+ * | | | | | | | | |
250+ * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
251+ * '-------------------------------------------------------'
250252 */
251253 [LAYER_SPECIAL5 ] = LAYOUT_ortho_3x10 (
252- KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
253- KC_S , KC_U , KC_P , KC_E , KC_R , KC_M , KC_I , KC_C , KC_R , KC_O ,
254+ RGB_TOG , RGB_MOD , RGB_RMOD , RGB_HUI , KC_NO , RGB_HUD , RGB_SAI , RGB_SAD , RGB_VAI , RGB_VAD ,
255+ KC_S , KC_U , KC_P , KC_E , KC_R , KC_M , KC_I , KC_C , KC_R , KC_O ,
254256 KC_SPC , KC_K , KC_E , KC_Y , KC_B , KC_O , KC_A , KC_R , KC_D , KC_ENT
255- ),
256-
257+ ),
258+
257259};
258260
261+ void keyboard_pre_init_user (void ) {
262+ // Set our LED pins as output
263+ setPinOutput (D5 );
264+ setPinOutput (B0 );
265+ }
266+
259267void matrix_init_user (void ) {
260268 // eeconfig_init(); // reset keyboard to a standard default state; useful when new releases messup with eeprom values
261- // set num lock on at start (for numonly layer to work)
269+ backlight_enable ();
262270 if (!host_keyboard_led_state ().num_lock ) {
263- tap_code (KC_NUMLOCK );
271+ // set num lock on at start (for numonly layer to work)
272+ tap_code (KC_NUMLOCK );
264273 }
265274}
266275
267276void matrix_scan_user (void ) {
277+ #ifdef RGBLIGHT_ENABLE
278+ static uint8_t old_layer = 255 ;
279+ uint8_t new_layer = biton32 (layer_state );
280+ if (old_layer != new_layer ) {
281+ switch (new_layer ) {
282+ case LAYER_SPECIAL4 : // example
283+ rgblight_setrgb (255 , 128 , 17 );
284+ break ;
285+ }
286+ old_layer = new_layer ;
287+ }
288+ #endif
268289}
269290
270291bool process_record_user (uint16_t keycode , keyrecord_t * record ) {
@@ -278,14 +299,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
278299 return true;
279300};
280301
281- void keyboard_pre_init_user (void ) {
282- // Set our LED pins as output
283- setPinOutput (D5 );
284- setPinOutput (B0 );
285- }
286-
287302bool led_update_user (led_t led_state ) {
288- writePin (D5 , !led_state .num_lock );
303+ // writePin(D5, !led_state.num_lock);
289304 writePin (B0 , !led_state .caps_lock );
290305 return false; // prevent keyboard from processing state
291306}
0 commit comments