2 #include "action_layer.h"
9 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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 ),
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 ),
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 ),
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 ),
47 const 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),
63 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
65 // MACRODOWN only works in this function
68 if (record->event.pressed) {
69 register_code(KC_RSFT);
71 unregister_code(KC_RSFT);
78 void matrix_scan_user(void) {
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;
84 //gh60_wasd_leds_on();
86 //gh60_wasd_leds_off();
96 #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
98 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
102 if (record->event.pressed) {
106 case RGBLED_INCREASE_HUE:
107 if (record->event.pressed) {
108 rgblight_increase_hue();
111 case RGBLED_DECREASE_HUE:
112 if (record->event.pressed) {
113 rgblight_decrease_hue();
116 case RGBLED_INCREASE_SAT:
117 if (record->event.pressed) {
118 rgblight_increase_sat();
121 case RGBLED_DECREASE_SAT:
122 if (record->event.pressed) {
123 rgblight_decrease_sat();
126 case RGBLED_INCREASE_VAL:
127 if (record->event.pressed) {
128 rgblight_increase_val();
131 case RGBLED_DECREASE_VAL:
132 if (record->event.pressed) {
133 rgblight_decrease_val();
136 case RGBLED_STEP_MODE:
137 if (record->event.pressed) {
141 static uint8_t shift_esc_shift_mask;
144 shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
145 if (record->event.pressed) {
146 if (shift_esc_shift_mask) {
148 send_keyboard_report();
151 send_keyboard_report();
154 if (shift_esc_shift_mask) {
156 send_keyboard_report();
159 send_keyboard_report();