aboutsummaryrefslogtreecommitdiff
path: root/keyboards/jd40/keymaps/default
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/jd40/keymaps/default')
-rw-r--r--keyboards/jd40/keymaps/default/keymap.c164
1 files changed, 164 insertions, 0 deletions
diff --git a/keyboards/jd40/keymaps/default/keymap.c b/keyboards/jd40/keymaps/default/keymap.c
new file mode 100644
index 000000000..79ac146c9
--- /dev/null
+++ b/keyboards/jd40/keymaps/default/keymap.c
@@ -0,0 +1,164 @@
1#include "jd40.h"
2#include "action_layer.h"
3
4#define _BL 0
5#define _AL 1
6#define _FL 2
7#define _UL 3
8
9const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
10 [_BL] = KEYMAP(
11 F12, Q, W, E, R, T, Y, U, I, O, P, BSPC,
12 TAB, A, S, D, F, G, H, J, K, L, ENT,
13 LSFT, Z, X, C, V, B, N, M, COMM, UP, DOT,
14 LCTL, LGUI, LALT, FN0, SPC, SPC, FN0, LEFT, DOWN, RIGHT ),
15
16 [_AL] = KEYMAP(
17 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, DEL,
18 CAPS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
19 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, SCLN, PGUP, QUOT,
20 TRNS, TRNS, TRNS, TRNS, FN3, FN3, TRNS, HOME, PGDN, END ),
21
22 [_FL] = KEYMAP(
23 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
24 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
25 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
26 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ),
27
28 [_UL] = KEYMAP(
29 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
30 TRNS, FN4, FN5, FN11, FN10, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
31 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
32 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ),
33};
34
35enum function_id {
36 RGBLED_TOGGLE,
37 RGBLED_STEP_MODE,
38 RGBLED_INCREASE_HUE,
39 RGBLED_DECREASE_HUE,
40 RGBLED_INCREASE_SAT,
41 RGBLED_DECREASE_SAT,
42 RGBLED_INCREASE_VAL,
43 RGBLED_DECREASE_VAL,
44 SHIFT_ESC,
45};
46
47const uint16_t PROGMEM fn_actions[] = {
48 [0] = ACTION_LAYER_MOMENTARY(1), // Momentary Fn overlay
49 [1] = ACTION_LAYER_TOGGLE(2), // Toggle Arrow Layer overlay
50 [2] = ACTION_LAYER_TAP_KEY(2, KC_CAPS), // Tap to toggle caps lock and hold to activate function layer
51 [3] = ACTION_LAYER_TOGGLE(3), // Toggle Underglow Layer overlay
52 [4] = ACTION_FUNCTION(RGBLED_TOGGLE), //Turn on/off underglow
53 [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode
54 [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
55 [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
56 [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
57 [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
58 [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
59 [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL),
60 [12] = ACTION_FUNCTION(SHIFT_ESC),
61};
62
63const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
64{
65 // MACRODOWN only works in this function
66 switch(id) {
67 case 0:
68 if (record->event.pressed) {
69 register_code(KC_RSFT);
70 } else {
71 unregister_code(KC_RSFT);
72 }
73 break;
74 }
75 return MACRO_NONE;
76};
77
78void matrix_scan_user(void) {
79
80// Layer LED indicators
81// ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster
82 uint32_t layer = layer_state;
83 if (layer & (1<<1)) {
84 //gh60_wasd_leds_on();
85 } else {
86 //gh60_wasd_leds_off();
87 }
88
89 if (layer & (1<<2)) {
90 //gh60_esc_led_on();
91 } else {
92 //gh60_esc_led_off();
93 }
94};
95
96#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
97
98void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
99 switch (id) {
100 case RGBLED_TOGGLE:
101 //led operations
102 if (record->event.pressed) {
103 rgblight_toggle();
104 }
105 break;
106 case RGBLED_INCREASE_HUE:
107 if (record->event.pressed) {
108 rgblight_increase_hue();
109 }
110 break;
111 case RGBLED_DECREASE_HUE:
112 if (record->event.pressed) {
113 rgblight_decrease_hue();
114 }
115 break;
116 case RGBLED_INCREASE_SAT:
117 if (record->event.pressed) {
118 rgblight_increase_sat();
119 }
120 break;
121 case RGBLED_DECREASE_SAT:
122 if (record->event.pressed) {
123 rgblight_decrease_sat();
124 }
125 break;
126 case RGBLED_INCREASE_VAL:
127 if (record->event.pressed) {
128 rgblight_increase_val();
129 }
130 break;
131 case RGBLED_DECREASE_VAL:
132 if (record->event.pressed) {
133 rgblight_decrease_val();
134 }
135 break;
136 case RGBLED_STEP_MODE:
137 if (record->event.pressed) {
138 rgblight_step();
139 }
140 break;
141 static uint8_t shift_esc_shift_mask;
142 // Shift + ESC = ~
143 case SHIFT_ESC:
144 shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
145 if (record->event.pressed) {
146 if (shift_esc_shift_mask) {
147 add_key(KC_GRV);
148 send_keyboard_report();
149 } else {
150 add_key(KC_ESC);
151 send_keyboard_report();
152 }
153 } else {
154 if (shift_esc_shift_mask) {
155 del_key(KC_GRV);
156 send_keyboard_report();
157 } else {
158 del_key(KC_ESC);
159 send_keyboard_report();
160 }
161 }
162 break;
163 }
164};