]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Merge pull request #1389 from geofflane/keyboard_s65_x_2
authorJack Humbert <jack.humb@gmail.com>
Mon, 12 Jun 2017 21:08:27 +0000 (17:08 -0400)
committerGitHub <noreply@github.com>
Mon, 12 Jun 2017 21:08:27 +0000 (17:08 -0400)
Keyboard S65-X Support #2

keyboards/s65_x/keymaps/default/keymap.c
keyboards/s65_x/keymaps/default/readme.md
keyboards/s65_x/keymaps/iso/keymap.c [new file with mode: 0644]
keyboards/s65_x/keymaps/iso/readme.md [new file with mode: 0644]
keyboards/s65_x/readme.md
keyboards/s65_x/s65_x.h

index c0737c11b2f2140734441b2a1d5aa8857414ab23..48f4c843269522d9c8d42b2b20bf9f3722cfc9ee 100644 (file)
@@ -34,11 +34,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    *  ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
    *  │     │     │     │     │     │     │     │     │     │     │     │     │     │▒▒▒▒▒│▒▒▒▒▒│     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-   *  â\94\82     â\94\82     â\94\82 Up  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+   *  â\94\82     â\94\82     â\94\82 Up  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-   *  â\94\82     â\94\82Left â\94\82Down â\94\82Rightâ\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+   *  â\94\82     â\94\82Left â\94\82Down â\94\82Rightâ\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-   *  │     │▒▒▒▒▒│     │     │     │     │     │     │     │     │     │     │▒▒▒▒▒│     │█████│     │
+   *  │     │▒▒▒▒▒│     │     │     │     │     │     │     │     │     │     │▒▒▒▒▒│     │     │     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
    *  │     │     │     │█████│█████│█████│     │█████│█████│█████│     │     │     │     │     │     │
    *  └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
@@ -55,13 +55,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    *  ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
    *  │GRAVE│ F1  │ F2  │ F3  │ F4  │ F5  │ F6  │ F7  │ F8  │ F9  │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-   *  â\94\82     â\94\82 _AL â\94\82 Up  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82PGUP â\94\82PGDWNâ\94\82PRTSCâ\94\82SCLCKâ\94\82PAUSEâ\94\82     â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+   *  â\94\82     â\94\82 _AL â\94\82 Up  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82PGUP â\94\82PGDWNâ\94\82PRTSCâ\94\82SCLCKâ\94\82PAUSEâ\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-   *  â\94\82     â\94\82Left â\94\82Down â\94\82Rightâ\94\82     â\94\82     â\94\82Left â\94\82Down â\94\82 Up  â\94\82Rightâ\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+   *  â\94\82     â\94\82Left â\94\82Down â\94\82Rightâ\94\82     â\94\82     â\94\82Left â\94\82Down â\94\82 Up  â\94\82Rightâ\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-   *  │     │▒▒▒▒▒│_UL  │     │     │     │     │     │     │Home │ End │     │▒▒▒▒▒│Vol+ │█████│     │
+   *  │     │▒▒▒▒▒│_UL  │     │     │     │     │     │     │Home │ End │     │▒▒▒▒▒│     │Vol+ │     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-   *  │     │     │     │█████│█████│█████│     │█████│█████│█████│     │     │Mute │Vol- │Play │     │
+   *  │     │     │     │█████│█████│█████│     │█████│█████│█████│     │     │     │Mute │Vol- │Play │
    *  └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
    */
 
@@ -69,18 +69,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       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, 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, \
-      KC_TRNS, KC_TRNS, KC_TRNS,               KC_TRNS,                KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_MPLY, 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
    *  ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
    *  │     │     │     │     │     │     │     │     │     │     │     │     │     │▒▒▒▒▒│▒▒▒▒▒│     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-   *  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+   *  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-   *  â\94\82     â\94\82 On  â\94\82Mode â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+   *  â\94\82     â\94\82 On  â\94\82Mode â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-   *  â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82Hue+ â\94\82Hue- â\94\82Sat+ â\94\82Sat- â\94\82Val+ â\94\82Val- â\94\82     â\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+   *  â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82Hue+ â\94\82Hue- â\94\82Sat+ â\94\82Sat- â\94\82Val+ â\94\82Val- â\94\82     â\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
    *  ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
    *  │     │     │     │█████│█████│█████│     │█████│█████│█████│     │     │     │     │     │     │
    *  └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
@@ -124,6 +124,8 @@ const uint16_t PROGMEM fn_actions[] = {
 
 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(); */
index c180ffdf9d60bf70b3f17fdde7d8488b8ea0fde9..213cbe49e5c67f9a87c24ddd84eb74c38bec2161 100644 (file)
@@ -5,9 +5,9 @@ A Mac ANSI layout that assumes standard sized shifts, enter, and backspace keys.
     ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
     │ ESC │  1  │  2  │  3  │  4  │  5  │  6  │  7  │  8  │  9  │  0  │  -  │  =  │▒▒▒▒▒│BKSPC│DEL  │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-    â\94\82 TAB â\94\82  Q  â\94\82  W  â\94\82  E  â\94\82  R  â\94\82  T  â\94\82  Y  â\94\82  U  â\94\82  I  â\94\82  O  â\94\82  P  â\94\82  [  â\94\82  ]  â\94\82  \  â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│END  │
+    â\94\82 TAB â\94\82  Q  â\94\82  W  â\94\82  E  â\94\82  R  â\94\82  T  â\94\82  Y  â\94\82  U  â\94\82  I  â\94\82  O  â\94\82  P  â\94\82  [  â\94\82  ]  â\94\82  \  â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│END  │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-    â\94\82CAPSLâ\94\82  A  â\94\82  S  â\94\82  D  â\94\82  F  â\94\82  G  â\94\82  H  â\94\82  J  â\94\82  K  â\94\82  L  â\94\82  ;  â\94\82  '  â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82ENTERâ\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│PG_UP│
+    â\94\82CAPSLâ\94\82  A  â\94\82  S  â\94\82  D  â\94\82  F  â\94\82  G  â\94\82  H  â\94\82  J  â\94\82  K  â\94\82  L  â\94\82  ;  â\94\82  '  â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82ENTERâ\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│PG_UP│
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
     │LSHFT│▒▒▒▒▒│  Z  │  X  │  C  │  V  │  B  │  N  │  M  │  ,  │  .  │  /  │▒▒▒▒▒│RSHFT│ UP  │PG_DN│
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
@@ -17,11 +17,11 @@ A Mac ANSI layout that assumes standard sized shifts, enter, and backspace keys.
     ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
     │GRAVE│ F1  │ F2  │ F3  │ F4  │ F5  │ F6  │ F7  │ F8  │ F9  │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│     │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-    â\94\82     â\94\82 _AL â\94\82 Up  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82PGUP â\94\82PGDWNâ\94\82PRTSCâ\94\82SCLCKâ\94\82PAUSEâ\94\82     â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+    â\94\82     â\94\82 _AL â\94\82 Up  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82PGUP â\94\82PGDWNâ\94\82PRTSCâ\94\82SCLCKâ\94\82PAUSEâ\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-    â\94\82     â\94\82Left â\94\82Down â\94\82Rightâ\94\82     â\94\82     â\94\82Left â\94\82Down â\94\82 Up  â\94\82Rightâ\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+    â\94\82     â\94\82Left â\94\82Down â\94\82Rightâ\94\82     â\94\82     â\94\82Left â\94\82Down â\94\82 Up  â\94\82Rightâ\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-    │     │▒▒▒▒▒│_UL  │     │     │     │     │     │     │Home │ End │     │▒▒▒▒▒│Vol+ │█████│     │
+    │     │▒▒▒▒▒│_UL  │     │     │     │     │     │     │Home │ End │     │▒▒▒▒▒│▒▒▒▒▒│Vol+ │     │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-    │     │     │     │█████│█████│█████│     │█████│█████│█████│     │     │Mute │Vol- │Play │     │
+    │     │     │     │█████│█████│█████│     │█████│█████│█████│     │     │     │Mute │Vol- │Play │
     └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
diff --git a/keyboards/s65_x/keymaps/iso/keymap.c b/keyboards/s65_x/keymaps/iso/keymap.c
new file mode 100644 (file)
index 0000000..36a2b24
--- /dev/null
@@ -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 (file)
index 0000000..179b0b9
--- /dev/null
@@ -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 │
+    └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+
index e086a2056dc559b00ccfaf9f7a974ffa2b23fcbf..0c558428b4cc4a51721839181283ee4665af0107 100644 (file)
@@ -50,8 +50,6 @@ The █████ blocks on the layouts hides the switch positions that do not
 
 The ▒▒▒▒▒ blocks hides switch positions not used on this particular layout, but they do exist on the PCB.
 
-There is no LED support on the PCB at the moment, but I'll let the code for that untouched.
-
 
 ### 1  [Standard - ANSI (default layout)](keymaps/default/keymap.c)
 
@@ -59,9 +57,9 @@ There is no LED support on the PCB at the moment, but I'll let the code for that
     ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
     │ ESC │  1  │  2  │  3  │  4  │  5  │  6  │  7  │  8  │  9  │  0  │  -  │  =  │▒▒▒▒▒│BKSPC│DEL  │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-    â\94\82 TAB â\94\82  Q  â\94\82  W  â\94\82  E  â\94\82  R  â\94\82  T  â\94\82  Y  â\94\82  U  â\94\82  I  â\94\82  O  â\94\82  P  â\94\82  [  â\94\82  ]  â\94\82  \  â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│END  │
+    â\94\82 TAB â\94\82  Q  â\94\82  W  â\94\82  E  â\94\82  R  â\94\82  T  â\94\82  Y  â\94\82  U  â\94\82  I  â\94\82  O  â\94\82  P  â\94\82  [  â\94\82  ]  â\94\82  \  â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│END  │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-    â\94\82CAPSLâ\94\82  A  â\94\82  S  â\94\82  D  â\94\82  F  â\94\82  G  â\94\82  H  â\94\82  J  â\94\82  K  â\94\82  L  â\94\82  ;  â\94\82  '  â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82ENTERâ\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│PG_UP│
+    â\94\82CAPSLâ\94\82  A  â\94\82  S  â\94\82  D  â\94\82  F  â\94\82  G  â\94\82  H  â\94\82  J  â\94\82  K  â\94\82  L  â\94\82  ;  â\94\82  '  â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82ENTERâ\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│PG_UP│
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
     │LSHFT│▒▒▒▒▒│  Z  │  X  │  C  │  V  │  B  │  N  │  M  │  ,  │  .  │  /  │▒▒▒▒▒│RSHFT│ UP  │PG_DN│
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
@@ -71,11 +69,11 @@ There is no LED support on the PCB at the moment, but I'll let the code for that
     ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
     │GRAVE│ F1  │ F2  │ F3  │ F4  │ F5  │ F6  │ F7  │ F8  │ F9  │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│     │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-    â\94\82     â\94\82 _AL â\94\82 Up  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82PGUP â\94\82PGDWNâ\94\82PRTSCâ\94\82SCLCKâ\94\82PAUSEâ\94\82     â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+    â\94\82     â\94\82 _AL â\94\82 Up  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82PGUP â\94\82PGDWNâ\94\82PRTSCâ\94\82SCLCKâ\94\82PAUSEâ\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-    â\94\82     â\94\82Left â\94\82Down â\94\82Rightâ\94\82     â\94\82     â\94\82Left â\94\82Down â\94\82 Up  â\94\82Rightâ\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+    â\94\82     â\94\82Left â\94\82Down â\94\82Rightâ\94\82     â\94\82     â\94\82Left â\94\82Down â\94\82 Up  â\94\82Rightâ\94\82     â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-    â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82_UL  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82Home â\94\82 End â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82Vol+ â\94\82â\96\88â\96\88â\96\88â\96\88â\96\88│     │
+    â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82_UL  â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82     â\94\82Home â\94\82 End â\94\82     â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92â\94\82Vol+ â\94\82â\96\92â\96\92â\96\92â\96\92â\96\92│     │
     ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
     │     │     │     │█████│█████│█████│     │█████│█████│█████│     │     │Mute │Vol- │Play │     │
     └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
index bbf442eda7782de294e37c2a0aa1dd64118d6b2f..7682d2a6521d2cc0a70bc3f577d3401f3702b715 100644 (file)
   K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,       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,  KC_NO, K115 }, \
-  { KC_NO, KC_NO, K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-  { KC_NO, KC_NO, KC_NO, K300,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  KC_NO, 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 }  \
+  { 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,  K114, K115 }, \
+  { KC_NO, KC_NO, K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214, K215 }, \
+  { KC_NO, KC_NO, KC_NO, K300,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  KC_NO, 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 }  \
 }
 
+
+#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);