1 #include QMK_KEYBOARD_H
3 extern keymap_config_t keymap_config
;
5 // Each layer gets a name for readability, which is then used in the keymap matrix below.
6 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
7 // Layer names don't all need to be of the same length, obviously, and you can also skip them
8 // entirely and just use numbers.
20 enum custom_keycodes
{
36 // Tap Dance Declarations
41 // Tap Dance Definitions
42 qk_tap_dance_action_t tap_dance_actions[] = {
43 [TD_ZERO_ENT] = ACTION_TAP_DANCE_DOUBLE(KC_0, KC_ENT)
46 #define SPC_LW LT(_LOWER, KC_SPC)
47 #define ENT_RS LT(_RAISE, KC_ENT)
48 #define FNC MO(_FUNCTION)
49 #define MSE MO(_MOUSE)
50 #define PIPE M(R_PIPE)
51 #define POINT M(R_POINT)
53 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
56 * .----------------------------------------. .-----------------------------------------.
57 * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
58 * |-----+------+------+------+------+------| |------+------+------+------+------+------|
59 * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
60 * |-----+------+------+------+------+------| |------+------+------+------+------+------|
61 * | BS | A | R | S | T | D | | H | N | E | I | O | " |
62 * |-----+------+------+------+------+------| |------+------+------+------+------+------|
63 * | LSPO| Z | X | C | V | B | | K | M | , | . | / | RSPC |
64 * |-----+------+------+------+------+------| |------+------+------+------+------+------|
65 * | Ctrl| LGUI | Lower| LAlt | Space/Lower | | Enter/Raise | Fn | Mouse| Menu | Ctrl |
66 * `----------------------------------------' `-----------------------------------------'
68 [_COLEMAK
] = LAYOUT( \
69 KC_ESC
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_DEL
, \
70 KC_TAB
, KC_Q
, KC_W
, KC_F
, KC_P
, KC_G
, KC_J
, KC_L
, KC_U
, KC_Y
, KC_SCLN
, KC_BSLS
, \
71 KC_BSPC
, KC_A
, KC_R
, KC_S
, KC_T
, KC_D
, KC_H
, KC_N
, KC_E
, KC_I
, KC_O
, KC_QUOT
, \
72 KC_LSPO
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_K
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, KC_RSPC
, \
73 KC_LCTL
, KC_LGUI
, LOWER
, KC_LALT
, SPC_LW
, SPC_LW
, ENT_RS
, ENT_RS
, FNC
, MSE
, KC_APP
, KC_RCTL \
77 * .----------------------------------------. .-----------------------------------------.
78 * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
79 * |-----+------+------+------+------+------| |------+------+------+------+------+------|
80 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
81 * |-----+------+------+------+------+------| |------+------+------+------+------+------|
82 * | BS | A | S | D | F | G | | H | J | K | L | ; | " |
83 * |-----+------+------+------+------+------| |------+------+------+------+------+------|
84 * | LSPO| Z | X | C | V | B | | N | M | , | . | / | RSPC |
85 * |-----+------+------+------+------+------| |------+------+------+------+------+------|
86 * | Ctrl| LGUI | Lower| LAlt | Space/Lower | | Enter/Raise | Fn | Mouse| Menu | Ctrl |
87 * `----------------------------------------' '-----------------------------------------'
91 KC_ESC
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_DEL
, \
92 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_BSLS
, \
93 KC_BSPC
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
, \
94 KC_LSPO
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, KC_RSPC
, \
95 KC_LCTL
, KC_LGUI
, LOWER
, KC_LALT
, SPC_LW
, SPC_LW
, ENT_RS
, ENT_RS
, FNC
, MSE
, KC_APP
, KC_RCTL \
99 * .----------------------------------------. .-----------------------------------------.
100 * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
101 * |------+------+------+------+------+-----| |------+------+------+------+------+------|
102 * | Tab | " | , | . | P | Y | | F | G | C | R | L | \ |
103 * |------+------+------+------+------+-----| |------+------+------+------+------+------|
104 * | BS | A | O | E | U | I | | D | H | T | N | S | / |
105 * |------+------+------+------+------+-----| |------+------+------+------+------+------|
106 * | LSPO | ; | Q | J | K | X | | B | M | W | V | Z | RSPC |
107 * |------+------+------+------+------+-----| |------+------+------+------+------+------|
108 * | Ctrl | LGUI | Lower| LAlt | Space/Lower| | Enter/Raise | Fn | Mouse| Menu | Ctrl |
109 * `----------------------------------------' '-----------------------------------------'
113 KC_ESC
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_DEL
, \
114 KC_TAB
, KC_QUOT
, KC_COMM
, KC_DOT
, KC_P
, KC_Y
, KC_F
, KC_G
, KC_C
, KC_R
, KC_L
, KC_BSLS
, \
115 KC_BSPC
, KC_A
, KC_O
, KC_E
, KC_U
, KC_I
, KC_D
, KC_H
, KC_T
, KC_N
, KC_S
, KC_SLSH
, \
116 KC_LSPO
, KC_SCLN
, KC_Q
, KC_J
, KC_K
, KC_X
, KC_B
, KC_M
, KC_W
, KC_V
, KC_Z
, KC_RSPC
, \
117 KC_LCTL
, KC_LGUI
, LOWER
, KC_LALT
, SPC_LW
, SPC_LW
, ENT_RS
, ENT_RS
, FNC
, MSE
, KC_APP
, KC_RCTL \
121 * ,-----------------------------------------. .-----------------------------------------.
122 * | Esc | | | | | | | = | / | * | - | | Del |
123 * |------+------+------+------+------+------| |------+------+------+------+------+------|
124 * | Tab | PgUp | Home | Up | End | | | 7 | 8 | 9 | + | | \ |
125 * |------+------+------+------+------+------| |------+------+------+------+------+------|
126 * | BS | PgDn | Left | Down |Right | | | 4 | 5 | 6 | Enter| | ' |
127 * |------+------+------+------+------+------| |------+------+------+------+------+------|
128 * | LSPO | Z | X | C | V | | | 1 | 2 | 3 | Enter| | RSPC |
129 * |------+------+------+------+------+------| |------+------+------+------+------+------|
130 * | Ctrl | LGUI | Lower| LAlt | Space/Lower | | 0 | . | Fn |ADJUST| Ctrl |
131 * `-----------------------------------------' `-----------------------------------------'
134 _______
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_PEQL
, KC_PSLS
, KC_PAST
, KC_MINS
, XXXXXXX
, _______
, \
135 _______
, KC_PGUP
, KC_HOME
, KC_UP
, KC_END
, XXXXXXX
, KC_7
, KC_8
, KC_9
, KC_PPLS
, XXXXXXX
, _______
,\
136 _______
, KC_PGDN
, KC_LEFT
, KC_DOWN
, KC_RGHT
, XXXXXXX
, KC_4
, KC_5
, KC_6
, KC_PENT
, XXXXXXX
, _______
,\
137 _______
, _______
, _______
, _______
, _______
, XXXXXXX
, KC_1
, KC_2
, KC_3
, KC_PENT
, XXXXXXX
, _______
,\
138 _______
, _______
, _______
, _______
, _______
, _______
, KC_0
, KC_0
, KC_DOT
, FNC
, RAISE
, _______ \
142 * ,-----------------------------------------. .-----------------------------------------.
143 * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
144 * |------+------+------+------+------+------| |------+------+------+------+------+------|
145 * | Tab | ! | @ | # | $ | % | | ^ | & | * | - | + | \ |
146 * |------+------+------+------+------+------| |------+------+------+------+------+------|
147 * | BS | | | | | | | | | | | | " |
148 * |------+------+------+------+------+------| |------+------+------+------+------+------|
149 * | LSBO | <- | %>% | { | [ | ` | | | | ] | } | . | ? | RSBC |
150 * |------+------+------+------+------+------| |------+------+------+------+------+------|
151 * | Ctrl | LGUI | | LAlt | Space/Lower | | Enter/Raise | Fn | Mouse| Menu | Ctrl |
152 * `-----------------------------------------' `-----------------------------------------'
155 _______
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, _______
, \
156 _______
, KC_EXLM
, KC_AT
, KC_HASH
, KC_DLR
, KC_PERC
, KC_CIRC
, KC_AMPR
, KC_ASTR
, KC_MINS
, KC_EQL
, _______
, \
157 _______
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_BSLS
, \
158 _______
, POINT
, PIPE
, KC_LCBR
, KC_LBRC
, KC_GRV
, KC_PIPE
, KC_RBRC
, KC_RCBR
, KC_DOT
, KC_SLSH
, _______
, \
159 _______
, _______
, XXXXXXX
, _______
, _______
, _______
, ENT_RS
, ENT_RS
, FNC
, MSE
, _______
, _______ \
164 * ,-----------------------------------------. .-----------------------------------------.
165 * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
166 * |------+------+------+------+------+------| |------+------+------+------+------+------|
167 * | Esc | Mute | Vol- | Vol+ | | | | | | | | | Ins |
168 * |------+------+------+------+------+------| |------+------+------+------+------+------|
169 * | Caps | Stop | |<< | >/|| | >>| | | | | | | | |PrtSc |
170 * |------+------+------+------+------+------| |------+------+------+------+------+------|
171 * | LSOB | | | | | | | | | | | |ScrLk |
172 * |------+------+------+------+------+------| |------+------+------+------+------+------|
173 * | Ctrl | LGUI | | LAlt | Space/Lower | | Enter/Raise | Fn | Mouse| |PsBrk |
174 * `-----------------------------------------' `-----------------------------------------'
177 [_FUNCTION
] = LAYOUT(
178 KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, \
179 _______
, KC_MUTE
, KC_VOLD
, KC_VOLU
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_INS
, \
180 KC_CAPS
, KC_MSTP
, KC_MPRV
, KC_MPLY
, KC_MNXT
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_PSCR
, \
181 _______
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_SLCK
, \
182 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, FNC
, _______
, _______
, KC_PAUS \
186 * ,----------------------------------------. .----------------------------------------.
187 * | Esc | | | | | | | | | | | | Del |
188 * |------+------+------+------+------+-----| |-----+------+------+------+------+------|
189 * | Tab | WhlU | WhlL | MsUp | WhlR | | | | M1 | M2 | M3 | | |
190 * |------+------+------+------+------+-----| |-----+------+------+------+------+------|
191 * | | WhlD | MsL | MsDn | MsR | | | |LClick|RClick| | | |
192 * |------+------+------+------+------+-----| |-----+------+------+------+------+------|
193 * | LSPO | | | | | | | | | | | | RSCB |
194 * |------+------+------+------+------+-----| |-----+------+------+------+------+------|
195 * | Ctrl | | | |Sensitivity | | Sensitivity| |MOUSE | | Ctrl |
196 * `----------------------------------------' `----------------------------------------'
200 KC_ESC
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_DEL
, \
201 KC_TAB
, KC_WH_U
, KC_WH_L
, KC_MS_U
, KC_WH_R
, XXXXXXX
, XXXXXXX
, KC_BTN3
, KC_BTN4
, KC_BTN5
, XXXXXXX
, XXXXXXX
, \
202 KC_BSPC
, KC_WH_D
, KC_MS_L
, KC_MS_D
, KC_MS_R
, XXXXXXX
, XXXXXXX
, KC_BTN1
, KC_BTN2
, XXXXXXX
, XXXXXXX
, XXXXXXX
, \
203 _______
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_RSPC
, \
204 _______
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_ACL1
, KC_ACL1
, KC_ACL0
, KC_ACL0
, XXXXXXX
, MSE
, XXXXXXX
, KC_RCTL \
207 /* Adjust (Lower + Raise)
208 * ,-----------------------------------------. ,----------------------------------------.
209 * | | | | | |RESET | | | | | | | |
210 * |------+------+------+------+------+------| |-----+------+------+------+------+------|
211 * | | | | | | | | |TermOn|TermOf| | | Del |
212 * |------+------+------+------+------+------| |-----+------+------+------+------+------|
213 * | | | | | | | | |Qwerty|Colemk|Dvorak| | |
214 * |------+------+------+------+------+------| |-----+------+------+------+------+------|
215 * | | | | | | | | | | | | | |
216 * |------+------+------+------+------+------| |-----+------+------+------+------+------|
217 * | | | | | | | | | | | |
218 * `-----------------------------------------' `----------------------------------------'
222 _______
, _______
, _______
, _______
, _______
, RESET
, _______
, _______
, _______
, _______
, _______
, _______
, \
223 _______
, _______
, _______
, _______
, _______
, _______
, _______
, TERM_ON
, TERM_OFF
,_______
, _______
, KC_DEL
, \
224 _______
, _______
, _______
, _______
, _______
, _______
, _______
, QWERTY
, COLEMAK
, DVORAK
, _______
, _______
, \
225 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, \
226 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______ \
232 void persistent_default_layer_set(uint16_t default_layer
) {
233 eeconfig_update_default_layer(default_layer
);
234 default_layer_set(default_layer
);
237 // Macros to send R pointer & dplyr pipe
238 const macro_t
*action_get_macro(keyrecord_t
*record
, uint8_t id
, uint8_t opt
) {
242 if (record
->event
.pressed
) { // Pointer <-
244 // return MACRO(D(LSFT), T(COMM), U(LSFT), T(MINS), END);
250 if (record
->event
.pressed
) { // dplyr pipe %>%
252 // return MACRO(D(LSFT), T(5), T(DOT), T(5), U(LSFT), END);
259 /* Cases to switch default layer to QWERTY, COLEMAK or DVORAK
260 and to access ADJUST layer to access the switch keys */
261 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
264 if (record
->event
.pressed
) {
265 set_single_persistent_default_layer(_QWERTY
);
270 if (record
->event
.pressed
) {
271 set_single_persistent_default_layer(_COLEMAK
);
276 if (record
->event
.pressed
) {
277 set_single_persistent_default_layer(_DVORAK
);
282 if (record
->event
.pressed
) {
284 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
287 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
292 if (record
->event
.pressed
) {
294 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
297 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);