aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosef Adamcik <josef.adamcik@gmail.com>2020-04-29 20:16:03 +0200
committerJosef Adamcik <josef.adamcik@gmail.com>2020-04-30 20:21:08 +0200
commit3de4c3ea6a16d64aaf9a86484f57777fe54270ab (patch)
tree851deaed7660c2b3113b4d991daf5fc12a27ac97
parenta84d23966163a4436309df95bda423d3d0ac4242 (diff)
downloadqmk_firmware-3de4c3ea6a16d64aaf9a86484f57777fe54270ab.tar.gz
qmk_firmware-3de4c3ea6a16d64aaf9a86484f57777fe54270ab.zip
Remove duplicated layers for MAC/WIN support
-rw-r--r--keyboards/sofle/keymaps/default/keymap.c302
1 files changed, 181 insertions, 121 deletions
diff --git a/keyboards/sofle/keymaps/default/keymap.c b/keyboards/sofle/keymaps/default/keymap.c
index e9c07a10f..a23614238 100644
--- a/keyboards/sofle/keymaps/default/keymap.c
+++ b/keyboards/sofle/keymaps/default/keymap.c
@@ -2,50 +2,26 @@
2 2
3enum sofle_layers { 3enum sofle_layers {
4 /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ 4 /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */
5 _M_QWERTY, 5 _QWERTY,
6 _W_QWERTY, 6 _COLEMAK,
7 _M_COLEMAK,
8 _W_COLEMAK,
9 _LOWER, 7 _LOWER,
10 _M_RAISE, 8 _RAISE,
11 _W_RAISE,
12 _ADJUST, 9 _ADJUST,
13}; 10};
14 11
15enum custom_keycodes { 12enum custom_keycodes {
16 KC_M_QWERTY = SAFE_RANGE, 13 KC_QWERTY = SAFE_RANGE,
17 KC_W_QWERTY, 14 KC_COLEMAK,
18 KC_M_COLEMAK, 15 KC_LOWER,
19 KC_W_COLEMAK, 16 KC_RAISE,
20 KC_M_LOWER,
21 KC_W_LOWER,
22 KC_M_RAISE,
23 KC_W_RAISE,
24 KC_ADJUST, 17 KC_ADJUST,
18 KC_PRVWD,
19 KC_NXTWD,
20 KC_LSTRT,
21 KC_LEND,
22 KC_DLINE
25}; 23};
26 24
27/* Linux/win variants */
28#define KC_W_UNDO LCTL(KC_Z)
29#define KC_W_CUT LCTL(KC_X)
30#define KC_W_COPY LCTL(KC_C)
31#define KC_W_PASTE LCTL(KC_V)
32#define KC_W_PRVWD LCTL(KC_LEFT)
33#define KC_W_NXTWD LCTL(KC_RIGHT)
34#define KC_W_LSTRT KC_HOME
35#define KC_W_LEND KC_END
36#define KC_W_DLINE LCTL(KC_BSPC)
37
38/* Mac variants */
39#define KC_M_UNDO LGUI(KC_Z)
40#define KC_M_CUT LGUI(KC_X)
41#define KC_M_COPY LGUI(KC_C)
42#define KC_M_PASTE LGUI(KC_V)
43#define KC_M_PRVWD LALT(KC_LEFT)
44#define KC_M_NXTWD LALT(KC_RIGHT)
45#define KC_M_LSTRT LGUI(KC_LEFT)
46#define KC_M_LEND LGUI(KC_RIGHT)
47#define KC_M_DLINE LGUI(KC_BSPC)
48
49#define ______ KC_TRNS 25#define ______ KC_TRNS
50#define XXXXXX KC_NO 26#define XXXXXX KC_NO
51 27
@@ -65,19 +41,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
65 * | | | | |/ / \ \ | | | | | 41 * | | | | |/ / \ \ | | | | |
66 * `----------------------------------' '------''---------------------------' 42 * `----------------------------------' '------''---------------------------'
67 */ 43 */
68[_M_QWERTY] = LAYOUT( \ 44
45[_QWERTY] = LAYOUT( \
69 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, \ 46 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, \
70 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ 47 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
71 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ 48 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
72 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXX,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ 49 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXX,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
73 KC_LCTRL,KC_LALT,KC_LGUI,KC_M_LOWER, KC_ENT, KC_SPC, KC_M_RAISE, KC_RGUI, KC_RALT, KC_RCTRL \ 50 KC_LGUI,KC_LALT,KC_LCTRL, KC_LOWER, KC_ENT, KC_SPC, KC_RAISE, KC_RCTRL, KC_RALT, KC_RGUI \
74),
75[_W_QWERTY] = LAYOUT( \
76 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, \
77 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
78 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
79 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXX,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
80 KC_LGUI,KC_LALT,KC_LCTRL,KC_W_LOWER, KC_ENT, KC_SPC, KC_W_RAISE, KC_RCTRL, KC_RALT, KC_RGUI \
81), 51),
82/* 52/*
83 * COLEMAK 53 * COLEMAK
@@ -95,19 +65,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
95 * `----------------------------------' '------''---------------------------' 65 * `----------------------------------' '------''---------------------------'
96 */ 66 */
97 67
98[_M_COLEMAK] = LAYOUT( \ 68[_COLEMAK] = LAYOUT( \
99 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, \ 69 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, \
100 KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ 70 KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \
101 KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ 71 KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
102 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXX,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ 72 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXX,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
103 KC_LCTRL,KC_LALT,KC_LGUI,KC_M_LOWER, KC_ENT, KC_SPC, KC_M_RAISE, KC_RGUI, KC_RALT, KC_RCTRL \ 73 KC_LGUI,KC_LALT,KC_LCTRL,KC_LOWER, KC_ENT, KC_SPC, KC_RAISE, KC_RCTRL, KC_RALT, KC_RGUI \
104),
105[_W_COLEMAK] = LAYOUT( \
106 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, \
107 KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \
108 KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
109 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXX,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
110 KC_LGUI,KC_LALT,KC_LCTRL,KC_W_LOWER, KC_ENT, KC_SPC, KC_W_RAISE, KC_RCTRL, KC_RALT, KC_RGUI \
111), 74),
112/* LOWER 75/* LOWER
113 * ,-----------------------------------------. ,-----------------------------------------. 76 * ,-----------------------------------------. ,-----------------------------------------.
@@ -144,27 +107,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
144 * | | | | |/ / \ \ | | | | | 107 * | | | | |/ / \ \ | | | | |
145 * `----------------------------------' '------''---------------------------' 108 * `----------------------------------' '------''---------------------------'
146 */ 109 */
147[_M_RAISE] = LAYOUT( \ 110[_RAISE] = LAYOUT( \
148 ______, ______ , ______ , ______ , ______ , ______, ______, ______ , ______, ______ , ______ ,______, \ 111 ______, ______ , ______ , ______ , ______ , ______, ______, ______ , ______, ______ , ______ ,______, \
149 ______, KC_INS, KC_PSCR, KC_APP, XXXXXX, XXXXXX, KC_PGUP, KC_M_PRVWD, KC_UP,KC_M_NXTWD,KC_M_DLINE,KC_BSPC, \ 112 ______, KC_INS, KC_PSCR, KC_APP, XXXXXX, XXXXXX, KC_PGUP, KC_PRVWD, KC_UP, KC_NXTWD,KC_DLINE, KC_BSPC, \
150 ______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_BSPC, \ 113 ______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_BSPC, \
151 ______,KC_M_UNDO, KC_M_CUT,KC_M_COPY,KC_M_PASTE, XXXXXX,______, ______, XXXXXX, KC_M_LSTRT, XXXXXX, KC_M_LEND, XXXXXX, ______, \ 114 ______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXX, ______, ______, XXXXXX, KC_LSTRT, XXXXXX, KC_LEND, XXXXXX, ______, \
152 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______ \ 115 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______ \
153),
154[_W_RAISE] = LAYOUT( \
155 ______, ______ , ______ , ______ , ______ , ______, ______, ______ , ______, ______ , ______ ,______, \
156 ______, KC_INS, KC_PSCR, KC_APP, XXXXXX, XXXXXX, KC_PGUP, KC_W_PRVWD, KC_UP,KC_W_NXTWD,KC_W_DLINE, KC_BSPC, \
157 ______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_BSPC, \
158 ______,KC_W_UNDO,KC_W_CUT,KC_W_COPY,KC_W_PASTE,XXXXXX, ______, ______, XXXXXX, KC_W_LSTRT, XXXXXX, KC_W_LEND, XXXXXX, ______, \
159 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______ \
160), 116),
161/* ADJUST 117/* ADJUST
162 * ,-----------------------------------------. ,-----------------------------------------. 118 * ,-----------------------------------------. ,-----------------------------------------.
163 * | | | | | | | | | | | | | | 119 * | | | | | | | | | | | | | |
164 * |------+------+------+------+------+------| |------+------+------+------+------+------| 120 * |------+------+------+------+------+------| |------+------+------+------+------+------|
165 * | RESET| |MACQWR|MACCOL| | | | | | | | | | 121 * | RESET| |QWERTY|COLEMAK| | | | | | | | | |
166 * |------+------+------+------+------+------| |------+------+------+------+------+------| 122 * |------+------+------+------+------+------| |------+------+------+------+------+------|
167 * | | |WINQWR|WINCOL| | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | 123 * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | |
168 * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| 124 * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
169 * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | 125 * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | |
170 * `-----------------------------------------/ / \ \-----------------------------------------' 126 * `-----------------------------------------/ / \ \-----------------------------------------'
@@ -173,11 +129,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
173 * `----------------------------------' '------''---------------------------' 129 * `----------------------------------' '------''---------------------------'
174 */ 130 */
175 [_ADJUST] = LAYOUT( \ 131 [_ADJUST] = LAYOUT( \
176 XXXXXX , XXXXXX, XXXXXX , XXXXXX , XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, \ 132 XXXXXX , XXXXXX, XXXXXX , XXXXXX , XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, \
177 RESET , XXXXXX,KC_M_QWERTY,KC_M_COLEMAK,XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, \ 133 RESET , XXXXXX,KC_QWERTY,KC_COLEMAK,CG_TOGG,XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, \
178 XXXXXX , XXXXXX,KC_W_QWERTY,KC_W_COLEMAK,XXXXXX, XXXXXX, XXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXX, XXXXXX, \ 134 XXXXXX , XXXXXX,CG_TOGG, XXXXXX, XXXXXX, XXXXXX, XXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXX, XXXXXX, \
179 XXXXXX , XXXXXX, XXXXXX , XXXXXX , XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXX, XXXXXX, \ 135 XXXXXX , XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXX, XXXXXX, \
180 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______ \ 136 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______ \
181 ) 137 )
182}; 138};
183 139
@@ -198,18 +154,18 @@ static void print_status_narrow(void) {
198 oled_write_P(PSTR("\n\n"), false); 154 oled_write_P(PSTR("\n\n"), false);
199 oled_write_ln_P(PSTR("MODE"), false); 155 oled_write_ln_P(PSTR("MODE"), false);
200 oled_write_ln_P(PSTR(""), false); 156 oled_write_ln_P(PSTR(""), false);
157 if (keymap_config.swap_lctl_lgui) {
158 oled_write_ln_P(PSTR("MAC"), false);
159 } else {
160 oled_write_ln_P(PSTR("WIN"), false);
161 }
162
201 switch (biton32(default_layer_state)) { 163 switch (biton32(default_layer_state)) {
202 case _W_QWERTY: 164 case _QWERTY:
203 oled_write_P(PSTR("Qwrt\nLinux"), false); 165 oled_write_ln_P(PSTR("Qwrt"), false);
204 break;
205 case _M_QWERTY:
206 oled_write_P(PSTR("Qwrt\nMac\n"), false);
207 break; 166 break;
208 case _W_COLEMAK: 167 case _COLEMAK:
209 oled_write_P(PSTR("Clmk\nLinux"), false); 168 oled_write_ln_P(PSTR("Clmk"), false);
210 break;
211 case _M_COLEMAK:
212 oled_write_P(PSTR("Clmk\nMac\n"), false);
213 break; 169 break;
214 default: 170 default:
215 oled_write_P(PSTR("Undefined\n"), false); 171 oled_write_P(PSTR("Undefined\n"), false);
@@ -218,14 +174,11 @@ static void print_status_narrow(void) {
218 // Print current layer 174 // Print current layer
219 oled_write_ln_P(PSTR("LAYER"), false); 175 oled_write_ln_P(PSTR("LAYER"), false);
220 switch (biton32(layer_state)) { 176 switch (biton32(layer_state)) {
221 case _M_COLEMAK: 177 case _COLEMAK:
222 case _W_COLEMAK: 178 case _QWERTY:
223 case _M_QWERTY:
224 case _W_QWERTY:
225 oled_write_P(PSTR("Base\n"), false); 179 oled_write_P(PSTR("Base\n"), false);
226 break; 180 break;
227 case _M_RAISE: 181 case _RAISE:
228 case _W_RAISE:
229 oled_write_P(PSTR("Raise"), false); 182 oled_write_P(PSTR("Raise"), false);
230 break; 183 break;
231 case _LOWER: 184 case _LOWER:
@@ -261,75 +214,182 @@ void oled_task_user(void) {
261 214
262bool process_record_user(uint16_t keycode, keyrecord_t *record) { 215bool process_record_user(uint16_t keycode, keyrecord_t *record) {
263 switch (keycode) { 216 switch (keycode) {
264 case KC_W_QWERTY: 217 case KC_QWERTY:
265 if (record->event.pressed) { 218 if (record->event.pressed) {
266 set_single_persistent_default_layer(_W_QWERTY); 219 set_single_persistent_default_layer(_QWERTY);
267 } 220 }
268 return false; 221 return false;
269 break; 222 break;
270 case KC_M_QWERTY: 223 case KC_COLEMAK:
271 if (record->event.pressed) { 224 if (record->event.pressed) {
272 set_single_persistent_default_layer(_M_QWERTY); 225 set_single_persistent_default_layer(_COLEMAK);
273 } 226 }
274 return false; 227 return false;
275 break; 228 break;
276 case KC_W_COLEMAK: 229 case KC_LOWER:
277 if (record->event.pressed) { 230 if (record->event.pressed) {
278 set_single_persistent_default_layer(_W_COLEMAK); 231 layer_on(_LOWER);
232 update_tri_layer(_LOWER, _RAISE, _ADJUST);
233 } else {
234 layer_off(_LOWER);
235 update_tri_layer(_LOWER, _RAISE, _ADJUST);
279 } 236 }
280 return false; 237 return false;
281 break; 238 break;
282 case KC_M_COLEMAK: 239 case KC_RAISE:
283 if (record->event.pressed) { 240 if (record->event.pressed) {
284 set_single_persistent_default_layer(_M_COLEMAK); 241 layer_on(_RAISE);
242 update_tri_layer(_LOWER, _RAISE, _ADJUST);
243 } else {
244 layer_off(_RAISE);
245 update_tri_layer(_LOWER, _RAISE, _ADJUST);
285 } 246 }
286 return false; 247 return false;
287 break; 248 break;
288 case KC_M_LOWER: 249 case KC_ADJUST:
289 if (record->event.pressed) { 250 if (record->event.pressed) {
290 layer_on(_LOWER); 251 layer_on(_ADJUST);
291 update_tri_layer(_LOWER, _M_RAISE, _ADJUST);
292 } else { 252 } else {
293 layer_off(_LOWER); 253 layer_off(_ADJUST);
294 update_tri_layer(_LOWER, _M_RAISE, _ADJUST);
295 } 254 }
296 return false; 255 return false;
297 break; 256 break;
298 case KC_M_RAISE: 257 case KC_PRVWD:
258 if (record->event.pressed) {
259 if (keymap_config.swap_lctl_lgui) {
260 register_code16(A(KC_LEFT));
261 } else {
262 register_code16(C(KC_LEFT));
263 }
264 } else {
265 if (keymap_config.swap_lctl_lgui) {
266 unregister_code16(A(KC_LEFT));
267 } else {
268 unregister_code16(C(KC_LEFT));
269 }
270 }
271 break;
272 case KC_NXTWD:
273 if (record->event.pressed) {
274 if (keymap_config.swap_lctl_lgui) {
275 register_code16(A(KC_RIGHT));
276 } else {
277 register_code16(C(KC_RIGHT));
278 }
279 } else {
280 if (keymap_config.swap_lctl_lgui) {
281 unregister_code16(A(KC_RIGHT));
282 } else {
283 unregister_code16(C(KC_RIGHT));
284 }
285 }
286 break;
287 case KC_LSTRT:
288 if (record->event.pressed) {
289 if (keymap_config.swap_lctl_lgui) {
290 register_code16(G(KC_LEFT));
291 } else {
292 register_code(KC_HOME);
293 }
294 } else {
295 if (keymap_config.swap_lctl_lgui) {
296 unregister_code16(G(KC_LEFT));
297 } else {
298 unregister_code(KC_HOME);
299 }
300 }
301 break;
302 case KC_LEND:
299 if (record->event.pressed) { 303 if (record->event.pressed) {
300 layer_on(_M_RAISE); 304 if (keymap_config.swap_lctl_lgui) {
301 update_tri_layer(_LOWER, _M_RAISE, _ADJUST); 305 register_code16(G(KC_RIGHT));
306 } else {
307 register_code(KC_END);
308 }
302 } else { 309 } else {
303 layer_off(_M_RAISE); 310 if (keymap_config.swap_lctl_lgui) {
304 update_tri_layer(_LOWER, _M_RAISE, _ADJUST); 311 unregister_code16(G(KC_RIGHT));
312 } else {
313 unregister_code(KC_END);
314 }
315 }
316 break;
317 case KC_DLINE:
318 if (record->event.pressed) {
319 if (keymap_config.swap_lctl_lgui) {
320 register_code16(G(KC_BSPC));
321 } else {
322 register_code16(C(KC_BSPC));
323 }
324 } else {
325 if (keymap_config.swap_lctl_lgui) {
326 unregister_code16(G(KC_BSPC));
327 } else {
328 unregister_code16(C(KC_BSPC));
329 }
330 }
331 break;
332 case KC_COPY:
333 if (record->event.pressed) {
334 if (keymap_config.swap_lctl_lgui) {
335 register_code16(G(KC_C));
336 } else {
337 register_code16(C(KC_C));
338 }
339 } else {
340 if (keymap_config.swap_lctl_lgui) {
341 unregister_code16(G(KC_C));
342 } else {
343 unregister_code16(C(KC_C));
344 }
305 } 345 }
306 return false; 346 return false;
307 break; 347 break;
308 case KC_W_LOWER: 348 case KC_PASTE:
309 if (record->event.pressed) { 349 if (record->event.pressed) {
310 layer_on(_LOWER); 350 if (keymap_config.swap_lctl_lgui) {
311 update_tri_layer(_LOWER, _W_RAISE, _ADJUST); 351 register_code16(G(KC_V));
352 } else {
353 register_code16(C(KC_V));
354 }
312 } else { 355 } else {
313 layer_off(_LOWER); 356 if (keymap_config.swap_lctl_lgui) {
314 update_tri_layer(_LOWER, _W_RAISE, _ADJUST); 357 unregister_code16(G(KC_V));
358 } else {
359 unregister_code16(C(KC_V));
360 }
315 } 361 }
316 return false; 362 return false;
317 break; 363 break;
318 case KC_W_RAISE: 364 case KC_CUT:
319 if (record->event.pressed) { 365 if (record->event.pressed) {
320 layer_on(_W_RAISE); 366 if (keymap_config.swap_lctl_lgui) {
321 update_tri_layer(_LOWER, _W_RAISE, _ADJUST); 367 register_code16(G(KC_X));
368 } else {
369 register_code16(C(KC_X));
370 }
322 } else { 371 } else {
323 layer_off(_W_RAISE); 372 if (keymap_config.swap_lctl_lgui) {
324 update_tri_layer(_LOWER, _W_RAISE, _ADJUST); 373 unregister_code16(G(KC_X));
374 } else {
375 unregister_code16(C(KC_X));
376 }
325 } 377 }
326 return false; 378 return false;
327 break; 379 break;
328 case KC_ADJUST: 380 case KC_UNDO:
329 if (record->event.pressed) { 381 if (record->event.pressed) {
330 layer_on(_ADJUST); 382 if (keymap_config.swap_lctl_lgui) {
383 register_code16(G(KC_Z));
384 } else {
385 register_code16(C(KC_Z));
386 }
331 } else { 387 } else {
332 layer_off(_ADJUST); 388 if (keymap_config.swap_lctl_lgui) {
389 unregister_code16(G(KC_Z));
390 } else {
391 unregister_code16(C(KC_Z));
392 }
333 } 393 }
334 return false; 394 return false;
335 break; 395 break;