Added GH60 Satan ISO layout with split right shift and split backspace (#2773)
authorChristian Hartlage <c@dende.de>
Fri, 20 Apr 2018 16:43:51 +0000 (18:43 +0200)
committerDrashna Jaelre <drashna@live.com>
Fri, 20 Apr 2018 16:43:51 +0000 (09:43 -0700)
* added an iso layout that supports split backspace and split rshift

* added a keymap which uses the iso layout with split backspace and split rshift

* added a #define LAYOUT_ for the KEYMAP_

* fixed missing newline

keyboards/satan/keymaps/dende_iso/keymap.c [new file with mode: 0644]
keyboards/satan/keymaps/dende_iso/readme.md [new file with mode: 0644]
keyboards/satan/keymaps/dende_iso/rules.mk [new file with mode: 0644]
keyboards/satan/satan.h

diff --git a/keyboards/satan/keymaps/dende_iso/keymap.c b/keyboards/satan/keymaps/dende_iso/keymap.c
new file mode 100644 (file)
index 0000000..9ac1cdd
--- /dev/null
@@ -0,0 +1,80 @@
+#include "satan.h"
+#include "keymap_extras/keymap_german.h"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _DEF 0
+#define _FNK 1
+#define _MEDIA 2
+
+// dual-role shortcuts
+#define FN_CAPS   LT(_MEDIA, KC_CAPSLOCK)
+
+// increase readability
+#define _______ KC_TRNS
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Keymap _DEF: Default Layer
+  * ,------------------------------------------------------------.
+  * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  ß| ´|bcksp|fn1|
+  * |------------------------------------------------------------|
+  * |Tab  |  Q|  W|  E|  R|  T|  Z|  U|  I|  O|  P|  Ü|  +|      |
+  * |----------------------------------------------------- Return|
+  * |fn2   | A|  S|  D|  F|  G|  H|  J|  K|  L|  Ö|  Ä|  # |     |
+  * |------------------------------------------------------------|
+  * |Sft | < |  Y|  X|  C|  V|  B|  N|  M|  ,|  .|  -| RSft| del |
+  * |------------------------------------------------------------|
+  * |Ctrl|Win |Alt |         Space          |RAlt |Win |App|RCtrl|
+  * `------------------------------------------------------------'
+  */
+[_DEF] = LAYOUT_60_iso_split_bs_rshift(
+  KC_ESC,       KC_1,    KC_2,    KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9,    KC_0,    DE_SS,   DE_ACUT, KC_BSPC, MO(_FNK), \
+  KC_TAB,       KC_Q,    KC_W,    KC_E, KC_R, KC_T, DE_Z, KC_U, KC_I, KC_O,    KC_P,    DE_UE,   DE_PLUS, \
+  FN_CAPS,      KC_A,    KC_S,    KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,    DE_OE,   DE_AE,   DE_HASH, KC_ENT, \
+  KC_LSFT,      DE_LESS, DE_Y,    KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,  DE_MINS, KC_RSFT, KC_DELETE,  \
+  KC_LCTL,      KC_LGUI, KC_LALT,              KC_SPACE,                       DE_ALGR, KC_RGUI, KC_APP,  KC_RCTL),
+
+
+  /* Keymap _FNK: Function Keys
+  * ,------------------------------------------------------------.
+  * | ^ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12| Ins |  |
+  * |------------------------------------------------------------|
+  * |     |PGU| Up|PGD|   |   |   |Ins|Hom|PDU|   |   |   |      |
+  * |-----------------------------------------------------       |
+  * |     |Lft|Dwn|Rgt|   |   |   |Del|End|PGD|   |   |    |     |
+  * |------------------------------------------------------------|
+  * |    |   |   |   |   |   |   |   |   |   |   |   |     |     |
+  * |------------------------------------------------------------|
+  * |    |    |    |                        |     |    |   |     |
+  * `------------------------------------------------------------'
+  */
+[_FNK] = LAYOUT_60_iso_split_bs_rshift(
+  DE_CIRC,   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_INS, _______, \
+  _______, KC_PGUP, KC_UP,  KC_PGDOWN, _______, _______, _______, _______,  KC_INS, KC_HOME, KC_PGUP, _______, _______, \
+  _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDOWN, _______, _______, _______, \
+  _______, _______, _______, _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+  _______, _______, _______,                             _______,                             _______, _______, _______, _______),
+
+  /* Keymap _MEDIA: Media and Mouse Layer
+  * ,------------------------------------------------------------.
+  * |   |   |   |   |   |   |   |   |   |   |   |   |   |     |  |
+  * |------------------------------------------------------------|
+  * |     |   |   |   |   |   |   |MLC| MU|MRC|   |   |   |      |
+  * |-----------------------------------------------------       |
+  * |     |PRV|VLD|VLU|NXT|   |   | ML| MD| MR|   |   |    |     |
+  * |------------------------------------------------------------|
+  * |    |   |   |   |   |   |   |   |   |   |   |   | UP  |     |
+  * |------------------------------------------------------------|
+  * |    |    |    |        PLAY            |     |LEFT|DWN|RIGHT|
+  * `------------------------------------------------------------'
+  */
+
+[_MEDIA] = LAYOUT_60_iso_split_bs_rshift(
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+  _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, \
+  _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______,  \
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP  , _______, \
+  _______, _______, _______,                            KC_MPLY,                            _______, KC_LEFT, KC_DOWN, KC_RIGHT),
+  };
diff --git a/keyboards/satan/keymaps/dende_iso/readme.md b/keyboards/satan/keymaps/dende_iso/readme.md
new file mode 100644 (file)
index 0000000..238a2f7
--- /dev/null
@@ -0,0 +1,61 @@
+# Satan GH60 ISO-DE Layout with split backspace and right shift
+
+![Layout Image](https://i.imgur.com/a7znS69.jpg)
+
+## Default Layer
+This ISO-DE based layout has a split backspace. the left part is the actual backspace and the right parts serves as a FN key.
+The right shift is also split, with the right part serving as the del key.
+```
+/* Keymap _DEF: Default Layer
+ * ,------------------------------------------------------------.
+ * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  ß| ´|bcksp|fn1|
+ * |------------------------------------------------------------|
+ * |Tab  |  Q|  W|  E|  R|  T|  Z|  U|  I|  O|  P|  Ü|  +|      |
+ * |----------------------------------------------------- Return|
+ * |fn2   | A|  S|  D|  F|  G|  H|  J|  K|  L|  Ö|  Ä|  # |     |
+ * |------------------------------------------------------------|
+ * |Sft | < |  Y|  X|  C|  V|  B|  N|  M|  ,|  .|  -| RSft| del |
+ * |------------------------------------------------------------|
+ * |Ctrl|Win |Alt |         Space          |RAlt |Win |App|RCtrl|
+ * `------------------------------------------------------------'
+ */
+```
+
+
+## FN Key Layer 
+The Function keys can be accessed when holding fn1 (right part of backspace)
+
+```
+/* Keymap _FNK: Function Keys
+ * ,------------------------------------------------------------.
+ * | ^ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12| Ins |  |
+ * |------------------------------------------------------------|
+ * |     |PGU| Up|PGD|   |   |   |Ins|Hom|PDU|   |   |   |      |
+ * |-----------------------------------------------------       |
+ * |     |Lft|Dwn|Rgt|   |   |   |Del|End|PGD|   |   |    |     |
+ * |------------------------------------------------------------|
+ * |    |   |   |   |   |   |   |   |   |   |   |   |     |     |
+ * |------------------------------------------------------------|
+ * |    |    |    |                        |     |    |   |     |
+ * `------------------------------------------------------------'
+ */
+```
+
+## Media and Mouse Layer
+The Media Keys and Mouse control can be accessed when holding capslock (fn2)
+
+```
+/* Keymap _MEDIA: Media and Mouse Layer
+ * ,------------------------------------------------------------.
+ * |   |   |   |   |   |   |   |   |   |   |   |   |   |     |  |
+ * |------------------------------------------------------------|
+ * |     |   |   |   |   |   |   |MLC| MU|MRC|   |   |   |      |
+ * |-----------------------------------------------------       |
+ * |     |PRV|VLD|VLU|NXT|   |   | ML| MD| MR|   |   |    |     |
+ * |------------------------------------------------------------|
+ * |    |   |   |   |   |   |   |   |   |   |   |   | UP  |     |
+ * |------------------------------------------------------------|
+ * |    |    |    |        PLAY            |     |LEFT|DWN|RIGHT|
+ * `------------------------------------------------------------'
+ */
+```
\ No newline at end of file
diff --git a/keyboards/satan/keymaps/dende_iso/rules.mk b/keyboards/satan/keymaps/dende_iso/rules.mk
new file mode 100644 (file)
index 0000000..2a7ff27
--- /dev/null
@@ -0,0 +1,21 @@
+# Build Options
+#   change to "no" to disable the options, or define them in the Makefile in 
+#   the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
+CONSOLE_ENABLE = no         # Console for debug(+400)
+COMMAND_ENABLE = yes        # Commands for debug and configuration
+NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes       # Enable keyboard backlight functionality
+MIDI_ENABLE = no            # MIDI controls
+AUDIO_ENABLE = no           # Audio output on port C6
+UNICODE_ENABLE = no         # Unicode
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+       include ../../../../Makefile
+endif
index 8a8874c..f7f7b44 100644 (file)
        {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d}  \
 }
 
+/* ISO w/ split right shift key matrix layout
+   * ,-----------------------------------------------------------.
+   * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d|49 |
+   * |-----------------------------------------------------------|
+   * | 10  | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c|     |
+   * |--------------------------------------------------------   |
+   * | 20    | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c| 2d|
+   * |-----------------------------------------------------------|
+   * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b|  3d  | 3c|
+   * |-----------------------------------------------------------|
+   * | 40 | 41 | 42 |        45             | 4a | 4b | 4c | 4d  |
+   * `-----------------------------------------------------------'
+
+   swap 3c and 3d. 3c is right of 3d in reality
+ */
+#define KEYMAP_ISO_SPLITRSHIFT_SPLITBACKSPACE( \
+  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
+       k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
+       k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
+       k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
+       k40, k41, k42,           k45,                     k4a, k4b, k4c, k4d  \
+) \
+{ \
+       {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+       {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c}, \
+       {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
+       {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
+       {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d}  \
+}
+
 void matrix_init_user(void);
 void matrix_scan_user(void);
 
 #define LAYOUT_60_ansi KEYMAP_ANSI
 #define LAYOUT_60_iso KEYMAP_ISO
 #define LAYOUT_60_ansi_split_bs_rshift KEYMAP_HHKB
+#define LAYOUT_60_iso_split_bs_rshift KEYMAP_ISO_SPLITRSHIFT_SPLITBACKSPACE
 
 #endif