1 #include QMK_KEYBOARD_H
4 extern keymap_config_t keymap_config
;
7 //Following line allows macro to read current RGB settings
8 extern rgblight_config_t rgblight_config
;
11 extern uint8_t is_master
;
13 // Each layer gets a name for readability, which is then used in the keymap matrix below.
14 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
15 // Layer names don't all need to be of the same length, obviously, and you can also skip them
16 // entirely and just use numbers.
26 enum custom_keycodes
{
36 // Fillers to make layering more clear
40 #define KC_CT11 LCTL_T(KC_F11)
41 #define KC_SF12 SFT_T(KC_F12)
43 #define KC_LOEN LT(_LOWER, KC_ENT)
44 #define KC_RASP LT(_RAISE, KC_SPC)
45 #define KC_CAD LCA(KC_DEL)
46 #define KC_APSCR LALT(KC_PSCR)
48 #define KC_RTAB LCTL(KC_TAB)
49 #define KC_LTAB LCTL(LSFT(KC_TAB))
50 #define KC_CTAB LCTL(KC_W)
51 #define KC_RETAB LCTL(LSFT(KC_T))
53 #define KC_TGMO TG(_MOUSE)
54 #define KC_TGBR TG(_BROWSER)
55 #define KC_BSAD LT(_ADJUST, KC_BSPC)
58 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
59 [_QWERTY
] = LAYOUT_with_nafuda(
60 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
61 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, JP_LBRC
, KC_TGMO
,
62 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
63 KC_LCTRL
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, JP_MINS
, JP_RBRC
, KC_BSAD
, KC_UP
, KC_TGBR
,
64 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
65 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, JP_COMM
, JP_DOT
, JP_SLSH
, JP_BSLS
, KC_LEFT
, KC_DOWN
,KC_RIGHT
,
66 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
67 KC_LEFT
,KC_RIGHT
, KC_LGUI
, KC_MHEN
, KC_LOEN
, KC_BSPC
, KC_DEL
, KC_RASP
, KC_HENK
, KC_LALT
, KC_DOWN
, KC_UP
68 //`------------------------------------------------------------------------------------------------------------'
71 [_MOUSE
] = LAYOUT_with_nafuda(
72 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
73 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, JP_LBRC
, KC_TGMO
,
74 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
75 KC_LCTRL
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, JP_MINS
, JP_RBRC
, KC_BTN1
, KC_MS_U
, KC_BTN2
,
76 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
77 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, JP_COMM
, JP_DOT
, JP_SLSH
, JP_BSLS
, KC_MS_L
, KC_MS_D
, KC_MS_R
,
78 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
79 KC_LEFT
,KC_RIGHT
, KC_LGUI
, KC_MHEN
, KC_LOEN
, KC_BSPC
, KC_DEL
, KC_RASP
, KC_HENK
, KC_LALT
, KC_DOWN
, KC_UP
80 //`------------------------------------------------------------------------------------------------------------'
83 [_BROWSER
] = LAYOUT_with_nafuda(
84 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
85 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, JP_LBRC
, KC_CTAB
,
86 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
87 KC_LCTRL
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, JP_MINS
, JP_RBRC
, KC_RETAB
, KC_WH_U
, KC_TGBR
,
88 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
89 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, JP_COMM
, JP_DOT
, JP_SLSH
, JP_BSLS
, KC_LTAB
, KC_WH_D
, KC_RTAB
,
90 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
91 KC_LEFT
,KC_RIGHT
, KC_LGUI
, KC_MHEN
, KC_LOEN
, KC_BSPC
, KC_DEL
, KC_RASP
, KC_HENK
, KC_LALT
, KC_DOWN
, KC_UP
92 //`------------------------------------------------------------------------------------------------------------'
95 [_LOWER
] = LAYOUT_with_nafuda(
96 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
97 KC_ESC
, JP_EXLM
, JP_QUES
, JP_LBRC
, JP_RBRC
, JP_TILD
, KC_6
, KC_7
, KC_8
, KC_9
, JP_ASTR
, JP_SLSH
, KC_TGMO
,
98 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
99 JP_QUOT
, JP_HASH
, JP_DQT
, JP_LPRN
, JP_RPRN
, JP_AT
, XXXXX
, KC_4
, KC_5
, KC_6
, JP_MINS
, JP_EQL
, KC_BSAD
, KC_UP
, KC_TGBR
,
100 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
101 JP_CIRC
, JP_PERC
, JP_AMPR
, JP_SCLN
, JP_COLN
, JP_PIPE
, KC_0
, KC_1
, KC_2
, KC_3
, JP_PLUS
, KC_ENT
, KC_LEFT
, KC_DOWN
,KC_RIGHT
,
102 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
103 _____
, _____
, _____
, KC_ZKHK
, LOWER
, _____
, _____
, RAISE
, KC_0
, JP_DOT
, _____
, _____
104 //`------------------------------------------------------------------------------------------------------------'
107 [_RAISE
] = LAYOUT_with_nafuda(
108 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
109 KC_ESC
, JP_EXLM
, JP_QUES
, JP_LBRC
, JP_RBRC
, JP_TILD
, KC_6
, KC_7
, KC_8
, KC_9
, JP_ASTR
, JP_SLSH
, KC_TGMO
,
110 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
111 KC_CT11
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, XXXXX
, KC_LEFT
, KC_DOWN
,KC_RIGHT
, KC_LSFT
, KC_ENT
, KC_BSAD
, KC_UP
, KC_TGBR
,
112 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
113 KC_SF12
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, XXXXX
, XXXXX
, XXXXX
, XXXXX
, KC_PGDN
, XXXXX
, KC_LEFT
, KC_DOWN
,KC_RIGHT
,
114 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
115 _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
116 //`------------------------------------------------------------------------------------------------------------'
119 [_ADJUST
] = LAYOUT_with_nafuda( /* Base */
120 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
121 _____
, _____
, _____
, _____
, _____
, _____
, _____
, KC_7
, KC_8
, KC_9
, KC_0
, _____
, RGB_VAD
,
122 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
123 _____
, _____
, _____
, _____
, _____
, _____
, RGB_TOG
, RGB_MOD
, XXXXX
,LCA(KC_DEL
),LALT(KC_PSCR
),KC_PSCR
, ADJUST
, RGB_SAD
, RGB_VAI
,
124 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
125 _____
, _____
, _____
, _____
, _____
, _____
, RGB_VAD
, RGB_VAI
, RGB_HUD
, RGB_HUI
, RGB_SAD
, RGB_SAI
, RGB_MOD
, RGB_TOG
, RGB_SAI
,
126 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
127 _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
, _____
128 //`------------------------------------------------------------------------------------------------------------'
132 static inline void update_change_layer(bool pressed
, uint8_t layer1
, uint8_t layer2
, uint8_t layer3
) {
134 pressed
? layer_on(layer1
) : layer_off(layer1
);
135 IS_LAYER_ON(layer1
) && IS_LAYER_ON(layer2
) ? layer_on(layer3
) : layer_off(layer3
);
138 int RGB_current_mode
;
139 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
144 update_change_layer(record
->event
.pressed
, _LOWER
, _RAISE
, _ADJUST
);
147 update_change_layer(record
->event
.pressed
, _RAISE
, _LOWER
, _ADJUST
);
150 if (record
->event
.pressed
) {
151 if (keymap_config
.swap_lalt_lgui
== false) {
152 register_code(KC_LANG2
);
154 SEND_STRING(SS_LALT("`"));
157 unregister_code(KC_LANG2
);
160 #ifdef RGBLIGHT_ENABLE
162 if (record
->event
.pressed
) {
163 rgblight_mode(RGB_current_mode
);
165 RGB_current_mode
= rgblight_config
.mode
;
169 if (record
->event
.pressed
) {
170 eeconfig_update_rgblight_default();
172 RGB_current_mode
= rgblight_config
.mode
;
184 void matrix_init_user(void) {
185 #ifdef RGBLIGHT_ENABLE
186 RGB_current_mode
= rgblight_config
.mode
;