From 503335be258b3b05a3188f73ab7ee72a34485078 Mon Sep 17 00:00:00 2001 From: Christian Hartlage Date: Fri, 20 Apr 2018 18:43:51 +0200 Subject: [PATCH] Added GH60 Satan ISO layout with split right shift and split backspace (#2773) * 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 | 80 +++++++++++++++++++++ keyboards/satan/keymaps/dende_iso/readme.md | 61 ++++++++++++++++ keyboards/satan/keymaps/dende_iso/rules.mk | 21 ++++++ keyboards/satan/satan.h | 31 ++++++++ 4 files changed, 193 insertions(+) create mode 100644 keyboards/satan/keymaps/dende_iso/keymap.c create mode 100644 keyboards/satan/keymaps/dende_iso/readme.md create mode 100644 keyboards/satan/keymaps/dende_iso/rules.mk diff --git a/keyboards/satan/keymaps/dende_iso/keymap.c b/keyboards/satan/keymaps/dende_iso/keymap.c new file mode 100644 index 0000000000..9ac1cddbad --- /dev/null +++ b/keyboards/satan/keymaps/dende_iso/keymap.c @@ -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 index 0000000000..238a2f725f --- /dev/null +++ b/keyboards/satan/keymaps/dende_iso/readme.md @@ -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 index 0000000000..2a7ff27793 --- /dev/null +++ b/keyboards/satan/keymaps/dende_iso/rules.mk @@ -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 diff --git a/keyboards/satan/satan.h b/keyboards/satan/satan.h index 8a8874ced3..f7f7b44343 100644 --- a/keyboards/satan/satan.h +++ b/keyboards/satan/satan.h @@ -138,11 +138,42 @@ {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