1 #include QMK_KEYBOARD_H
3 extern keymap_config_t keymap_config
;
6 //Following line allows macro to read current RGB settings
7 extern rgblight_config_t rgblight_config
;
10 extern uint8_t is_master
;
12 // Each layer gets a name for readability, which is then used in the keymap matrix below.
13 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
14 // Layer names don't all need to be of the same length, obviously, and you can also skip them
15 // entirely and just use numbers.
23 enum custom_keycodes
{
34 #define KC_SNUBS S(KC_NUBS)
35 #define KC_SNUHS S(KC_NUHS)
37 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
39 //,-----------------------------------------------------| |-----------------------------------------------------.
40 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_BSPC
,
41 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
42 KC_ESC
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
,
43 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
44 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, KC_ENT
,
45 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
46 ADJUST
,KC_LCTRL
, KC_LALT
, KC_LGUI
, LOWER
, KC_SPC
, KC_SPC
, RAISE
, KC_LEFT
, KC_DOWN
, KC_UP
,KC_RIGHT
47 //`------------------------------------------------------------------------------------------------------------'
52 //,-----------------------------------------------------| |-----------------------------------------------------.
53 KC_TILD
, KC_EXLM
, KC_AT
, KC_HASH
, KC_DLR
, KC_PERC
, KC_CIRC
, KC_AMPR
, KC_ASTR
,KC_LPRN
, KC_RPRN
, KC_DEL
,
54 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
55 KC_DEL
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_UNDS
, KC_PLUS
, KC_LCBR
, KC_RCBR
, KC_PIPE
,
56 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
57 _____
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
,KC_SNUHS
,KC_SNUBS
, _____
, _____
, _____
,
58 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
59 _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, KC_MNXT
, KC_VOLD
, KC_VOLU
, KC_MPLY
60 //`------------------------------------------------------------------------------------------------------------'
65 //,-----------------------------------------------------| |-----------------------------------------------------.
66 KC_TILD
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_DEL
,
67 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
68 KC_DEL
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_MINS
, KC_EQL
, KC_LBRC
, KC_RBRC
, KC_BSLS
,
69 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
70 _____
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, KC_NUHS
, KC_NUBS
, _____
, _____
, _____
,
71 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
72 _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
73 //`------------------------------------------------------------------------------------------------------------'
77 [_ADJUST
] = LAYOUT( /* Base */
78 //,-----------------------------------------------------| |-----------------------------------------------------.
79 _____
, RESET
, XXXXX
, XXXXX
, XXXXX
, XXXXX
, XXXXX
, XXXXX
, XXXXX
, XXXXX
, XXXXX
, _____
,
80 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
81 _____
, XXXXX
, XXXXX
, XXXXX
, XXXXX
, XXXXX
, RGB_TOG
, RGB_MOD
, XXXXX
,LCA(KC_DEL
),LALT(KC_PSCR
),KC_PSCR
,
82 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
83 _____
, XXXXX
, XXXXX
, XXXXX
, XXXXX
, XXXXX
, RGB_VAD
, RGB_VAI
, RGB_HUD
, RGB_HUI
, RGB_SAD
, RGB_SAI
,
84 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
85 _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
86 //`------------------------------------------------------------------------------------------------------------'
90 static inline void update_change_layer(bool pressed
, uint8_t layer1
, uint8_t layer2
, uint8_t layer3
) {
92 pressed
? layer_on(layer1
) : layer_off(layer1
);
93 IS_LAYER_ON(layer1
) && IS_LAYER_ON(layer2
) ? layer_on(layer3
) : layer_off(layer3
);
97 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
102 update_change_layer(record
->event
.pressed
, _LOWER
, _RAISE
, _ADJUST
);
105 update_change_layer(record
->event
.pressed
, _RAISE
, _LOWER
, _ADJUST
);
107 #ifdef RGBLIGHT_ENABLE
109 if (record
->event
.pressed
) {
110 rgblight_mode(RGB_current_mode
);
112 RGB_current_mode
= rgblight_config
.mode
;
116 if (record
->event
.pressed
) {
117 eeconfig_update_rgblight_default();
119 RGB_current_mode
= rgblight_config
.mode
;
131 void matrix_init_user(void) {
132 #ifdef RGBLIGHT_ENABLE
133 RGB_current_mode
= rgblight_config
.mode
;