Cleans up quantum/keymap situation, removes extra lufa folders (#416)
[jackhill/qmk/firmware.git] / quantum / keycode_config.c
CommitLineData
db32864c
JH
1#include "keycode_config.h"
2
3extern keymap_config_t keymap_config;
4
5uint16_t keycode_config(uint16_t keycode) {
6
7 switch (keycode) {
8 case KC_CAPSLOCK:
9 case KC_LOCKING_CAPS:
10 if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) {
11 return KC_LCTL;
12 }
13 return keycode;
14 case KC_LCTL:
15 if (keymap_config.swap_control_capslock) {
16 return KC_CAPSLOCK;
17 }
18 return KC_LCTL;
19 case KC_LALT:
20 if (keymap_config.swap_lalt_lgui) {
21 if (keymap_config.no_gui) {
22 return KC_NO;
23 }
24 return KC_LGUI;
25 }
26 return KC_LALT;
27 case KC_LGUI:
28 if (keymap_config.swap_lalt_lgui) {
29 return KC_LALT;
30 }
31 if (keymap_config.no_gui) {
32 return KC_NO;
33 }
34 return KC_LGUI;
35 case KC_RALT:
36 if (keymap_config.swap_ralt_rgui) {
37 if (keymap_config.no_gui) {
38 return KC_NO;
39 }
40 return KC_RGUI;
41 }
42 return KC_RALT;
43 case KC_RGUI:
44 if (keymap_config.swap_ralt_rgui) {
45 return KC_RALT;
46 }
47 if (keymap_config.no_gui) {
48 return KC_NO;
49 }
50 return KC_RGUI;
51 case KC_GRAVE:
52 if (keymap_config.swap_grave_esc) {
53 return KC_ESC;
54 }
55 return KC_GRAVE;
56 case KC_ESC:
57 if (keymap_config.swap_grave_esc) {
58 return KC_GRAVE;
59 }
60 return KC_ESC;
61 case KC_BSLASH:
62 if (keymap_config.swap_backslash_backspace) {
63 return KC_BSPACE;
64 }
65 return KC_BSLASH;
66 case KC_BSPACE:
67 if (keymap_config.swap_backslash_backspace) {
68 return KC_BSLASH;
69 }
70 return KC_BSPACE;
71 default:
72 return keycode;
73 }
74}