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
daktil_thumb_popravljen
Christian Hartlage 2018-04-20 18:43:51 +02:00 committed by Drashna Jaelre
parent 0912c42f04
commit 503335be25
4 changed files with 193 additions and 0 deletions

View File

@ -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),
};

View File

@ -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|
* `------------------------------------------------------------'
*/
```

View File

@ -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

View File

@ -138,11 +138,42 @@
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \ {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_init_user(void);
void matrix_scan_user(void); void matrix_scan_user(void);
#define LAYOUT_60_ansi KEYMAP_ANSI #define LAYOUT_60_ansi KEYMAP_ANSI
#define LAYOUT_60_iso KEYMAP_ISO #define LAYOUT_60_iso KEYMAP_ISO
#define LAYOUT_60_ansi_split_bs_rshift KEYMAP_HHKB #define LAYOUT_60_ansi_split_bs_rshift KEYMAP_HHKB
#define LAYOUT_60_iso_split_bs_rshift KEYMAP_ISO_SPLITRSHIFT_SPLITBACKSPACE
#endif #endif