From: Geoff Lane <geoff@zorched.net> Date: Mon, 12 Jun 2017 20:57:01 +0000 (-0400) Subject: Add ISO layout for S65-X X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=0440c0f072b0de96b6b286d09b9b5c6ce1ed083f;p=qmk_firmware.git Add ISO layout for S65-X --- diff --git a/keyboards/s65_x/keymaps/iso/keymap.c b/keyboards/s65_x/keymaps/iso/keymap.c new file mode 100644 index 000000000..36a2b247a --- /dev/null +++ b/keyboards/s65_x/keymaps/iso/keymap.c @@ -0,0 +1,225 @@ +#include "s65_x.h" +#include "action_layer.h" + +#define _BL 0 +#define _AL 1 +#define _FL 2 +#define _UL 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: Main layer, swapped alt and GUI for Mac + * âââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ + * â ESC â 1 â 2 â 3 â 4 â 5 â 6 â 7 â 8 â 9 â 0 â - â = âââââââBKSPCâDEL â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â TAB â Q â W â E â R â T â Y â U â I â O â P â [ â ] âââââââââââââEND â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * âCAPSLâ A â S â D â F â G â H â J â K â L â ; â ' â ~ âââââââENTERâPG_UPâ + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * âLSHFTâ \ â Z â X â C â V â B â N â M â , â . â / âââââââRSHFTâ UP âPG_DNâ + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * âLCTRLâL_GUIâL_ALTâââââââââââââââââââ SPC âââââââââââââââââââR_ALTâ FN0 â APP âLEFT âDOWN âRIGHTâ + * âââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ + */ + + /* 0: ISO qwerty */ + [_BL] = ISO_KEYMAP( + 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, \ + 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_END, \ + 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_GRAVE, KC_ENT, KC_PGUP, \ + KC_LSFT, KC_BSLS, 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, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + + /* 1: Locking arrow keys to WASD for when you need dedicated arrow keys + * âââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ + * â â â â â â â â â â â â â âââââââââââââ â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â â â Up â â â â â â â â â â âââââââââââââ â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â âLeft âDown âRightâ â â â â â â â â âââââââââââââ â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â â â â â â â â â â â â âââââââ â â â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â â â âââââââââââââââââââ âââââââââââââââââââ â â â â â â + * âââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ + */ + + [_AL] = ISO_KEYMAP( + 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, \ + 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, \ + 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, 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, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + /* 2: Fn layer + * âââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ + * âGRAVEâ F1 â F2 â F3 â F4 â F5 â F6 â F7 â F8 â F9 â F10 â F11 â F12 âââââââââââââ â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â â _AL â Up â â â â â âPGUP âPGDWNâPRTSCâSCLCKâPAUSEâââââââââââââ â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â âLeft âDown âRightâ â âLeft âDown â Up âRightâ â â âââââââââââââ â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â â â_UL â â â â â â âHome â End â âââââââ âVol+ â â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â â â âââââââââââââââââââ âââââââââââââââââââ â â âMute âVol- âPlay â + * âââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ + */ + + [_FL] = ISO_KEYMAP( + 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, \ + 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, \ + 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, KC_TRNS, \ + 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_TRNS, KC_VOLU, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_MPLY), + + /* 3: Locking layer for controlling the underglow + * âââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ + * â â â â â â â â â â â â â âââââââââââââ â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â â â â â â â â â â â â â âââââââââââââ â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â â On âMode â â â â â â â â â â âââââââââââââ â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â â â âHue+ âHue- âSat+ âSat- âVal+ âVal- â â â âââââââ â â â + * âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ * â â â âââââââââââââââââââ âââââââââââââââââââ â â â â â â + * âââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ + */ + + [_UL] = ISO_KEYMAP( + 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, \ + 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, \ + 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, KC_TRNS, \ + KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; + + +enum function_id { + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(_FL), // Momentary Fn overlay + [1] = ACTION_LAYER_TOGGLE(_AL), // Toggle Arrow Layer overlay + [2] = ACTION_LAYER_TAP_KEY(_FL, KC_CAPS),// Tap to toggle caps lock and hold to activate function layer + [3] = ACTION_LAYER_TOGGLE(_UL), // Toggle Underglow Layer overlay + [4] = ACTION_FUNCTION(RGBLED_TOGGLE), // Turn on/off underglow + [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode + [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + [12] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void matrix_scan_user(void) { + + // Would like to do something like this, that would be cool + // Turn off all the LEDs on except for the ones mapped on the UL layer, for example + /* uint32_t layer = layer_state; */ + /* if (layer & (1<<1)) { */ + /* gh60_wasd_leds_on(); */ + /* } else { */ + /* gh60_wasd_leds_off(); */ + /* } */ + /* */ + /* if (layer & (1<<2)) { */ + /* gh60_esc_led_on(); */ + /* } else { */ + /* gh60_esc_led_off(); */ + /* } */ +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + //led operations + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + static uint8_t shift_esc_shift_mask; + // Shift + ESC = ~ + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +}; diff --git a/keyboards/s65_x/keymaps/iso/readme.md b/keyboards/s65_x/keymaps/iso/readme.md new file mode 100644 index 000000000..179b0b908 --- /dev/null +++ b/keyboards/s65_x/keymaps/iso/readme.md @@ -0,0 +1,28 @@ +### 1 ISO +An ISO layout that assumes standard sized shifts, enter, and backspace keys. + +#### 1.0 Default layer + âââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ + â ESC â 1 â 2 â 3 â 4 â 5 â 6 â 7 â 8 â 9 â 0 â - â = âââââââBKSPCâDEL â + âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ â TAB â Q â W â E â R â T â Y â U â I â O â P â [ â ] âââââââââââââEND â + âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ âCAPSLâ A â S â D â F â G â H â J â K â L â ; â ' â ~ âââââââENTERâPG_UPâ + âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ âLSHFTâ \ â Z â X â C â V â B â N â M â , â . â / âââââââRSHFTâ UP âPG_DNâ + âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ âLCTRLâL_GUIâL_ALTâââââââââââââââââââ SPC âââââââââââââââââââR_ALTâ FN0 â APP âLEFT âDOWN âRIGHTâ + âââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ +#### 1.1 Fn layer + âââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ¬ââââââ + âGRAVEâ F1 â F2 â F3 â F4 â F5 â F6 â F7 â F8 â F9 â F10 â F11 â F12 âââââââââââââ â + âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ â â _AL â Up â â â â â âPGUP âPGDWNâPRTSCâSCLCKâPAUSEâââââââââââââ â + âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ â âLeft âDown âRightâ â âLeft âDown â Up âRightâ â â âââââââââââââ â + âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ â â â_UL â â â â â â âHome â End â âââââââââââââVol+ â â + âââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼ââââââ¼âââââ⤠+ â â â âââââââââââââââââââ âââââââââââââââââââ â â âMute âVol- âPlay â + âââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ´ââââââ + diff --git a/keyboards/s65_x/s65_x.h b/keyboards/s65_x/s65_x.h index 971542b5f..7682d2a65 100644 --- a/keyboards/s65_x/s65_x.h +++ b/keyboards/s65_x/s65_x.h @@ -19,6 +19,20 @@ { KC_NO, KC_NO, K400, K401, K402, KC_NO, KC_NO, KC_NO, K408, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414, K415 } \ } + +#define ISO_KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, K315, \ + K400, K401, K402, K408, K410, K411, K412, K413, K414, K415 \ +) { \ + { KC_NO, KC_NO, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014, K015 }, \ + { KC_NO, KC_NO, K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K214, K115 }, \ + { KC_NO, KC_NO, K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { KC_NO, KC_NO, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314, K315 }, \ + { KC_NO, KC_NO, K400, K401, K402, KC_NO, KC_NO, KC_NO, K408, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414, K415 } \ +} void matrix_init_user(void); void matrix_scan_user(void);