aboutsummaryrefslogtreecommitdiff
path: root/keyboards/s65_x/keymaps/default/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/s65_x/keymaps/default/keymap.c')
-rw-r--r--keyboards/s65_x/keymaps/default/keymap.c222
1 files changed, 222 insertions, 0 deletions
diff --git a/keyboards/s65_x/keymaps/default/keymap.c b/keyboards/s65_x/keymaps/default/keymap.c
new file mode 100644
index 000000000..c0737c11b
--- /dev/null
+++ b/keyboards/s65_x/keymaps/default/keymap.c
@@ -0,0 +1,222 @@
1#include "s65_x.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 /* 0: Main layer, swapped alt and GUI for Mac
11 * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
12 * │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│DEL │
13 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
14 * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│END │
15 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
16 * │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│PG_UP│
17 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
18 * │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│ UP │PG_DN│
19 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
20 * │LCTRL│L_ALT│L_GUI│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │LEFT │DOWN │RIGHT│
21 * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
22 */
23
24 /* 0: ANSI qwerty */
25 [_BL] = ANSI_KEYMAP(
26 F(3), 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_DEL, \
27 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_END, \
28 F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \
29 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, KC_PGDN, \
30 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
31
32
33 /* 1: Locking arrow keys to WASD for when you need dedicated arrow keys
34 * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
35 * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │
36 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
37 * │ │ │ Up │ │ │ │ │ │ │ │ │ │ │ │█████│ │
38 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
39 * │ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ │
40 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
41 * │ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ │
42 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
43 * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │
44 * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
45 */
46
47 [_AL] = ANSI_KEYMAP(
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
49 KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
50 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
51 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
53
54 /* 2: Fn layer
55 * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
56 * │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │
57 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
58 * │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ │
59 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
60 * │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │█████│ │
61 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
62 * │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│Vol+ │█████│ │
63 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
64 * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │Mute │Vol- │Play │ │
65 * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
66 */
67
68 [_FL] = ANSI_KEYMAP(
69 KC_GRAVE, 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_TRNS, KC_TRNS, \
70 KC_TRNS, F(1), KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \
71 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \
72 KC_TRNS, KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, \
73 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_MPLY, KC_TRNS),
74
75 /* 3: Locking layer for controlling the underglow
76 * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
77 * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │
78 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
79 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│ │
80 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
81 * │ │ On │Mode │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ │
82 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
83 * │ │▒▒▒▒▒│ │Hue+ │Hue- │Sat+ │Sat- │Val+ │Val- │ │ │ │▒▒▒▒▒│ │█████│ │
84 * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
85 * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │
86 * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
87 */
88
89 [_UL] = ANSI_KEYMAP(
90 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
91 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
92 KC_TRNS, F(4), F(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
93 KC_TRNS, KC_TRNS, F(6), F(7), F(8), F(9), F(10), F(11), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
94 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
95};
96
97enum function_id {
98 RGBLED_TOGGLE,
99 RGBLED_STEP_MODE,
100 RGBLED_INCREASE_HUE,
101 RGBLED_DECREASE_HUE,
102 RGBLED_INCREASE_SAT,
103 RGBLED_DECREASE_SAT,
104 RGBLED_INCREASE_VAL,
105 RGBLED_DECREASE_VAL,
106 SHIFT_ESC,
107};
108
109const uint16_t PROGMEM fn_actions[] = {
110 [0] = ACTION_LAYER_MOMENTARY(_FL), // Momentary Fn overlay
111 [1] = ACTION_LAYER_TOGGLE(_AL), // Toggle Arrow Layer overlay
112 [2] = ACTION_LAYER_TAP_KEY(_FL, KC_CAPS),// Tap to toggle caps lock and hold to activate function layer
113 [3] = ACTION_LAYER_TOGGLE(_UL), // Toggle Underglow Layer overlay
114 [4] = ACTION_FUNCTION(RGBLED_TOGGLE), // Turn on/off underglow
115 [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode
116 [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
117 [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
118 [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
119 [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
120 [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
121 [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL),
122 [12] = ACTION_FUNCTION(SHIFT_ESC),
123};
124
125void matrix_scan_user(void) {
126
127 /* uint32_t layer = layer_state; */
128 /* if (layer & (1<<1)) { */
129 /* gh60_wasd_leds_on(); */
130 /* } else { */
131 /* gh60_wasd_leds_off(); */
132 /* } */
133 /* */
134 /* if (layer & (1<<2)) { */
135 /* gh60_esc_led_on(); */
136 /* } else { */
137 /* gh60_esc_led_off(); */
138 /* } */
139};
140
141const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
142 // MACRODOWN only works in this function
143 switch(id) {
144 case 0:
145 if (record->event.pressed) {
146 register_code(KC_RSFT);
147 } else {
148 unregister_code(KC_RSFT);
149 }
150 break;
151 }
152 return MACRO_NONE;
153};
154
155#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
156void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
157 switch (id) {
158 case RGBLED_TOGGLE:
159 //led operations
160 if (record->event.pressed) {
161 rgblight_toggle();
162 }
163 break;
164 case RGBLED_INCREASE_HUE:
165 if (record->event.pressed) {
166 rgblight_increase_hue();
167 }
168 break;
169 case RGBLED_DECREASE_HUE:
170 if (record->event.pressed) {
171 rgblight_decrease_hue();
172 }
173 break;
174 case RGBLED_INCREASE_SAT:
175 if (record->event.pressed) {
176 rgblight_increase_sat();
177 }
178 break;
179 case RGBLED_DECREASE_SAT:
180 if (record->event.pressed) {
181 rgblight_decrease_sat();
182 }
183 break;
184 case RGBLED_INCREASE_VAL:
185 if (record->event.pressed) {
186 rgblight_increase_val();
187 }
188 break;
189 case RGBLED_DECREASE_VAL:
190 if (record->event.pressed) {
191 rgblight_decrease_val();
192 }
193 break;
194 case RGBLED_STEP_MODE:
195 if (record->event.pressed) {
196 rgblight_step();
197 }
198 break;
199 static uint8_t shift_esc_shift_mask;
200 // Shift + ESC = ~
201 case SHIFT_ESC:
202 shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
203 if (record->event.pressed) {
204 if (shift_esc_shift_mask) {
205 add_key(KC_GRV);
206 send_keyboard_report();
207 } else {
208 add_key(KC_ESC);
209 send_keyboard_report();
210 }
211 } else {
212 if (shift_esc_shift_mask) {
213 del_key(KC_GRV);
214 send_keyboard_report();
215 } else {
216 del_key(KC_ESC);
217 send_keyboard_report();
218 }
219 }
220 break;
221 }
222};