aboutsummaryrefslogtreecommitdiff
path: root/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c')
-rw-r--r--keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c76
1 files changed, 36 insertions, 40 deletions
diff --git a/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c b/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c
index 1e50b4a53..8b45b53ec 100644
--- a/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c
+++ b/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c
@@ -13,23 +13,35 @@ enum ctrl_keycodes {
13 13
14#define TG_NKRO MAGIC_TOGGLE_NKRO //Toggle 6KRO / NKRO mode 14#define TG_NKRO MAGIC_TOGGLE_NKRO //Toggle 6KRO / NKRO mode
15 15
16keymap_config_t keymap_config; 16#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__)
17 17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT( 19 [_QWERTY] = LAYOUT(
20 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ 20 KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \
21 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, TD_BSPC, KC_INS, KC_HOME, KC_PGUP, \ 21 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, TD_BSPC, KC_INS, KC_HOME, KC_PGUP, \
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, TD_DEL, KC_END, KC_PGDN, \
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
24 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TD_COMM, TD_DOT, KC_SLSH, KC_RSPC, KC_UP, \
25 KC_LCPO, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LOWER, KC_APP, KC_RCPC, KC_LEFT, KC_DOWN, KC_RGHT \
26 ),
27
28#ifndef GAMELAYER_DISABLE
29 [_GAME] = LAYOUT(
30 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \
31 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ 32 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ 33 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
24 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TD_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, \ 34 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
25 KC_LCPO, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCPC, KC_LEFT, KC_DOWN, KC_RGHT \ 35 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LOWER, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
26 ), 36 ),
27 [1] = LAYOUT( 37#endif
38
39 [_LOWER] = LAYOUT(
28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, \ 40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, \
29 _______, RGB_RMOD, RGB_MOD,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, \ 41 _______, RGB_RMOD,RGB_MOD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, \
30 RGB_SPI, RGB_SAI, RGB_VAI, RGB_HUI, MD_BOOT, _______, _______, U_T_AUTO,U_T_AGCR,_______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, \ 42 RGB_SPI, RGB_SAI, RGB_VAI, RGB_HUI, MD_BOOT, QWERTY, _______, U_T_AUTO,U_T_AGCR,_______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, \
31 RGB_SPD, RGB_SAD, RGB_VAD, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 43 RGB_SPD, RGB_SAD, RGB_VAD, RGB_HUD, RGBRST, GAME, _______, _______, _______, _______, _______, _______, _______, \
32 _______, RGB_TOG, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______, \ 44 _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______, \
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
34 ), 46 ),
35 /* 47 /*
@@ -44,62 +56,46 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
44 */ 56 */
45}; 57};
46 58
47// Runs just one time when the keyboard initializes.
48void matrix_init_user(void) {
49};
50
51// Runs constantly in the background, in a loop.
52void matrix_scan_user(void) {
53};
54
55#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)) 59#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT))
56#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL)) 60#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL))
57#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT)) 61#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))
58 62
59bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { 63bool process_record_keymap(uint16_t keycode, keyrecord_t *record)
60 static uint32_t key_timer; 64{
65 static uint16_t reset_timer;
61 66
62 switch (keycode) { 67 switch (keycode) {
63 case U_T_AUTO: 68 case U_T_AUTO:
64 if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { 69 if (record->event.pressed && MODS_SHIFT && MODS_CTRL)
65 TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode"); 70 TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode");
66 }
67 return false; 71 return false;
68 case U_T_AGCR: 72 case U_T_AGCR:
69 if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { 73 if (record->event.pressed && MODS_SHIFT && MODS_CTRL)
70 TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode"); 74 TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
71 }
72 return false; 75 return false;
73 case DBG_TOG: 76 case DBG_TOG:
74 if (record->event.pressed) { 77 if (record->event.pressed)
75 TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode"); 78 TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
76 }
77 return false; 79 return false;
78 case DBG_MTRX: 80 case DBG_MTRX:
79 if (record->event.pressed) { 81 if (record->event.pressed)
80 TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix"); 82 TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
81 }
82 return false; 83 return false;
83 case DBG_KBD: 84 case DBG_KBD:
84 if (record->event.pressed) { 85 if (record->event.pressed)
85 TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard"); 86 TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
86 }
87 return false; 87 return false;
88 case DBG_MOU: 88 case DBG_MOU:
89 if (record->event.pressed) { 89 if (record->event.pressed)
90 TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse"); 90 TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
91 }
92 return false; 91 return false;
93 case MD_BOOT: 92 case MD_BOOT:
94 if (record->event.pressed) { 93 if (record->event.pressed)
95 key_timer = timer_read32(); 94 reset_timer = timer_read() + 500;
96 } else { 95 else if (timer_expired(reset_timer))
97 if (timer_elapsed32(key_timer) >= 500) {
98 reset_keyboard(); 96 reset_keyboard();
99 }
100 }
101 return false; 97 return false;
102 default:
103 return true; //Process all other keycodes normally
104 } 98 }
99
100 return true;
105} 101}