1 #include QMK_KEYBOARD_H
7 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
8 [_LAYER0
] = LAYOUT_60_ansi( /* Base */
9 KC_GESC
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_MINS
, KC_EQL
, KC_BSPC
,\
10 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_LBRC
, KC_RBRC
, KC_BSLASH
,\
11 CTL_T(KC_CAPS
), KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
, KC_ENT
, \
12 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, KC_RSFT
, \
13 KC_LCTL
, KC_LGUI
, KC_LALT
, KC_SPC
, KC_RALT
, MO(1), MO(2), KC_RCTL
),
14 [_LAYER1
] = LAYOUT_60_ansi( /* FN */
15 TO(3), KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, KC_DEL
,\
16 KC_TRNS
, KC_TRNS
, KC_UP
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_CALC
, KC_TRNS
, KC_INS
, KC_TRNS
, KC_PSCR
, KC_SLCK
, KC_PAUS
, RESET
,\
17 KC_TRNS
, KC_LEFT
, KC_DOWN
, KC_RIGHT
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_HOME
, KC_PGUP
, KC_TRNS
,\
18 KC_MPRV
, KC_VOLD
, KC_VOLU
, KC_MUTE
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_END
, KC_PGDOWN
,KC_MNXT
, \
19 KC_TRNS
, KC_TRNS
, KC_TRNS
, TO(3), KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
),
20 [_LAYER2
] = LAYOUT_60_ansi( /* FN2 */
21 KC_TRNS
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, KC_DEL
,\
22 KC_TRNS
, RGB_TOG
, KC_TRNS
, RGB_HUI
, RGB_HUD
, RGB_SAI
, RGB_SAD
, RGB_VAI
, RGB_VAD
, RGB_MOD
, KC_TRNS
, KC_TRNS
, KC_TRNS
, RESET
,\
23 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, RGB_SPI
, RGB_SPD
, KC_TRNS
, KC_TRNS
, KC_TRNS
,\
24 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, \
25 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
),
26 [_LAYER3
] = LAYOUT_60_ansi( /* FN3 */
27 KC_GESC
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_MINS
, KC_EQL
, KC_BSPC
,\
28 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_LBRC
, KC_RBRC
, KC_BSLASH
,\
29 CTL_T(KC_CAPS
),KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
, KC_ENT
, \
30 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, KC_RSFT
, \
31 KC_LCTL
, KC_LALT
, KC_LGUI
, KC_SPC
, KC_TRNS
,MO(4), KC_RALT
, KC_RCTL
),
32 [_LAYER4
] = LAYOUT_60_ansi( /* FN4 */
33 KC_GESC
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, KC_DEL
,\
34 KC_TRNS
, RGB_TOG
, KC_TRNS
, RGB_HUI
, RGB_HUD
, RGB_SAI
, RGB_SAD
, RGB_VAI
, RGB_VAD
, RGB_MOD
, KC_PSCR
, KC_SLCK
, KC_PAUS
, RESET
,\
35 KC_TRNS
, KC_LEFT
, KC_DOWN
, KC_UP
, KC_RIGHT
, KC_TRNS
, KC_TRNS
, KC_TRNS
, RGB_SPI
, RGB_SPD
, KC_HOME
, KC_PGUP
, KC_TRNS
,\
36 KC_MPRV
, KC_VOLD
, KC_VOLU
, KC_MUTE
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_END
, KC_PGDOWN
,KC_MNXT
, \
37 KC_TRNS
, KC_TRNS
, KC_TRNS
, TO(0), KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
),
40 void rgb_matrix_layer_helper (uint8_t red
, uint8_t green
, uint8_t blue
, bool default_layer
) {
41 for (int i
= 0; i
< DRIVER_LED_TOTAL
; i
++) {
42 if (HAS_FLAGS(g_led_config
.flags
[i
], LED_FLAG_MODIFIER
)) {
43 rgb_matrix_set_color( i
, red
, green
, blue
);
48 void rgb_matrix_indicators_user(void) {
49 uint8_t this_led
= host_keyboard_leds();
50 if (!g_suspend_state
) {
51 switch (biton32(layer_state
)) {
53 rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break;
55 rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break;
57 rgb_matrix_layer_helper(0x00, 0x00, 0xFF, false); break;
59 rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;
62 if ( this_led
& (1<<USB_LED_CAPS_LOCK
)) {
63 rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF);
68 void matrix_init_user(void) {
72 void matrix_scan_user(void) {
76 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {