aboutsummaryrefslogtreecommitdiff
path: root/keyboards/gh60/satan/keymaps
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/gh60/satan/keymaps')
-rw-r--r--keyboards/gh60/satan/keymaps/abhixec/keymap.c76
-rw-r--r--keyboards/gh60/satan/keymaps/abhixec/readme.md19
-rw-r--r--keyboards/gh60/satan/keymaps/abhixec/rules.mk18
-rw-r--r--keyboards/gh60/satan/keymaps/addcninblue/keymap.c196
-rw-r--r--keyboards/gh60/satan/keymaps/addcninblue/readme.md13
-rw-r--r--keyboards/gh60/satan/keymaps/addcninblue/rules.mk21
-rw-r--r--keyboards/gh60/satan/keymaps/admiralStrokers/config.h89
-rw-r--r--keyboards/gh60/satan/keymaps/admiralStrokers/keymap.c189
-rw-r--r--keyboards/gh60/satan/keymaps/admiralStrokers/readme.md13
-rw-r--r--keyboards/gh60/satan/keymaps/admiralStrokers/rules.mk22
-rw-r--r--keyboards/gh60/satan/keymaps/ben_iso/config.h58
-rw-r--r--keyboards/gh60/satan/keymaps/ben_iso/keymap.c127
-rw-r--r--keyboards/gh60/satan/keymaps/ben_iso/readme.md12
-rw-r--r--keyboards/gh60/satan/keymaps/ben_iso/rules.mk18
-rw-r--r--keyboards/gh60/satan/keymaps/bri/keymap.c67
-rw-r--r--keyboards/gh60/satan/keymaps/bri/readme.md2
-rw-r--r--keyboards/gh60/satan/keymaps/chaser/keymap.c88
-rw-r--r--keyboards/gh60/satan/keymaps/chaser/readme.md38
-rw-r--r--keyboards/gh60/satan/keymaps/chaser/rules.mk18
-rw-r--r--keyboards/gh60/satan/keymaps/colemak/keymap.c95
-rw-r--r--keyboards/gh60/satan/keymaps/colemak/readme.md1
-rw-r--r--keyboards/gh60/satan/keymaps/colemak/rules.mk18
-rw-r--r--keyboards/gh60/satan/keymaps/dbroqua/keymap.c151
-rw-r--r--keyboards/gh60/satan/keymaps/dbroqua/readme.md9
-rw-r--r--keyboards/gh60/satan/keymaps/default/keymap.c54
-rw-r--r--keyboards/gh60/satan/keymaps/default/readme.md1
-rw-r--r--keyboards/gh60/satan/keymaps/default/rules.mk18
-rw-r--r--keyboards/gh60/satan/keymaps/dende_iso/keymap.c78
-rw-r--r--keyboards/gh60/satan/keymaps/dende_iso/readme.md61
-rw-r--r--keyboards/gh60/satan/keymaps/dende_iso/rules.mk18
-rw-r--r--keyboards/gh60/satan/keymaps/denolfe/README.md12
-rw-r--r--keyboards/gh60/satan/keymaps/denolfe/keymap.c172
-rw-r--r--keyboards/gh60/satan/keymaps/denolfe/rules.mk17
-rw-r--r--keyboards/gh60/satan/keymaps/dkrieger/config.h26
-rw-r--r--keyboards/gh60/satan/keymaps/dkrieger/keymap.c166
-rw-r--r--keyboards/gh60/satan/keymaps/dkrieger/readme.md23
-rw-r--r--keyboards/gh60/satan/keymaps/dkrieger/rules.mk19
-rw-r--r--keyboards/gh60/satan/keymaps/fakb/config.h88
-rw-r--r--keyboards/gh60/satan/keymaps/fakb/keymap.c33
-rw-r--r--keyboards/gh60/satan/keymaps/fakb/readme.md58
-rw-r--r--keyboards/gh60/satan/keymaps/fakb/rules.mk13
-rw-r--r--keyboards/gh60/satan/keymaps/hhkb_7u/keymap.c56
-rw-r--r--keyboards/gh60/satan/keymaps/hhkb_7u/readme.md9
-rw-r--r--keyboards/gh60/satan/keymaps/isoHHKB/keymap.c122
-rw-r--r--keyboards/gh60/satan/keymaps/isoHHKB/readme.md60
-rw-r--r--keyboards/gh60/satan/keymaps/isoHHKB/rules.mk18
-rw-r--r--keyboards/gh60/satan/keymaps/iso_split_rshift/.gitignore3
-rwxr-xr-xkeyboards/gh60/satan/keymaps/iso_split_rshift/build.sh42
-rw-r--r--keyboards/gh60/satan/keymaps/iso_split_rshift/config.h27
-rw-r--r--keyboards/gh60/satan/keymaps/iso_split_rshift/keymap.c115
-rw-r--r--keyboards/gh60/satan/keymaps/iso_split_rshift/readme.md36
-rw-r--r--keyboards/gh60/satan/keymaps/iso_split_rshift/rules.mk13
-rw-r--r--keyboards/gh60/satan/keymaps/jarred/keymap.c22
-rw-r--r--keyboards/gh60/satan/keymaps/jarred/readme.md1
-rw-r--r--keyboards/gh60/satan/keymaps/lepa/keymap.c146
-rw-r--r--keyboards/gh60/satan/keymaps/lepa/readme.md13
-rw-r--r--keyboards/gh60/satan/keymaps/lepa/rules.mk19
-rw-r--r--keyboards/gh60/satan/keymaps/mark1/keymap.c31
-rw-r--r--keyboards/gh60/satan/keymaps/mark1/readme.md5
-rw-r--r--keyboards/gh60/satan/keymaps/midi/config.h29
-rw-r--r--keyboards/gh60/satan/keymaps/midi/keymap.c77
-rw-r--r--keyboards/gh60/satan/keymaps/midi/readme.md1
-rw-r--r--keyboards/gh60/satan/keymaps/midi/rules.mk18
-rw-r--r--keyboards/gh60/satan/keymaps/no_caps_lock/keymap.c55
-rw-r--r--keyboards/gh60/satan/keymaps/no_caps_lock/readme.md1
-rw-r--r--keyboards/gh60/satan/keymaps/olligranlund_iso/config.h17
-rw-r--r--keyboards/gh60/satan/keymaps/olligranlund_iso/keymap.c98
-rw-r--r--keyboards/gh60/satan/keymaps/olligranlund_iso/readme.md18
-rw-r--r--keyboards/gh60/satan/keymaps/olligranlund_iso/rules.mk17
-rw-r--r--keyboards/gh60/satan/keymaps/poker/keymap.c118
-rw-r--r--keyboards/gh60/satan/keymaps/rask63/keymap.c83
-rw-r--r--keyboards/gh60/satan/keymaps/sethbc/keymap.c85
-rw-r--r--keyboards/gh60/satan/keymaps/sethbc/readme.md3
-rw-r--r--keyboards/gh60/satan/keymaps/sethbc/rules.mk18
-rw-r--r--keyboards/gh60/satan/keymaps/smt/keymap.c142
-rw-r--r--keyboards/gh60/satan/keymaps/smt/readme.md1
-rw-r--r--keyboards/gh60/satan/keymaps/smt/rules.mk18
-rw-r--r--keyboards/gh60/satan/keymaps/spacemanspiff/keymap.c75
-rw-r--r--keyboards/gh60/satan/keymaps/spacemanspiff/readme.md34
-rw-r--r--keyboards/gh60/satan/keymaps/stanleylai/config.h15
-rw-r--r--keyboards/gh60/satan/keymaps/stanleylai/keymap.c88
-rw-r--r--keyboards/gh60/satan/keymaps/unxmaal/README.md20
-rw-r--r--keyboards/gh60/satan/keymaps/unxmaal/keymap.c123
-rw-r--r--keyboards/gh60/satan/keymaps/unxmaal/rules.mk18
84 files changed, 4125 insertions, 0 deletions
diff --git a/keyboards/gh60/satan/keymaps/abhixec/keymap.c b/keyboards/gh60/satan/keymaps/abhixec/keymap.c
new file mode 100644
index 000000000..59a8c4312
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/abhixec/keymap.c
@@ -0,0 +1,76 @@
1#include QMK_KEYBOARD_H
2
3
4// Each layer gets a name for readability, which is then used in the keymap matix below.
5// The underscores don't mean anything - you can have a layer called STUFF or any other name.
6// Layer names don't all need to be of the same length, obviously, and you can also skip them
7// entirely and just use numbers.
8#define _BL 0
9#define _FL 2
10#define _CL 1
11#define _EL 3
12
13
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15 /* Keymap _BL: (Base Layer) Default Layer
16 * ,-----------------------------------------------------------.
17 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
18 * |-----------------------------------------------------------|
19 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
20 * |-----------------------------------------------------------|
21 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
22 * |-----------------------------------------------------------|
23 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift| Del|
24 * |-----------------------------------------------------------|
25 * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
26 * `-----------------------------------------------------------'
27 */
28[_BL] = LAYOUT_60_ansi_split_rshift(
29 KC_GESC, 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, \
30 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_BSLS, \
31 LT(_EL, KC_BSPC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
32 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, \
33 KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RALT,KC_RGUI, MO(_FL),KC_RCTL),
34
35/* Keymap _CL: (Colemak Layer)
36 */
37[_CL] = LAYOUT_60_ansi_split_rshift(
38 KC_GESC, 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, \
39 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC,KC_BSLS, \
40 LT(_EL, KC_BSPC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,KC_QUOT, KC_ENT, \
41 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, \
42 KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RALT,KC_RGUI, MO(_FL),KC_RCTL),
43
44[_EL] = LAYOUT_60_ansi_split_rshift(
45
46 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, \
47 _______,KC_LCTL,KC_WH_U,_______,_______,KC_MS_U,KC_PGUP,KC_HOME,KC_UP,KC_END,KC_DEL, KC_GESC, _______,_______, \
48 _______,KC_LALT,KC_WH_D, KC_LSFT,_______,KC_MS_D,KC_PGDOWN,KC_LEFT,KC_DOWN,KC_RIGHT, KC_BSPC,_______,_______, \
49_______,KC_UNDO,KC_CUT,KC_COPY,KC_PASTE, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2,KC_MS_LEFT,KC_MS_RIGHT,_______,_______, _______, \
50 _______,_______,_______, _______, _______,_______,_______,_______),
51
52
53 /* Keymap _FL: Function Layer
54 * ,-----------------------------------------------------------.
55 * | KC_GRV|F1|F2|F3|F4|F5|F6|F7| F8 | F9 |10|F11|F12| |
56 * |-----------------------------------------------------------|
57 * | | | | | | | | | | | |BL-|BL+|BL |
58 * |-----------------------------------------------------------|
59 * | | | | | | | | | |HOME| | |
60 * |-----------------------------------------------------------|
61 * | | | | | | |V_DWN|V_UP|MUTE | END || |_CL |
62 * |-----------------------------------------------------------|
63 * | | | | | | | | |
64 * `-----------------------------------------------------------'
65 */
66
67[_FL] = LAYOUT_60_ansi_split_rshift(
68
69 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, \
70 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_PSCREEN, BL_DEC, BL_INC,BL_TOGG, \
71 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_HOME,_______,_______, \
72 _______,_______,_______,_______,_______,_______,KC_AUDIO_VOL_DOWN,KC_AUDIO_VOL_UP,KC_AUDIO_MUTE,KC_END,_______,_______, TG(_CL), \
73 _______,_______,_______, _______, _______,_______,_______,_______)
74
75};
76
diff --git a/keyboards/gh60/satan/keymaps/abhixec/readme.md b/keyboards/gh60/satan/keymaps/abhixec/readme.md
new file mode 100644
index 000000000..59a95b7fc
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/abhixec/readme.md
@@ -0,0 +1,19 @@
1# default Satan GH60 layout
2
3The layout for this keyboard is:
4![Layout-2](https://i.imgur.com/Eqp8hov.jpg)
5
6Currently there are 3 layers:
7
81. Base Layer is qwerty
92. 1st layer is colemak
103. 2nd layer is function layer
114. 3rd layer is extend layer
12
13How to use the layers:
141. Base is default. If you want Colemak then press function key and del next to the right shift (this combination will be used to toggle the layer on and off)
152. Function layer is accessible by holding down the function key.
163. Extend layer is accsessible by holding down the capslock.
17 Which when tapped acts like backspace when held triggers the Extend layer capability.
18
19
diff --git a/keyboards/gh60/satan/keymaps/abhixec/rules.mk b/keyboards/gh60/satan/keymaps/abhixec/rules.mk
new file mode 100644
index 000000000..fdbd25ea8
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/abhixec/rules.mk
@@ -0,0 +1,18 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/gh60/satan/keymaps/addcninblue/keymap.c b/keyboards/gh60/satan/keymaps/addcninblue/keymap.c
new file mode 100644
index 000000000..5012fee56
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/addcninblue/keymap.c
@@ -0,0 +1,196 @@
1#include QMK_KEYBOARD_H
2#include "rgblight.h"
3
4#define _DEFAULT 0
5#define _FN 1
6#define _VIM 10
7#define _VIM_SHIFT 11
8#define _VIM_CONTROL 12
9
10enum custom_keycodes {
11 DYNAMIC_MACRO_RANGE = SAFE_RANGE,
12 a_MACRO,
13 A_MACRO,
14 I_MACRO,
15 O_MACRO,
16};
17
18#define KC_PREV_WORD LCTL(KC_LEFT)
19#define KC_NEXT_WORD LCTL(KC_RIGHT)
20#define KC_UNDO LCTL(KC_Z)
21#define KC_CUT LCTL(KC_X)
22#define KC_COPY LCTL(KC_C)
23#define KC_PASTE LCTL(KC_V)
24
25#include "dynamic_macro.h"
26
27static uint8_t old_layer = 0;
28
29// Fillers to make layering more clear
30#define ______ KC_TRNS
31#define XXXXXX KC_NO
32
33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34/* Qwerty gui/alt/space/alt/gui
35 * ,-----------------------------------------------------------------------------------------.
36 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
37 * |-----------------------------------------------------------------------------------------+
38 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
39 * |-----------------------------------------------------------------------------------------+
40 * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
41 * |-----------------------------------------------------------------------------------------+
42 * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | VIM |
43 * |-----------------------------------------------------------------------------------------+
44 * | FN | LAlt | Space | RAlt |RGUI |
45 * `-----------------------------------------------------------------'
46 */
47 [_DEFAULT] = LAYOUT_60_ansi_split_bs_rshift( /* Basic QWERTY */
48 KC_GESC , 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_BSLS , KC_GRV , \
49 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_BSPC , \
50 KC_LCTL , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , KC_ENT , \
51 KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT , TO(_VIM) , \
52 ______ , MO(_FN) , KC_LALT , KC_SPC , KC_RALT , KC_RGUI , ______ , ______ \
53 ),
54
55/* FN Layer
56 * ,-----------------------------------------------------------------------------------------.
57 * |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
58 * |-----------------------------------------------------------------------------------------+
59 * | CAPS | Vol-| Mute| Vol+|MAC+ |MAC |MAC- | PgUp| Home| |Print| Up | | Del |
60 * |-----------------------------------------------------------------------------------------+
61 * | Ctrl | End | | PgDn| | | Left| Down| Up |Right| Left|Right| Enter |
62 * |-----------------------------------------------------------------------------------------+
63 * | Shift | Prev| Play| Next| BL- | BL | BL+ | | | | Down| RShift | DEF |
64 * |-----------------------------------------------------------------------------------------+
65 * | | LAlt | Space | RAlt | Reset |
66 * `-----------------------------------------------------------------'
67 */
68 [_FN] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 2 */
69 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_INS , KC_DEL , \
70 KC_CAPS , KC_VOLD , KC_MUTE , KC_VOLU , DYN_REC_START1 , DYN_MACRO_PLAY1 , DYN_REC_STOP , KC_PGUP , KC_HOME , ______ , KC_PSCR , KC_UP , ______ , KC_DEL , \
71 KC_LCTL , KC_END , ______ , KC_PGDN , ______ , ______ , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , KC_LEFT , KC_RGHT , KC_ENT , \
72 KC_LSFT , KC_MPRV , KC_MPLY , KC_MNXT , BL_DEC , BL_TOGG , BL_INC , ______ , ______ , ______ , KC_DOWN , KC_RSFT , TO(_DEFAULT) , \
73 ______ , ______ , KC_LALT , KC_SPC , KC_RALT , RESET , ______ , ______ \
74 ),
75
76/* VIM Layer
77 * ,-----------------------------------------------------------------------------------------.
78 * | DEF | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
79 * |-----------------------------------------------------------------------------------------+
80 * | | | WORD| WORD| | | COPY| UNDO| DEF |ENTER|PASTE| | | Del |
81 * |-----------------------------------------------------------------------------------------+
82 * | V_Ctrl |a_ins| | | | | Left| Down| Up |Right| | | Enter |
83 * |-----------------------------------------------------------------------------------------+
84 * | V_Shift | | | | | PREV| | | | | | RShift | Def |
85 * |-----------------------------------------------------------------------------------------+
86 * | | LAlt | Space | RAlt | |
87 * `-----------------------------------------------------------------'
88 */
89 [_VIM] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 10 */
90 TO(_DEFAULT) , 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_BSLS , KC_GRV , \
91 XXXXXX , XXXXXX , KC_NEXT_WORD , KC_NEXT_WORD , XXXXXX , XXXXXX , KC_COPY , KC_UNDO , TO(_DEFAULT) , KC_ENTER , KC_PASTE , XXXXXX , XXXXXX , KC_DEL , \
92 MO(_VIM_CONTROL) , a_MACRO , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , XXXXXX , XXXXXX , KC_ENTER , \
93 MO(_VIM_SHIFT) , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_PREV_WORD , XXXXXX , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_RSFT , TO(_DEFAULT) , \
94 XXXXXX , XXXXXX , KC_LALT , KC_SPC , KC_RALT , XXXXXX , XXXXXX , XXXXXX \
95 ),
96
97/* VIM Layer
98 * ,-----------------------------------------------------------------------------------------.
99 * | DEF | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
100 * |-----------------------------------------------------------------------------------------+
101 * | | | WORD| WORD| | | | |I_ins|ENTER| | | | Del |
102 * |-----------------------------------------------------------------------------------------+
103 * | |A_ins| | | | | Left| Down| Up |Right| | | Enter |
104 * |-----------------------------------------------------------------------------------------+
105 * | | | | | | PREV| | | | | | RShift | Def |
106 * |-----------------------------------------------------------------------------------------+
107 * | | LAlt | Space | RAlt | |
108 * `-----------------------------------------------------------------'
109 */
110 [_VIM_SHIFT] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 11 */
111 TO(_DEFAULT) , 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_BSLS , KC_GRV , \
112 XXXXXX , XXXXXX , KC_NEXT_WORD , KC_NEXT_WORD , XXXXXX , XXXXXX , XXXXXX , XXXXXX , I_MACRO , O_MACRO , XXXXXX , XXXXXX , XXXXXX , KC_DEL , \
113 XXXXXX , A_MACRO , XXXXXX , KC_PGDN , XXXXXX , XXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , XXXXXX , XXXXXX , KC_ENTER , \
114 XXXXXX , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_PREV_WORD , XXXXXX , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_RSFT , TO(_DEFAULT) , \
115 XXXXXX , XXXXXX , KC_LALT , KC_SPC , KC_RALT , RESET , XXXXXX , XXXXXX \
116 ),
117
118/* FN Layer
119 * ,-----------------------------------------------------------------------------------------.
120 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
121 * |-----------------------------------------------------------------------------------------+
122 * | | Vol-| Mute| Vol+| | | | PgUp| Ins | |Print| Up | | Del |
123 * |-----------------------------------------------------------------------------------------+
124 * | Ctrl | App | | PgDn| | | Left| Down| Up |Right| Left|Right| Enter |
125 * |-----------------------------------------------------------------------------------------+
126 * | Shift | Prev| Play| Next| BL- | BL | BL+ | | | | Down| RShift | Def |
127 * |-----------------------------------------------------------------------------------------+
128 * | | LAlt | Space | RAlt | Reset |
129 * `-----------------------------------------------------------------'
130 */
131 [_VIM_CONTROL] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 12 */
132 TO(_DEFAULT) , 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_BSLS , KC_GRV , \
133 XXXXXX , XXXXXX , KC_NEXT_WORD , KC_NEXT_WORD , XXXXXX , XXXXXX , XXXXXX , XXXXXX , I_MACRO , O_MACRO , XXXXXX , XXXXXX , XXXXXX , KC_DEL , \
134 XXXXXX , A_MACRO , XXXXXX , KC_PGDN , XXXXXX , XXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , XXXXXX , XXXXXX , KC_ENTER , \
135 XXXXXX , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_PREV_WORD , XXXXXX , XXXXXX , XXXXXX , XXXXXX , XXXXXX , KC_RSFT , TO(_DEFAULT) , \
136 XXXXXX , XXXXXX , KC_LALT , KC_SPC , KC_RALT , RESET , XXXXXX , XXXXXX \
137 ) ,
138};
139
140void persistent_default_layer_set(uint16_t default_layer) {
141 eeconfig_update_default_layer(default_layer);
142 default_layer_set(default_layer);
143}
144
145bool process_record_user(uint16_t keycode, keyrecord_t *record) {
146 if (!process_record_dynamic_macro(keycode, record)) {
147 return false;
148 }
149 if (record->event.pressed) {
150 switch(keycode) {
151 case a_MACRO:
152 SEND_STRING(SS_TAP(X_RIGHT));
153 layer_off(_VIM);
154 return false;
155 break;
156 case A_MACRO:
157 SEND_STRING(SS_TAP(X_END));
158 layer_off(_VIM_SHIFT);
159 layer_off(_VIM);
160 return false;
161 break;
162 case I_MACRO:
163 SEND_STRING(SS_TAP(X_HOME));
164 layer_off(_VIM_SHIFT);
165 layer_off(_VIM);
166 return false;
167 break;
168 case O_MACRO:
169 SEND_STRING(SS_TAP(X_ENTER));
170 layer_off(_VIM_SHIFT);
171 layer_off(_VIM);
172 return false;
173 break;
174 }
175 }
176 return true;
177}
178
179void matrix_scan_user(void) {
180 uint8_t layer = biton32(layer_state);
181
182 if (old_layer != layer) {
183 switch (layer) {
184 case _DEFAULT:
185 case _FN:
186 backlight_set(1);
187 break;
188 case _VIM:
189 case _VIM_SHIFT:
190 case _VIM_CONTROL:
191 backlight_set(4);
192 break;
193 }
194 old_layer = layer;
195 }
196};
diff --git a/keyboards/gh60/satan/keymaps/addcninblue/readme.md b/keyboards/gh60/satan/keymaps/addcninblue/readme.md
new file mode 100644
index 000000000..7e6520534
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/addcninblue/readme.md
@@ -0,0 +1,13 @@
1# Addcninblue's HHKB-ish Layout
2
3Inspired by Dbroqua's layout
4
5[Layer 1](http://www.keyboard-layout-editor.com/#/gists/0e7798cb81c8f76baa5066ec1c34df8e): pretty standard layout. Shift + esc = ~, unlike normal hhkb.
6[Layer 2](http://www.keyboard-layout-editor.com/#/gists/096099221ac48d4d0c84a2b859bbb7c0): Vim-like layout.
7[Layer Vim](http://www.keyboard-layout-editor.com/#/gists/73b27b51c5e18d7999cc5fa39b4f3389) : vim layout until exit layout
8
9## Programming Instructions:
10Enter into programming mode and run the following command:
11```
12$ sudo make satan:addcninblue:dfu
13```
diff --git a/keyboards/gh60/satan/keymaps/addcninblue/rules.mk b/keyboards/gh60/satan/keymaps/addcninblue/rules.mk
new file mode 100644
index 000000000..fd7f34300
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/addcninblue/rules.mk
@@ -0,0 +1,21 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = no # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = no # Commands for debug and configuration
10SLEEP_LED_ENABLE = no # Enables your LED to breathe while your computer is sleeping.
11NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ # nkro-doesnt-work
12BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
13MIDI_ENABLE = no # MIDI controls
14AUDIO_ENABLE = no # Audio output on port C6
15UNICODEMAP_ENABLE = no # This allows sending unicode symbols using X(<unicode>) in your keymap.
16UNICODE_ENABLE = no # Unicode
17UCIS_ENABLE = no # Keep in mind that not all will work (See WinCompose for details on Windows).
18BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
19RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
20SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
21API_SYSEX_ENABLE = no # This enables using the Quantum SYSEX API to send strings
diff --git a/keyboards/gh60/satan/keymaps/admiralStrokers/config.h b/keyboards/gh60/satan/keymaps/admiralStrokers/config.h
new file mode 100644
index 000000000..c8d40730f
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/admiralStrokers/config.h
@@ -0,0 +1,89 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_H_ADMSTROK
19#define CONFIG_H_ADMSTROK
20
21#include "config_common.h"
22#include "../../config.h"
23
24/* USB Device descriptor parameter */
25#define VENDOR_ID 0xFEED
26#define PRODUCT_ID 0x6060
27#define DEVICE_VER 0x0003
28#define MANUFACTURER SATAN
29#define PRODUCT GH60
30#define DESCRIPTION QMK keyboard firmware for Satan GH60 with WS2812 support
31
32/* key matrix size */
33#define MATRIX_ROWS 5
34#define MATRIX_COLS 14
35
36// ROWS: Top to bottom, COLS: Left to right
37
38#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
39#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3 }
40#define UNUSED_PINS
41
42#define BACKLIGHT_PIN B6
43
44/* COL2ROW or ROW2COL */
45#define DIODE_DIRECTION COL2ROW
46
47/* define if matrix has ghost */
48//#define MATRIX_HAS_GHOST
49
50/* Set 0 if debouncing isn't needed */
51#define DEBOUNCE 5
52
53/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
54#define LOCKING_SUPPORT_ENABLE
55/* Locking resynchronize hack */
56#define LOCKING_RESYNC_ENABLE
57
58/* Backlight configuration */
59#define BACKLIGHT_LEVELS 4
60
61/* Underlight configuration */
62#define RGB_DI_PIN E2
63#define RGBLIGHT_ANIMATIONS
64#define RGBLED_NUM 8 // Number of LEDs
65#define RGBLIGHT_HUE_STEP 10
66#define RGBLIGHT_SAT_STEP 17
67#define RGBLIGHT_VAL_STEP 17
68
69#define DISABLE_SPACE_CADET_ROLLOVER
70
71/*
72 * Feature disable options
73 * These options are also useful to firmware size reduction.
74 */
75
76/* disable debug print */
77//#define NO_DEBUG
78
79/* disable print */
80//#define NO_PRINT
81
82/* disable action features */
83//#define NO_ACTION_LAYER
84//#define NO_ACTION_TAPPING
85//#define NO_ACTION_ONESHOT
86//#define NO_ACTION_MACRO
87//#define NO_ACTION_FUNCTION
88
89#endif
diff --git a/keyboards/gh60/satan/keymaps/admiralStrokers/keymap.c b/keyboards/gh60/satan/keymaps/admiralStrokers/keymap.c
new file mode 100644
index 000000000..a3626dff8
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/admiralStrokers/keymap.c
@@ -0,0 +1,189 @@
1#include QMK_KEYBOARD_H
2
3
4static uint16_t key_timer;
5
6bool checktime(void){
7 return (timer_elapsed(key_timer) < 150) ? true : false;
8 };
9
10// general keydefs
11#define norm 0 // Default layer
12#define elev 1 // Layer directional keys
13#define supr 2 // F-keys and mediakeys
14#define spac 3 //
15#define FNO1 4 //
16#define FNO2 5 //
17#define FNO3 6 //
18#define MAC0 M(0) //
19#define MAC1 M(1) //
20#define MAC2 M(2) //
21#define MAC3 M(3) //
22#define MAC4 M(4) //
23#define MAC5 M(5) //
24#define MAC6 M(6) //
25#define MAC7 M(7) //
26#define MAC8 M(8) //
27#define MAC9 M(9) //
28#define GRAV KC_GRV //
29#define MEDI F(FNO1)//
30
31// General shortenings
32#define ESCA KC_ESC
33#define MINS KC_MINS
34#define EQUL KC_EQL
35#define BSPC KC_BSPC
36#define DELE KC_DEL
37#define LBRC KC_LBRC
38#define RBRC KC_RBRC
39#define ALTR KC_RALT
40#define SCLN KC_SCLN
41#define QUOT KC_QUOT
42#define NUHS KC_NUHS
43#define ENTE KC_ENT
44#define NUBS KC_NUBS // Less/ greater sign
45#define COMM KC_COMM // Comma
46#define FSTO KC_DOT // Full stop
47#define SLSH KC_SLSH
48#define ALTL KC_LALT
49#define GUIL KC_LGUI
50#define GUIR KC_RGUI
51#define MENO KC_MENU
52// The F-row/layer:
53#define FK01 KC_F1
54#define FK02 KC_F2
55#define FK03 KC_F3
56#define FK04 KC_F4
57#define FK05 KC_F5
58#define FK06 KC_F6
59#define FK07 KC_F7
60#define FK08 KC_F8
61#define FK09 KC_F9
62#define FK10 KC_F10
63#define FK11 KC_F11
64#define FK12 KC_F12
65#define FK13 KC_F13
66#define FK14 KC_F14
67// Special Actions and Media Keys
68#define INSE KC_INS // Insert here
69#define HOME KC_HOME // Go to beginning of line
70#define ENDI KC_END // go to end of line
71#define PSCR KC_PSCR // Print Screen
72#define SLCK KC_SLCK // go to end of line
73#define PGDN KC_PGDN // go to end of line
74#define PGUP KC_PGUP // go to end of line
75#define PLPS KC_MPLY // Play/Pause
76#define PAUS KC_PAUS // Pause button
77#define MUTE KC_MUTE // Mute sound
78#define VOLU KC_VOLU // Volume increase
79#define VOLD KC_VOLD // Volume decrease
80#define MNXT KC_MNXT // next track
81#define MPRV KC_MPRV // prev track
82#define MSTP KC_MSTP // stop playing
83#define MSEL KC_MSEL // Select media (Start playing it)
84#define MAIL KC_MAIL // Open default mail app
85#define CALC KC_CALC // Open default calculator app
86#define MYCM KC_MYCM // Open default file manager
87//#define LILO KC_XXXXXX // Reserved for later
88//#define LIHI KC_XXXXXX // Reserved for later
89
90
91// dual-role shortcuts
92#define DUTB LT(elev, KC_TAB) // `tabs` layer on hold and tab on tap
93#define DUSP LT(spac, KC_SPACE) // `spce` layer on hold and space on tap
94#define LOCK LGUI(KC_L) // lock computer (win)
95
96// Space Admiral Strokers
97#define SADL MAC0 // Hold for lshift and { on tap
98#define SADR MAC1 // Hold for rshift and } on tap
99#define CADL MAC2 // Hold for lctrl and [ on tap
100#define CADR MAC3 // Hold for rctrl and ] on tap
101
102// arrow cluster duality bottom right corner
103#define ARLF ALT_T(KC_LEFT) // Left arrow
104#define ARRT CTL_T(KC_RIGHT)// Right arrow
105#define ARUP SFT_T(KC_UP) // Up arrow
106#define ARDN GUI_T(KC_DOWN) // Down arrow
107
108// brackets
109#define NOCL RALT(KC_7) // [
110#define NOCR RALT(KC_0) // ]
111#define NOPL LSFT(KC_8) // (
112#define NOPR LSFT(KC_9) // )
113#define NOAL KC_NUBS // <
114#define NOAR LSFT(KC_NUBS) // >
115#define NOBL RALT(KC_8) // [
116#define NOBR RALT(KC_9) // ]
117
118// increase readability
119#define XXXX KC_TRNS
120#define DEAD KC_NO
121#define SCAN KC_TRNS // Scandinavian keys, the Row 5 key 5 is actually Row 1 key 15 on the PCB
122
123const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
124[ norm ] = LAYOUT_all( // Normal scandinavian mapping (danish has QUOT and SCLN wapped)
125 GRAV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, MINS, EQUL, BSPC, DELE,\
126 DUTB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, LBRC, RBRC, DEAD,\
127 ALTR, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SCLN, QUOT, NUHS, ENTE,\
128 SADL, NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, COMM, FSTO, SLSH, SADR, DEAD,\
129 CADL, ALTL, GUIL, DUSP, GUIR, MEDI, MENO, CADR),
130
131[ elev ] = LAYOUT_all( // The f-Row (with f13-14), Special keys and media keys
132 LOCK, FK01, FK02, FK03, FK04, FK05, FK06, FK07, FK08, FK09, FK10, FK11, FK12, FK13, FK14,\
133 XXXX, XXXX, XXXX, XXXX, MAIL, XXXX, XXXX, HOME, INSE, PSCR, SLCK, PAUS, PGUP, XXXX,\
134 XXXX, XXXX, XXXX, XXXX, MYCM, XXXX, XXXX, MPRV, PAUS, MNXT, XXXX, XXXX, PGDN, ENDI,\
135 XXXX, XXXX, XXXX, XXXX, CALC, XXXX, XXXX, XXXX, MUTE, VOLD, VOLU, XXXX, ARUP, DEAD,\
136 XXXX, XXXX, XXXX, PLPS, XXXX, ARLF, ARDN, ARRT),
137
138[ spac ] = LAYOUT_all( // The space controls (by pressing space)
139 XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,\
140 XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,\
141 XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,\
142 XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, DEAD,\
143 XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX),
144
145[ supr ] = LAYOUT_all( // Additional layer for later use.
146 XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,\
147 XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,\
148 XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,\
149 XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, DEAD,\
150 XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX),
151};
152
153const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function
154 switch(id) {
155 case 0: //MAC0 - Hold for lshift and { on tap
156 if (record->event.pressed) {
157 key_timer = timer_read();
158 return MACRO(D(LSFT), END );
159 } else {
160 return checktime() ? MACRO(U(LSFT),D(RALT),T(7),U(RALT),END): MACRO(U(LSFT),END);
161 }; break;
162 case 1: //MAC1 - Hold for rshift and } on tap
163 if (record->event.pressed) {
164 key_timer = timer_read();
165 return MACRO(D(RSFT), END );
166 } else {
167 return checktime() ? MACRO(U(RSFT),D(RALT),T(0),U(RALT),END): MACRO(U(RSFT),END);
168 }; break;
169 case 2: //MAC2 - Hold for lctrl and [ on tap
170 if (record->event.pressed) {
171 key_timer = timer_read();
172 return MACRO(D(LCTL), END );
173 } else {return checktime() ? MACRO(U(LCTL),D(RALT),T(8),U(RALT),END):MACRO(U(LCTL),END);
174 }; break;
175 case 3: //MAC3 - Hold for rctrl and ] on tap
176 if (record->event.pressed) {
177 key_timer = timer_read();
178 return MACRO(D(RCTL), END );
179 } else {
180 return checktime() ? MACRO(U(RCTL),D(RALT),T(9),U(RALT),END):MACRO(U(RCTL),END);
181 }; break;
182 case 4: //MAC4 reserved for later.
183 if (record->event.pressed) { } else { }; break;
184 case 5: //MAC5 reserved for later.
185 if (record->event.pressed) { } else { }; break;
186 case 6: //MAC6 reserved for later.
187 if (record->event.pressed) { } else { }; break;
188 } return MACRO_NONE;
189};
diff --git a/keyboards/gh60/satan/keymaps/admiralStrokers/readme.md b/keyboards/gh60/satan/keymaps/admiralStrokers/readme.md
new file mode 100644
index 000000000..eb3a20bb9
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/admiralStrokers/readme.md
@@ -0,0 +1,13 @@
1# Admiral Strokers keymap
2## For the Satan GH60 PCB
3The Admiral STN60 is a layout for users of the satan GH60, optimized with some nice features such as mod tap for brackets (Similar to Space Cadett), space mod for F-row/ layer with easy to access media and control keys. The layout below is just as an example and is ISO based, ANSI and JIS layouts will be included later.
4
5``````
6[ _tmp ] = LAYOUT_all( // Copy this to get started. SCAN is scandinavian layout specific.
7XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,\
8XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, DEAD,\
9XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, SCAN, XXXX,\
10XXXX, SCAN, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, DEAD,\
11XXXX, XXXX, XXXX, XXXX, SCAN, XXXX, XXXX, XXXX, XXXX),\
12
13```
diff --git a/keyboards/gh60/satan/keymaps/admiralStrokers/rules.mk b/keyboards/gh60/satan/keymaps/admiralStrokers/rules.mk
new file mode 100644
index 000000000..7c3f5bd90
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/admiralStrokers/rules.mk
@@ -0,0 +1,22 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = no # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = no # Commands for debug and configuration
10SLEEP_LED_ENABLE = no # Enables your LED to breathe while your computer is sleeping.
11NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
13MIDI_ENABLE = no # MIDI controls
14AUDIO_ENABLE = no # Audio output on port C6
15UNICODEMAP_ENABLE = no # This allows sending unicode symbols using X(<unicode>) in your keymap.
16UNICODE_ENABLE =no # Unicode
17UCIS_ENABLE = no # Keep in mind that not all will work (See WinCompose for details on Windows).
18BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
19RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
20SLEEP_LED_ENABLE = no# Breathing sleep LED during USB suspend
21API_SYSEX_ENABLE = no # This enables using the Quantum SYSEX API to send strings
22
diff --git a/keyboards/gh60/satan/keymaps/ben_iso/config.h b/keyboards/gh60/satan/keymaps/ben_iso/config.h
new file mode 100644
index 000000000..84d55698c
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/ben_iso/config.h
@@ -0,0 +1,58 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_H_BEN
19#define CONFIG_H_BEN
20
21#include "config_common.h"
22#include "../../config.h"
23
24/* USB Device descriptor parameter */
25#define VENDOR_ID 0xFEED
26#define PRODUCT_ID 0x6060
27#define DEVICE_VER 0x0003
28#define MANUFACTURER SATAN
29#define PRODUCT GH60
30#define DESCRIPTION QMK keyboard firmware for Satan GH60 with WS2812 support
31
32/*MOUSE CONFIG OPTIONS */
33
34#define MOUSEKEY_INTERVAL 20
35#define MOUSEKEY_DELAY 0
36#define MOUSEKEY_TIME_TO_MAX 45
37#define MOUSEKEY_MAX_SPEED 3
38#define MOUSEKEY_WHEEL_DELAY 0
39
40/*
41 * Feature disable options
42 * These options are also useful to firmware size reduction.
43 */
44
45/* disable debug print */
46//#define NO_DEBUG
47
48/* disable print */
49//#define NO_PRINT
50
51/* disable action features */
52//#define NO_ACTION_LAYER
53//#define NO_ACTION_TAPPING
54//#define NO_ACTION_ONESHOT
55//#define NO_ACTION_MACRO
56//#define NO_ACTION_FUNCTION
57
58#endif
diff --git a/keyboards/gh60/satan/keymaps/ben_iso/keymap.c b/keyboards/gh60/satan/keymaps/ben_iso/keymap.c
new file mode 100644
index 000000000..5dfb2ae70
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/ben_iso/keymap.c
@@ -0,0 +1,127 @@
1#include QMK_KEYBOARD_H
2
3
4#define BASE 0 // Default layer
5#define SPACE 1 // Space layer
6#define NUMPAD 2 // Alt layer
7#define CAPS 3 // Caps layer
8#define FN1 4 // Generic function layer
9
10#define MAC0 M(0) //
11#define MAC1 M(1) //
12#define MAC2 M(2) //
13#define MAC3 M(3) //
14#define MAC4 M(4) //
15#define MAC5 M(5) //
16#define MAC6 M(6) //
17#define MAC7 M(7) //
18#define MAC8 M(8) //
19#define MAC9 M(9) //
20#define GRAV KC_GRV //
21#define MEDI F(FNO1)//
22
23// General shortenings
24#define ESCA KC_ESC
25#define MINS KC_MINS
26#define EQUL KC_EQL
27#define BSPC KC_BSPC
28#define DELE KC_DEL
29#define LBRC KC_LBRC
30#define RBRC KC_RBRC
31#define ALTR KC_RALT
32#define SCLN KC_SCLN
33#define QUOT KC_QUOT
34#define NUHS KC_NUHS
35#define ENTE KC_ENT
36#define NUBS KC_NUBS // Less/ greater sign
37#define COMM KC_COMM // Comma
38#define FSTO KC_DOT // Full stop
39#define SLSH KC_SLSH
40#define ALTL KC_LALT
41#define GUIL KC_LGUI
42#define GUIR KC_RGUI
43#define MENO KC_MENU
44
45// Special Actions and Media Keys
46#define INSE KC_INS // Insert here
47#define HOME KC_HOME // Go to beginning of line
48#define ENDI KC_END // go to end of line
49#define PSCR KC_PSCR // Print Screen
50#define SLCK KC_SLCK // go to end of line
51#define PGDN KC_PGDN // go to end of line
52#define PGUP KC_PGUP // go to end of line
53#define PLPS KC_MPLY // Play/Pause
54#define PAUS KC_PAUS // Pause button
55#define MUTE KC_MUTE // Mute sound
56#define VOLU KC_VOLU // Volume increase
57#define VOLD KC_VOLD // Volume decrease
58#define MNXT KC_MNXT // next track
59#define MPRV KC_MPRV // prev track
60#define MSTP KC_MSTP // stop playing
61#define MSEL KC_MSEL // Select media (Start playing it)
62#define MAIL KC_MAIL // Open default mail app
63#define CALC KC_CALC // Open default calculator app
64#define MYCM KC_MYCM // Open default file manager
65
66// increase readability
67#define XXXXX KC_NO
68
69const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
70
71 /* Keymap BASE: (Base Layer) Default Layer
72 * ,-----------------------------------------------------------.
73 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
74 * |-----------------------------------------------------------|
75 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| R |
76 * |-----------------------------------------------------------|
77 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| # | R |
78 * |-----------------------------------------------------------|
79 * |Shft| \ | Z| X| C| V| B| N| M| ,| .| /|Shift |
80 * |-----------------------------------------------------------|
81 * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
82 * `-----------------------------------------------------------|
83 */
84
85 [BASE] = LAYOUT_60_iso(
86 KC_ESC, 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,
87 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,
88 OSL(CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
89 KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
90 KC_LCTL, KC_LGUI, KC_LALT, LT(SPACE, KC_SPC), KC_RALT, OSL(FN1), TG(NUMPAD), KC_RCTL
91 ),
92
93 [SPACE] = LAYOUT_60_iso(
94 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_DEL,
95 _______, _______, _______, _______, MAIL, _______, _______, HOME, KC_UP, PSCR, SLCK, PAUS, PGUP,
96 _______, _______, _______, PGUP, PGDN, _______, LALT(KC_F4), KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______,
97 _______, _______, _______, _______, CALC, _______, _______, _______, MUTE, VOLD, VOLU, _______, _______,
98 _______, _______, _______, _______, _______, _______, _______, _______
99 ),
100
101 [NUMPAD] = LAYOUT_60_iso( //Numpad and alt shortcuts
102 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
103 _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______,
104 _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______,
105 _______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______, _______,
106 _______, _______, _______, _______, _______, _______, _______, _______
107 ),
108
109 [CAPS] = LAYOUT_60_iso( //Mostly mouse layer with option for caps too
110 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
111 _______, _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, KC_MS_U, _______, _______, _______, _______,
112 _______, KC_CAPS, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______,
113 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
114 _______, _______, _______, _______, _______, _______, _______, _______
115 ),
116
117 [FN1] = LAYOUT_60_iso( //Functions/settings
118 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
119 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
120 _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_INC, BL_DEC, BL_TOGG, _______, _______, _______,
121 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
122 _______, _______, _______, _______, _______, _______, _______, _______
123 ),
124
125};
126
127
diff --git a/keyboards/gh60/satan/keymaps/ben_iso/readme.md b/keyboards/gh60/satan/keymaps/ben_iso/readme.md
new file mode 100644
index 000000000..74b7680b2
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/ben_iso/readme.md
@@ -0,0 +1,12 @@
1# UK ISO layout for the Satan GH60
2## By Ben James
3-----
4This layout has a few unique features including:
5* Spacebar activates special features when held:
6 * Arrow keys directly under right hand
7 * Volume control
8 * Fn keys on number row
9 * PageUp/PageDn/Home/other general buttons
10* Mouse control when CAPS is held. Right hand controls mouse direction, left hand controls speed and mouse buttons.
11* Space cadet style brackets when left/right shift are tapped
12
diff --git a/keyboards/gh60/satan/keymaps/ben_iso/rules.mk b/keyboards/gh60/satan/keymaps/ben_iso/rules.mk
new file mode 100644
index 000000000..53644093d
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/ben_iso/rules.mk
@@ -0,0 +1,18 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/gh60/satan/keymaps/bri/keymap.c b/keyboards/gh60/satan/keymaps/bri/keymap.c
new file mode 100644
index 000000000..1f9430a9f
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/bri/keymap.c
@@ -0,0 +1,67 @@
1#include QMK_KEYBOARD_H
2
3
4#define _BL 0
5#define _FL 1
6#define _NAV 2
7
8#define A_LEFT LALT(KC_LEFT)
9#define A_RGHT LALT(KC_RGHT)
10
11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12 /* Keymap _BL: (Base Layer) Default Layer
13 * ,-----------------------------------------------------------.
14 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
15 * |-----------------------------------------------------------|
16 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
17 * |-----------------------------------------------------------|
18 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
19 * |-----------------------------------------------------------|
20 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
21 * |-----------------------------------------------------------|
22 * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
23 * `-----------------------------------------------------------'
24 */
25[_BL] = LAYOUT_60_ansi(
26 KC_GESC, 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, \
27 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_BSLS, \
28 MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
29 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \
30 KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT, KC_RCTL, MO(_FL) ),
31
32 /* Keymap _FL: Function Layer
33 * ,-----------------------------------------------------------.
34 * | | | | | | | | | | | | | | |
35 * |-----------------------------------------------------------|
36 * | | | | | | | | | | | |BL-|BL+|BL |
37 * |-----------------------------------------------------------|
38 * | | | | | | | | | | | | |
39 * |-----------------------------------------------------------|
40 * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | |
41 * |-----------------------------------------------------------|
42 * |RESET| | | | | | | |
43 * `-----------------------------------------------------------'
44 */
45[_FL] = LAYOUT_60_ansi(
46 #ifdef RGBLIGHT_ENABLE
47 KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, KC_F12,_______, \
48 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG, \
49 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
50 _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______, \
51 RESET ,_______,_______, _______, _______,_______,_______, _______),
52 #else
53 KC_GRV, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, KC_F12,_______, \
54 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, BL_INC,BL_TOGG, \
55 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
56 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
57 RESET ,_______,_______, _______, _______,_______,_______,_______),
58 #endif
59
60[_NAV] = LAYOUT_60_ansi(
61 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
62 _______,_______,_______,_______,_______,_______,_______,A_LEFT , KC_UP ,A_RGHT ,_______,_______,_______,_______, \
63 _______,_______,_______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______, _______, \
64 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
65 _______,_______,_______, _______, _______,_______,_______,_______),
66
67};
diff --git a/keyboards/gh60/satan/keymaps/bri/readme.md b/keyboards/gh60/satan/keymaps/bri/readme.md
new file mode 100644
index 000000000..bed305997
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/bri/readme.md
@@ -0,0 +1,2 @@
1#QWERTY keymap for Satan GH60 with layers for arrow keys, function keys, and backlight controls.
2#The layout of modifiers is intended to mimic the MacBook Air keyboard. \ No newline at end of file
diff --git a/keyboards/gh60/satan/keymaps/chaser/keymap.c b/keyboards/gh60/satan/keymaps/chaser/keymap.c
new file mode 100644
index 000000000..edba9a309
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/chaser/keymap.c
@@ -0,0 +1,88 @@
1#include QMK_KEYBOARD_H
2
3
4
5// Used for SHIFT_ESC
6#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
7
8// Each layer gets a name for readability, which is then used in the keymap matrix below.
9// The underscores don't mean anything - you can have a layer called STUFF or any other name.
10// Layer names don't all need to be of the same length, obviously, and you can also skip them
11// entirely and just use numbers.
12#define _BL 0
13#define _FL 1
14
15const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16 /* Keymap _BL: (Base Layer) Default Layer
17 * ,-----------------------------------------------------------.
18 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
19 * |-----------------------------------------------------------|
20 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
21 * |-----------------------------------------------------------|
22 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
23 * |-----------------------------------------------------------|
24 * |Shift | Z| X| C| V| B| N| M| ,| .| /| Up |FN |
25 * |-----------------------------------------------------------|
26 * |Ctrl|Gui |Alt | Space |Alt |Left |Down|Right|
27 * `-----------------------------------------------------------'
28 */
29[_BL] = LAYOUT_all(
30 F(0) ,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 , _______, \
31 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_BSLS , \
32 KC_CAPS ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT,_______,KC_ENT , \
33 KC_LSHIFT ,_______,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_UP ,MO(_FL) , \
34 KC_LCTL ,KC_LGUI,KC_LALT, KC_SPC ,KC_RALT,KC_LEFT,KC_DOWN,KC_RIGHT),
35 /* Keymap _FL: Function Layer
36 * ,-----------------------------------------------------------.
37 * |GRV|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL |
38 * |-----------------------------------------------------------|
39 * | MB3|MB2|MUP|MB1|MWU| | | |INS| |RST| | |Print|
40 * |-----------------------------------------------------------|
41 * | | ML|MDN|MR |MWD| | | | | | | |
42 * |-----------------------------------------------------------|
43 * | | | | | | | | | | | |PGUP| |
44 * |-----------------------------------------------------------|
45 * | | | | |Ctrl|HOME|PGD |END |
46 * `-----------------------------------------------------------'
47 */
48[_FL] = LAYOUT_all(
49 KC_GRV , 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_DEL ,_______, \
50 KC_MS_BTN3 ,KC_MS_BTN2 ,KC_MS_UP ,KC_MS_BTN1 ,KC_MS_WH_UP ,_______,_______,_______,KC_INS ,_______,RESET ,_______,_______ ,KC_PSCREEN , \
51 _______ ,KC_MS_LEFT ,KC_MS_DOWN ,KC_MS_RIGHT,KC_MS_WH_DOWN,_______,_______,_______,_______,_______,_______,_______,_______ ,_______ , \
52 _______ ,_______ ,_______ ,_______ ,_______ ,_______,_______,_______,_______,_______,_______,_______,KC_PGUP ,_______ , \
53 KC_LCTL ,_______ ,KC_LALT , _______, KC_RCTL,KC_HOME,KC_PGDOWN ,KC_END ),
54};
55
56enum function_id {
57 SHIFT_ESC,
58};
59
60const uint16_t PROGMEM fn_actions[] = {
61 [0] = ACTION_FUNCTION(SHIFT_ESC),
62};
63
64void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
65 static uint8_t shift_esc_shift_mask;
66 switch (id) {
67 case SHIFT_ESC:
68 shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
69 if (record->event.pressed) {
70 if (shift_esc_shift_mask) {
71 add_key(KC_GRV);
72 send_keyboard_report();
73 } else {
74 add_key(KC_ESC);
75 send_keyboard_report();
76 }
77 } else {
78 if (shift_esc_shift_mask) {
79 del_key(KC_GRV);
80 send_keyboard_report();
81 } else {
82 del_key(KC_ESC);
83 send_keyboard_report();
84 }
85 }
86 break;
87 }
88}
diff --git a/keyboards/gh60/satan/keymaps/chaser/readme.md b/keyboards/gh60/satan/keymaps/chaser/readme.md
new file mode 100644
index 000000000..c6e70b188
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/chaser/readme.md
@@ -0,0 +1,38 @@
1# [dragonchasers](https://github.com/dragonchaser) Satan GH60 layout
2
3Layout derived from the default Satan GH60 keymap.
4
5![Photo of the keyboard](https://pbs.twimg.com/media/DQzlD0yX0AA8spX.jpg)
6
7## Layers
8
9### Base
10```
11,-----------------------------------------------------------.
12|Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
13|-----------------------------------------------------------|
14|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
15|-----------------------------------------------------------|
16|CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
17|-----------------------------------------------------------|
18|Shift | Z| X| C| V| B| N| M| ,| .| /| Up |FN |
19|-----------------------------------------------------------|
20|Ctrl|Gui |Alt | Space |Alt |Left |Down|Right|
21`-----------------------------------------------------------'
22```
23
24### Function Layer
25
26```
27,-----------------------------------------------------------.
28|GRV|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL |
29|-----------------------------------------------------------|
30| MB3|MB2|MUP|MB1|MWU| | | |INS| |RST| | |Print|
31|-----------------------------------------------------------|
32| | ML|MDN|MR |MWD| | | | | | | |
33|-----------------------------------------------------------|
34| | | | | | | | | | | |PGUP| |
35|-----------------------------------------------------------|
36| | | | |Ctrl|HOME|PGD |END |
37`-----------------------------------------------------------'
38```
diff --git a/keyboards/gh60/satan/keymaps/chaser/rules.mk b/keyboards/gh60/satan/keymaps/chaser/rules.mk
new file mode 100644
index 000000000..53644093d
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/chaser/rules.mk
@@ -0,0 +1,18 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/gh60/satan/keymaps/colemak/keymap.c b/keyboards/gh60/satan/keymaps/colemak/keymap.c
new file mode 100644
index 000000000..08d456d6c
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/colemak/keymap.c
@@ -0,0 +1,95 @@
1#include QMK_KEYBOARD_H
2
3
4
5// Used for SHIFT_ESC
6#define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
7
8// Each layer gets a name for readability, which is then used in the keymap matrix below.
9// The underscores don't mean anything - you can have a layer called STUFF or any other name.
10// Layer names don't all need to be of the same length, obviously, and you can also skip them
11// entirely and just use numbers.
12#define _BL 0
13#define _FL 1
14
15enum custom_keycodes {
16 SFT_ESC = SAFE_RANGE
17};
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 /* Keymap _BL: (Base Layer) Default Layer
21 * ,-----------------------------------------------------------.
22 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
23 * |-----------------------------------------------------------|
24 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
25 * |-----------------------------------------------------------|
26 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
27 * |-----------------------------------------------------------|
28 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
29 * |-----------------------------------------------------------|
30 * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
31 * `-----------------------------------------------------------'
32 */
33[_BL] = LAYOUT_60_ansi(
34 SFT_ESC, 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, \
35 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC,KC_BSLS, \
36 KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,KC_QUOT, KC_ENT, \
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \
38 KC_LCTL, MO(_FL), KC_LGUI, KC_SPC, KC_RALT,KC_RGUI, MO(_FL),KC_RCTL),
39
40 /* Keymap _FL: Function Layer
41 * ,-----------------------------------------------------------.
42 * | | | | | | | | | | | | | | RESET|
43 * |-----------------------------------------------------------|
44 * | | | | | | | | | | | |BL-|BL+|BL |
45 * |-----------------------------------------------------------|
46 * | | | | | | | | | | | | |
47 * |-----------------------------------------------------------|
48 * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | |
49 * |-----------------------------------------------------------|
50 * | | | | | | | | |
51 * `-----------------------------------------------------------'
52 */
53[_FL] = LAYOUT_60_ansi(
54 #ifdef RGBLIGHT_ENABLE
55 KC_GRV, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET, \
56 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG, \
57 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
58 _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______, \
59 _______,_______,_______, _______, _______,_______,_______, _______),
60 #else
61 KC_GRV, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET, \
62 _______,KC_MPRV,KC_MPLY,KC_MNXT,_______,_______,_______,KC_HOME,KC_PGDN,KC_PGUP, KC_END, BL_DEC, BL_INC,BL_TOGG, \
63 KC_DEL, KC_VOLD,KC_MUTE,KC_VOLU,_______,_______,_______,KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,_______,_______, \
64 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
65 _______,_______,_______, _______, _______,_______,_______,_______),
66 #endif
67};
68
69bool process_record_user(uint16_t keycode, keyrecord_t *record) {
70 switch (keycode) {
71 case SFT_ESC:
72 if (record->event.pressed) {
73 if (get_mods() & MODS_SHIFT_MASK) {
74 add_key(KC_GRV);
75 send_keyboard_report();
76 } else {
77 add_key(KC_ESC);
78 send_keyboard_report();
79 }
80 } else {
81 if (get_mods() & MODS_SHIFT_MASK) {
82 del_key(KC_GRV);
83 send_keyboard_report();
84 } else {
85 del_key(KC_ESC);
86 send_keyboard_report();
87 }
88 }
89
90 return false;
91
92 default:
93 return true;
94 }
95}
diff --git a/keyboards/gh60/satan/keymaps/colemak/readme.md b/keyboards/gh60/satan/keymaps/colemak/readme.md
new file mode 100644
index 000000000..59bd4d124
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/colemak/readme.md
@@ -0,0 +1 @@
# Colemak layout for GH60 Satan
diff --git a/keyboards/gh60/satan/keymaps/colemak/rules.mk b/keyboards/gh60/satan/keymaps/colemak/rules.mk
new file mode 100644
index 000000000..53644093d
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/colemak/rules.mk
@@ -0,0 +1,18 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/gh60/satan/keymaps/dbroqua/keymap.c b/keyboards/gh60/satan/keymaps/dbroqua/keymap.c
new file mode 100644
index 000000000..d1dc4c3c3
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/dbroqua/keymap.c
@@ -0,0 +1,151 @@
1#include QMK_KEYBOARD_H
2#include "rgblight.h"
3
4#define _DEFAULT 0
5#define _FN 1
6#define _SFX 2
7
8enum planck_keycodes {
9 DEFAULT = SAFE_RANGE
10};
11
12// Fillers to make layering more clear
13#define ______ KC_TRNS
14
15const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16/* Qwerty gui/alt/space/alt/gui
17 * ,-----------------------------------------------------------------------------------------.
18 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
19 * |-----------------------------------------------------------------------------------------+
20 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
21 * |-----------------------------------------------------------------------------------------+
22 * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
23 * |-----------------------------------------------------------------------------------------+
24 * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
25 * |-----------------------------------------------------------------------------------------+
26 * |LGUI | LAlt | Space | RAlt |RGUI |
27 * `-----------------------------------------------------------------'
28 */
29 [_DEFAULT] = LAYOUT_60_ansi_split_bs_rshift( /* Basic QWERTY */
30 KC_ESC, 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_BSLS, KC_GRV, \
31 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_BSPC, \
32 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
33 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), \
34 ______, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, ______, ______ \
35 ),
36
37/* FN Layer
38 * ,-----------------------------------------------------------------------------------------.
39 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
40 * |-----------------------------------------------------------------------------------------+
41 * | CAPS | BL- | BL+ | BL | | | | | Psc | Slck| Paus| Up | | |
42 * |-----------------------------------------------------------------------------------------+
43 * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| |
44 * |-----------------------------------------------------------------------------------------+
45 * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | |
46 * |-----------------------------------------------------------------------------------------+
47 * | | | | Stop | |
48 * `-----------------------------------------------------------------'
49 */
50 [_FN] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 1 */
51 TG(_SFX), 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_DEL, \
52 KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \
53 ______, KC_VOLD,KC_VOLU,KC_MUTE,______, ______, KC_PAST,KC_PSLS,KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, \
54 ______, KC_MPRV,KC_MPLY,KC_MNXT,______, ______, KC_PPLS,KC_PMNS,KC_END, KC_PGDN, KC_DOWN, ______, ______, \
55 ______, ______, ______, ______, KC_MSTP, ______, ______, ______ \
56 ),
57
58/* SFX Layer
59 * ,-----------------------------------------------------------------------------------------.
60 * | | | | | | | | | | | | | | |RESET|
61 * |-----------------------------------------------------------------------------------------+
62 * | | BL- | BL+ | BL | | | | | | | | | | |
63 * |-----------------------------------------------------------------------------------------+
64 * | | RGBT| RGBM| | | | | | | | | | |
65 * |-----------------------------------------------------------------------------------------+
66 * | | Hue+| Hue-| Sat+| Sat-| Val+| Val-| | | | | | |
67 * |-----------------------------------------------------------------------------------------+
68 * | | | | | |
69 * `-----------------------------------------------------------------'
70 */
71 [_SFX] = LAYOUT_60_ansi_split_bs_rshift(
72 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, RESET, \
73 ______, BL_DEC, BL_INC, BL_TOGG,______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
74 ______, F(0), F(1), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
75 ______, F(2), F(3), F(4), F(5), F(6), F(7), ______, ______, ______, ______, ______, ______, \
76 ______, ______, ______, ______, ______, ______, ______, ______ \
77 )
78};
79
80const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
81{
82 // MACRODOWN only works in this function
83 return MACRO_NONE;
84};
85
86enum function_id {
87 RGBLED_TOGGLE,
88 RGBLED_STEP_MODE,
89 RGBLED_INCREASE_HUE,
90 RGBLED_DECREASE_HUE,
91 RGBLED_INCREASE_SAT,
92 RGBLED_DECREASE_SAT,
93 RGBLED_INCREASE_VAL,
94 RGBLED_DECREASE_VAL
95};
96
97const uint16_t PROGMEM fn_actions[] = {
98 [0] = ACTION_FUNCTION(RGBLED_TOGGLE),
99 [1] = ACTION_FUNCTION(RGBLED_STEP_MODE),
100 [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
101 [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
102 [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
103 [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
104 [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
105 [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL)
106};
107
108void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
109 switch (id) {
110 case RGBLED_TOGGLE:
111 if (record->event.pressed) {
112 rgblight_toggle();
113 }
114 break;
115 case RGBLED_INCREASE_HUE:
116 if (record->event.pressed) {
117 rgblight_increase_hue();
118 }
119 break;
120 case RGBLED_DECREASE_HUE:
121 if (record->event.pressed) {
122 rgblight_decrease_hue();
123 }
124 break;
125 case RGBLED_INCREASE_SAT:
126 if (record->event.pressed) {
127 rgblight_increase_sat();
128 }
129 break;
130 case RGBLED_DECREASE_SAT:
131 if (record->event.pressed) {
132 rgblight_decrease_sat();
133 }
134 break;
135 case RGBLED_INCREASE_VAL:
136 if (record->event.pressed) {
137 rgblight_increase_val();
138 }
139 break;
140 case RGBLED_DECREASE_VAL:
141 if (record->event.pressed) {
142 rgblight_decrease_val();
143 }
144 break;
145 case RGBLED_STEP_MODE:
146 if (record->event.pressed) {
147 rgblight_step();
148 }
149 break;
150 }
151}
diff --git a/keyboards/gh60/satan/keymaps/dbroqua/readme.md b/keyboards/gh60/satan/keymaps/dbroqua/readme.md
new file mode 100644
index 000000000..39e71beed
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/dbroqua/readme.md
@@ -0,0 +1,9 @@
1# Dbroqua HHKB like Layout
2
3Like the HHKB but with a Satan GH60 PCB :D.
4
5# Programming Instructions:
6Enter into programming mode and run the following command.
7```
8$ sudo KEYMAP=dbroqua_hhkb make dfu
9``` \ No newline at end of file
diff --git a/keyboards/gh60/satan/keymaps/default/keymap.c b/keyboards/gh60/satan/keymaps/default/keymap.c
new file mode 100644
index 000000000..77c1b5005
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/default/keymap.c
@@ -0,0 +1,54 @@
1#include QMK_KEYBOARD_H
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7enum layer_names {
8 _BL,
9 _FL
10};
11
12const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13 /* Keymap _BL: (Base Layer) Default Layer
14 * ,-----------------------------------------------------------.
15 * |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backsp|
16 * |-----------------------------------------------------------|
17 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
18 * |-----------------------------------------------------------|
19 * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
20 * |-----------------------------------------------------------|
21 * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift |
22 * |-----------------------------------------------------------|
23 * |Ctrl|GUI |Alt | Space | Alt| GUI| Fn | Ctrl|
24 * `-----------------------------------------------------------'
25 */
26 [_BL] = LAYOUT_60_ansi(
27 KC_GESC, 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, \
28 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_BSLS, \
29 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
30 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
31 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL
32 ),
33
34 /* Keymap _FL: Function Layer
35 * ,-----------------------------------------------------------.
36 * | ` | | | | | | | | | | | | | Reset |
37 * |-----------------------------------------------------------|
38 * | | | | | | | | | | | |BL-|BL+| BL |
39 * |-----------------------------------------------------------|
40 * | | | | | | | | | | | | | |
41 * |-----------------------------------------------------------|
42 * | | | | | | | | | | | | |
43 * |-----------------------------------------------------------|
44 * | | | | | | | | |
45 * `-----------------------------------------------------------'
46 */
47 [_FL] = LAYOUT_60_ansi(
48 KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, \
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, BL_TOGG, \
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
52 _______, _______, _______, _______, _______, _______, _______, _______
53 )
54};
diff --git a/keyboards/gh60/satan/keymaps/default/readme.md b/keyboards/gh60/satan/keymaps/default/readme.md
new file mode 100644
index 000000000..c366147df
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/default/readme.md
@@ -0,0 +1 @@
# default Satan GH60 layout
diff --git a/keyboards/gh60/satan/keymaps/default/rules.mk b/keyboards/gh60/satan/keymaps/default/rules.mk
new file mode 100644
index 000000000..53644093d
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/default/rules.mk
@@ -0,0 +1,18 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/gh60/satan/keymaps/dende_iso/keymap.c b/keyboards/gh60/satan/keymaps/dende_iso/keymap.c
new file mode 100644
index 000000000..e6187c161
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/dende_iso/keymap.c
@@ -0,0 +1,78 @@
1#include QMK_KEYBOARD_H
2
3#include "keymap_extras/keymap_german.h"
4
5// Each layer gets a name for readability, which is then used in the keymap matrix below.
6// The underscores don't mean anything - you can have a layer called STUFF or any other name.
7// Layer names don't all need to be of the same length, obviously, and you can also skip them
8// entirely and just use numbers.
9#define _DEF 0
10#define _FNK 1
11#define _MEDIA 2
12
13// dual-role shortcuts
14#define FN_CAPS LT(_MEDIA, KC_CAPSLOCK)
15
16const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
17 /* Keymap _DEF: Default Layer
18 * ,------------------------------------------------------------.
19 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| ß| ´|bcksp|fn1|
20 * |------------------------------------------------------------|
21 * |Tab | Q| W| E| R| T| Z| U| I| O| P| Ü| +| |
22 * |----------------------------------------------------- Return|
23 * |fn2 | A| S| D| F| G| H| J| K| L| Ö| Ä| # | |
24 * |------------------------------------------------------------|
25 * |Sft | < | Y| X| C| V| B| N| M| ,| .| -| RSft| del |
26 * |------------------------------------------------------------|
27 * |Ctrl|Win |Alt | Space |RAlt |Win |App|RCtrl|
28 * `------------------------------------------------------------'
29 */
30[_DEF] = LAYOUT_60_iso_split_bs_rshift(
31 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), \
32 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, \
33 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, \
34 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, \
35 KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_ALGR, KC_RGUI, KC_APP, KC_RCTL),
36
37
38 /* Keymap _FNK: Function Keys
39 * ,------------------------------------------------------------.
40 * | ^ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12| Ins | |
41 * |------------------------------------------------------------|
42 * | |PGU| Up|PGD| | | |Ins|Hom|PDU| | | | |
43 * |----------------------------------------------------- |
44 * | |Lft|Dwn|Rgt| | | |Del|End|PGD| | | | |
45 * |------------------------------------------------------------|
46 * | | | | | | | | | | | | | | |
47 * |------------------------------------------------------------|
48 * | | | | | | | | |
49 * `------------------------------------------------------------'
50 */
51[_FNK] = LAYOUT_60_iso_split_bs_rshift(
52 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, _______, \
53 _______, KC_PGUP, KC_UP, KC_PGDOWN, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, \
54 _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDOWN, _______, _______, _______, \
55 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
56 _______, _______, _______, _______, _______, _______, _______, _______),
57
58 /* Keymap _MEDIA: Media and Mouse Layer
59 * ,------------------------------------------------------------.
60 * | | | | | | | | | | | | | | | |
61 * |------------------------------------------------------------|
62 * | | | | | | | |MLC| MU|MRC| | | | |
63 * |----------------------------------------------------- |
64 * | |PRV|VLD|VLU|NXT| | | ML| MD| MR| | | | |
65 * |------------------------------------------------------------|
66 * | | | | | | | | | | | | | UP | |
67 * |------------------------------------------------------------|
68 * | | | | PLAY | |LEFT|DWN|RIGHT|
69 * `------------------------------------------------------------'
70 */
71
72[_MEDIA] = LAYOUT_60_iso_split_bs_rshift(
73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
74 _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, \
75 _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, \
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, \
77 _______, _______, _______, KC_MPLY, _______, KC_LEFT, KC_DOWN, KC_RIGHT),
78 };
diff --git a/keyboards/gh60/satan/keymaps/dende_iso/readme.md b/keyboards/gh60/satan/keymaps/dende_iso/readme.md
new file mode 100644
index 000000000..238a2f725
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/dende_iso/readme.md
@@ -0,0 +1,61 @@
1# Satan GH60 ISO-DE Layout with split backspace and right shift
2
3![Layout Image](https://i.imgur.com/a7znS69.jpg)
4
5## Default Layer
6This ISO-DE based layout has a split backspace. the left part is the actual backspace and the right parts serves as a FN key.
7The right shift is also split, with the right part serving as the del key.
8```
9/* Keymap _DEF: Default Layer
10 * ,------------------------------------------------------------.
11 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| ß| ´|bcksp|fn1|
12 * |------------------------------------------------------------|
13 * |Tab | Q| W| E| R| T| Z| U| I| O| P| Ü| +| |
14 * |----------------------------------------------------- Return|
15 * |fn2 | A| S| D| F| G| H| J| K| L| Ö| Ä| # | |
16 * |------------------------------------------------------------|
17 * |Sft | < | Y| X| C| V| B| N| M| ,| .| -| RSft| del |
18 * |------------------------------------------------------------|
19 * |Ctrl|Win |Alt | Space |RAlt |Win |App|RCtrl|
20 * `------------------------------------------------------------'
21 */
22```
23
24
25## FN Key Layer
26The Function keys can be accessed when holding fn1 (right part of backspace)
27
28```
29/* Keymap _FNK: Function Keys
30 * ,------------------------------------------------------------.
31 * | ^ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12| Ins | |
32 * |------------------------------------------------------------|
33 * | |PGU| Up|PGD| | | |Ins|Hom|PDU| | | | |
34 * |----------------------------------------------------- |
35 * | |Lft|Dwn|Rgt| | | |Del|End|PGD| | | | |
36 * |------------------------------------------------------------|
37 * | | | | | | | | | | | | | | |
38 * |------------------------------------------------------------|
39 * | | | | | | | | |
40 * `------------------------------------------------------------'
41 */
42```
43
44## Media and Mouse Layer
45The Media Keys and Mouse control can be accessed when holding capslock (fn2)
46
47```
48/* Keymap _MEDIA: Media and Mouse Layer
49 * ,------------------------------------------------------------.
50 * | | | | | | | | | | | | | | | |
51 * |------------------------------------------------------------|
52 * | | | | | | | |MLC| MU|MRC| | | | |
53 * |----------------------------------------------------- |
54 * | |PRV|VLD|VLU|NXT| | | ML| MD| MR| | | | |
55 * |------------------------------------------------------------|
56 * | | | | | | | | | | | | | UP | |
57 * |------------------------------------------------------------|
58 * | | | | PLAY | |LEFT|DWN|RIGHT|
59 * `------------------------------------------------------------'
60 */
61``` \ No newline at end of file
diff --git a/keyboards/gh60/satan/keymaps/dende_iso/rules.mk b/keyboards/gh60/satan/keymaps/dende_iso/rules.mk
new file mode 100644
index 000000000..53644093d
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/dende_iso/rules.mk
@@ -0,0 +1,18 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/gh60/satan/keymaps/denolfe/README.md b/keyboards/gh60/satan/keymaps/denolfe/README.md
new file mode 100644
index 000000000..147ea4288
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/denolfe/README.md
@@ -0,0 +1,12 @@
1# denolfe's Layout
2Customized Satan keymap
3
4![Layout](https://i.imgur.com/IrSUSMR.png "Practical Keymap")
5
6## Programming Instructions:
7`cd` into keymap directory, `make dfu`
8
9## Features
10- Movement keys with <kbd>CapsLock</kbd> + <kbd>h</kbd>, <kbd>j</kbd>, <kbd>k</kbd>, <kbd>l</kbd>
11- Media Keys
12- Backlight control
diff --git a/keyboards/gh60/satan/keymaps/denolfe/keymap.c b/keyboards/gh60/satan/keymaps/denolfe/keymap.c
new file mode 100644
index 000000000..98fcd9b98
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/denolfe/keymap.c
@@ -0,0 +1,172 @@
1#include QMK_KEYBOARD_H
2
3
4#ifdef RGBLIGHT_ENABLE
5#include "rgblight.h"
6#endif
7
8// Used for SHIFT_ESC
9#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
10
11// Each layer gets a name for readability, which is then used in the keymap matrix below.
12// The underscores don't mean anything - you can have a layer called STUFF or any other name.
13// Layer names don't all need to be of the same length, obviously, and you can also skip them
14// entirely and just use numbers.
15#define _BL 0
16#define _FL 1
17#define _SL 2
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 /* Keymap _BL: (Base Layer) Default Layer
21 * ,-----------------------------------------------------------.
22 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
23 * |-----------------------------------------------------------|
24 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
25 * |-----------------------------------------------------------|
26 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
27 * |-----------------------------------------------------------|
28 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
29 * |-----------------------------------------------------------|
30 * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
31 * `-----------------------------------------------------------'
32 */
33[_BL] = LAYOUT_60_ansi(
34 F(0), 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, \
35 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_BSLS, \
36 MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
38 KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RGUI, KC_RCTL),
39
40 /* Keymap _FL: Function Layer
41 * ,-----------------------------------------------------------.
42 * | | | | | | | | | | | | | | RESET|
43 * |-----------------------------------------------------------|
44 * | | | | | | | | | | | |BL-|BL+|BL |
45 * |-----------------------------------------------------------|
46 * | | | | | | | | | | | | |
47 * |-----------------------------------------------------------|
48 * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | |
49 * |-----------------------------------------------------------|
50 * | | | | | | | | |
51 * `-----------------------------------------------------------'
52 */
53[_FL] = LAYOUT_60_ansi(
54 #ifdef RGBLIGHT_ENABLE
55 KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \
56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \
57 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, \
58 KC_TRNS, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, \
59 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
60 #else
61 KC_GRV, 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_DEL, \
62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_END, KC_MPRV, KC_MNXT, KC_MPLY, \
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \
64 KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, KC_HOME, LCTL(KC_LEFT), LCTL(KC_END), LCTL(KC_RIGHT), KC_TRNS, RESET, \
65 KC_TRNS, KC_TRNS, F(9), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
66 #endif
67
68[_SL] = LAYOUT_60_ansi(
69 KC_GRV, 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_DEL, \
70 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, LSFT(KC_END), KC_MPRV, KC_MNXT, KC_MPLY, \
71 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_UP), LSFT(KC_RIGHT), KC_TRNS, KC_TRNS, KC_TRNS, \
72 KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, LSFT(KC_HOME), LCTL(LSFT(KC_LEFT)), LCTL(LSFT(KC_END)), LCTL(LSFT(KC_RIGHT)), KC_TRNS, RESET, \
73 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
74};
75
76enum function_id {
77 SHIFT_ESC,
78 #ifdef RGBLIGHT_ENABLE
79 RGBLED_TOGGLE,
80 RGBLED_STEP_MODE,
81 RGBLED_INCREASE_HUE,
82 RGBLED_DECREASE_HUE,
83 RGBLED_INCREASE_SAT,
84 RGBLED_DECREASE_SAT,
85 RGBLED_INCREASE_VAL,
86 RGBLED_DECREASE_VAL
87 #endif
88};
89
90const uint16_t PROGMEM fn_actions[] = {
91 [0] = ACTION_FUNCTION(SHIFT_ESC),
92 #ifdef RGBLIGHT_ENABLE
93 [1] = ACTION_FUNCTION(RGBLED_TOGGLE),
94 [2] = ACTION_FUNCTION(RGBLED_STEP_MODE),
95 [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
96 [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
97 [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
98 [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
99 [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
100 [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL),
101 #endif
102 [9] = ACTION_LAYER_MODS(2, MOD_LSFT)
103};
104
105void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
106 static uint8_t shift_esc_shift_mask;
107 switch (id) {
108 case SHIFT_ESC:
109 shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
110 if (record->event.pressed) {
111 if (shift_esc_shift_mask) {
112 add_key(KC_GRV);
113 send_keyboard_report();
114 } else {
115 add_key(KC_ESC);
116 send_keyboard_report();
117 }
118 } else {
119 if (shift_esc_shift_mask) {
120 del_key(KC_GRV);
121 send_keyboard_report();
122 } else {
123 del_key(KC_ESC);
124 send_keyboard_report();
125 }
126 }
127 break;
128 //led operations
129 #ifdef RGBLIGHT_ENABLE
130 case RGBLED_TOGGLE:
131 if (record->event.pressed) {
132 rgblight_toggle();
133 }
134 break;
135 case RGBLED_INCREASE_HUE:
136 if (record->event.pressed) {
137 rgblight_increase_hue();
138 }
139 break;
140 case RGBLED_DECREASE_HUE:
141 if (record->event.pressed) {
142 rgblight_decrease_hue();
143 }
144 break;
145 case RGBLED_INCREASE_SAT:
146 if (record->event.pressed) {
147 rgblight_increase_sat();
148 }
149 break;
150 case RGBLED_DECREASE_SAT:
151 if (record->event.pressed) {
152 rgblight_decrease_sat();
153 }
154 break;
155 case RGBLED_INCREASE_VAL:
156 if (record->event.pressed) {
157 rgblight_increase_val();
158 }
159 break;
160 case RGBLED_DECREASE_VAL:
161 if (record->event.pressed) {
162 rgblight_decrease_val();
163 }
164 break;
165 case RGBLED_STEP_MODE:
166 if (record->event.pressed) {
167 rgblight_step();
168 }
169 break;
170 #endif
171 }
172}
diff --git a/keyboards/gh60/satan/keymaps/denolfe/rules.mk b/keyboards/gh60/satan/keymaps/denolfe/rules.mk
new file mode 100644
index 000000000..5a8745b68
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/denolfe/rules.mk
@@ -0,0 +1,17 @@
1
2# Build Options
3# comment out to disable the options.
4#
5BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = no # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = yes # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870)
12BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150)
13MIDI_ENABLE = no # MIDI controls
14AUDIO_ENABLE = no
15UNICODE_ENABLE = no # Unicode
16BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
17
diff --git a/keyboards/gh60/satan/keymaps/dkrieger/config.h b/keyboards/gh60/satan/keymaps/dkrieger/config.h
new file mode 100644
index 000000000..faea4d660
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/dkrieger/config.h
@@ -0,0 +1,26 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_H
19#define CONFIG_H
20
21#include "../../config.h"
22
23/* Tap Dance */
24#define TAPPING_TERM 200
25
26#endif
diff --git a/keyboards/gh60/satan/keymaps/dkrieger/keymap.c b/keyboards/gh60/satan/keymaps/dkrieger/keymap.c
new file mode 100644
index 000000000..ac688d7ea
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/dkrieger/keymap.c
@@ -0,0 +1,166 @@
1#include QMK_KEYBOARD_H
2
3#define _DEFAULT 0
4#define _FN 1
5#define _MOUSE 2
6#define _MOUSESHIFT 3
7#define _UTIL 4
8
9// Fillers to make layering more clear
10#define ______ KC_TRNS
11
12enum {
13 SUPER_FN = 0,
14 SINGLE_HOLD = 1,
15 DOUBLE_HOLD = 2,
16 TRIPLE_HOLD = 3
17};
18
19typedef struct {
20 bool is_press_action;
21 int state;
22} tap;
23
24int cur_dance (qk_tap_dance_state_t *state) {
25 if (state->interrupted == false || state->pressed) {
26 if (state->count < 2) return SINGLE_HOLD;
27 if (state->count < 3) return DOUBLE_HOLD;
28 else return TRIPLE_HOLD;
29 }
30 else return 9;
31}
32
33//instantiate an instance of 'tap' for the 'fn' tap dance.
34static tap fn_tap_state = {
35 .is_press_action = true,
36 .state = 0
37};
38
39void fn_finished (qk_tap_dance_state_t *state, void *user_data) {
40 fn_tap_state.state = cur_dance(state);
41 switch (fn_tap_state.state) {
42 /* case SINGLE_HOLD: register_code(MO(_FN)); break; */
43 case SINGLE_HOLD: layer_on(_FN); break;
44 case DOUBLE_HOLD: layer_on(_MOUSE); break;
45 case TRIPLE_HOLD: layer_on(_UTIL);
46 }
47}
48
49void fn_reset (qk_tap_dance_state_t *state, void *user_data) {
50 switch (fn_tap_state.state) {
51 case SINGLE_HOLD: layer_off(_FN); break;
52 case DOUBLE_HOLD: layer_off(_MOUSE); layer_off(_MOUSESHIFT); break;
53 case TRIPLE_HOLD: layer_off(_UTIL);
54 }
55}
56
57qk_tap_dance_action_t tap_dance_actions[] = {
58 [SUPER_FN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, fn_finished, fn_reset)
59};
60
61const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
62/* Qwerty gui/alt/space/alt/gui
63 * ,-----------------------------------------------------------------------------------------.
64 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
65 * |-----------------------------------------------------------------------------------------+
66 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
67 * |-----------------------------------------------------------------------------------------+
68 * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
69 * |-----------------------------------------------------------------------------------------+
70 * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
71 * |-----------------------------------------------------------------------------------------+
72 * |LGUI | LAlt | Space | RAlt |RGUI |
73 * `-----------------------------------------------------------------'
74 */
75 [_DEFAULT] = LAYOUT_60_ansi_split_bs_rshift( /* Basic QWERTY */
76 KC_ESC, 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_BSLS, KC_GRV, \
77 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_BSPC, \
78 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
79 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TD(SUPER_FN), \
80 ______, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, ______, ______ \
81 ),
82
83/* FN Layer
84 * ,-----------------------------------------------------------------------------------------.
85 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
86 * |-----------------------------------------------------------------------------------------+
87 * | CAPS | BL- | BL+ | BL | | | | | Psc | Slck| Paus| Up | | |
88 * |-----------------------------------------------------------------------------------------+
89 * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| |
90 * |-----------------------------------------------------------------------------------------+
91 * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | |
92 * |-----------------------------------------------------------------------------------------+
93 * | | | | Stop | |
94 * `-----------------------------------------------------------------'
95 */
96 [_FN] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 1 */
97 ______, 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_DEL, \
98 KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \
99 ______, KC_VOLD,KC_VOLU,KC_MUTE,______, ______, KC_PAST,KC_PSLS,KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, \
100 ______, KC_MPRV,KC_MPLY,KC_MNXT,______, ______, KC_PPLS,KC_PMNS,KC_END, KC_PGDN, KC_DOWN, ______, ______, \
101 ______, ______, ______, ______, KC_MSTP, ______, ______, ______ \
102 ),
103
104/* MOUSE Layer
105 * ,-----------------------------------------------------------------------------------------.
106 * | | | | | | | | | | | | | | |RESET|
107 * |-----------------------------------------------------------------------------------------
108 * | | | | | | | | | | | |UCurs| | |
109 * |-----------------------------------------------------------------------------------------
110 * | | | | | | | | | | |LCurs|RCurs| |
111 * |-----------------------------------------------------------------------------------------
112 * | ScrollHold| | | | | | | | | |DCurs| ScrollHold| |
113 * |-----------------------------------------------------------------------------------------+
114 * | | | LClick | MClick| RClick|
115 * `-----------------------------------------------------------------'
116 */
117 [_MOUSE] = LAYOUT_60_ansi_split_bs_rshift(
118 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, RESET, \
119 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_UP, ______, ______, \
120 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_LEFT, KC_MS_RIGHT, ______, \
121 MO(_MOUSESHIFT), ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_DOWN, MO(_MOUSESHIFT), ______, \
122 ______, ______, ______, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, ______, ______ \
123 ),
124
125/* MOUSESHIFT Layer
126 * ,-----------------------------------------------------------------------------------------.
127 * | | | | | | | | | | | | | | | |
128 * |-----------------------------------------------------------------------------------------
129 * | | | | | | | | | | | |UScrl| | |
130 * |-----------------------------------------------------------------------------------------
131 * | | | | | | | | | | |LScrl|RScrl| |
132 * |-----------------------------------------------------------------------------------------
133 * | | | | | | | | | | |DScrl| | |
134 * |-----------------------------------------------------------------------------------------+
135 * | | | | | |
136 * `-----------------------------------------------------------------'
137 */
138 [_MOUSESHIFT] = LAYOUT_60_ansi_split_bs_rshift(
139 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
140 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_WH_UP, ______, ______, \
141 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, ______, \
142 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MS_WH_DOWN, ______, ______, \
143 ______, ______, ______, ______, ______, ______, ______, ______ \
144 ),
145
146/* UTIL Layer
147 * ,-----------------------------------------------------------------------------------------.
148 * | | | | | | | | | | | | | | |RESET|
149 * |-----------------------------------------------------------------------------------------
150 * | | | | | | | | | | | | | | |
151 * |-----------------------------------------------------------------------------------------
152 * | | | | | | | | | | | | | |
153 * |-----------------------------------------------------------------------------------------
154 * | | | | | | | | | | | | | |
155 * |-----------------------------------------------------------------------------------------+
156 * | | | | | |
157 * `-----------------------------------------------------------------'
158 */
159 [_UTIL] = LAYOUT_60_ansi_split_bs_rshift(
160 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, RESET, \
161 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
162 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
163 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
164 ______, ______, ______, ______, ______, ______, ______, ______ \
165 )
166};
diff --git a/keyboards/gh60/satan/keymaps/dkrieger/readme.md b/keyboards/gh60/satan/keymaps/dkrieger/readme.md
new file mode 100644
index 000000000..894113239
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/dkrieger/readme.md
@@ -0,0 +1,23 @@
1# dkrieger HHKB like Layout
2
3Base derived from dbroqua (special thanks)
4
5Based on HHKB with the following [dip switches][1] engaged:
6
7- SW3: delete key -> backspace
8- SW5: swap alt and meta keys
9- SW2: Mac Mode (partial implementation, includes media keys
10 - Note: this was copied from dbroqua, there seem to have been some
11 modifications from stock Mac Mode
12
13Additionally, this layout includes a mouse layer engaged by tapping Fn 3 times,
14holding on the third time. The arrow keys move the mouse, scrolling when shift
15is held (either left or right). Right alt is left click, right meta is right
16click.
17
18# Programming Instructions:
19Enter into programming mode and run the following command.
20```
21$ sudo KEYMAP=dkrieger_hhkb make dfu
22```
23[1]: http://www.elitekeyboards.com/products.php?sub=pfu_keyboards,hhkbpro2&pid=pdkb400b
diff --git a/keyboards/gh60/satan/keymaps/dkrieger/rules.mk b/keyboards/gh60/satan/keymaps/dkrieger/rules.mk
new file mode 100644
index 000000000..d91b0edbf
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/dkrieger/rules.mk
@@ -0,0 +1,19 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = yes # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18TAP_DANCE_ENABLE = yes
19
diff --git a/keyboards/gh60/satan/keymaps/fakb/config.h b/keyboards/gh60/satan/keymaps/fakb/config.h
new file mode 100644
index 000000000..dc182753d
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/fakb/config.h
@@ -0,0 +1,88 @@
1#ifndef CONFIG_H
2#define CONFIG_H
3
4#include "config_common.h"
5
6/* USB Device descriptor parameter */
7#define VENDOR_ID 0xFEED
8#define PRODUCT_ID 0x6060
9#define DEVICE_VER 0x0003
10#define MANUFACTURER SATAN
11#define PRODUCT GH60
12#define DESCRIPTION QMK keyboard firmware for Satan GH60 with WS2812 support
13
14/* key matrix size */
15#define MATRIX_ROWS 5
16#define MATRIX_COLS 14
17
18// ROWS: Top to bottom, COLS: Left to right
19
20#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
21#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3 }
22#define UNUSED_PINS
23
24#define BACKLIGHT_PIN B6
25
26/* COL2ROW or ROW2COL */
27#define DIODE_DIRECTION COL2ROW
28
29/* define if matrix has ghost */
30//#define MATRIX_HAS_GHOST
31
32/* Set 0 if debouncing isn't needed */
33#define DEBOUNCE 5
34
35/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
36//#define LOCKING_SUPPORT_ENABLE
37/* Locking resynchronize hack */
38//#define LOCKING_RESYNC_ENABLE
39
40/* Backlight configuration
41 */
42#define BACKLIGHT_LEVELS 8
43
44/* Underlight configuration
45 */
46
47#define RGB_DI_PIN E2
48#define RGBLIGHT_ANIMATIONS
49#define RGBLED_NUM 8 // Number of LEDs
50#define RGBLIGHT_HUE_STEP 10
51#define RGBLIGHT_SAT_STEP 17
52#define RGBLIGHT_VAL_STEP 17
53
54/*
55 * Feature disable options
56 * These options are also useful to firmware size reduction.
57 */
58
59/* disable debug print */
60//#define NO_DEBUG
61
62/* disable print */
63//#define NO_PRINT
64
65/* disable action features */
66//#define NO_ACTION_LAYER
67//#define NO_ACTION_TAPPING
68#define NO_ACTION_ONESHOT
69#define NO_ACTION_MACRO
70#define NO_ACTION_FUNCTION
71
72#endif
73
74#ifndef CONFIG_USER_H
75#define CONFIG_USER_H
76
77#define MOUSEKEY_DELAY 0
78#define MOUSEKEY_INTERVAL 1
79#define MOUSEKEY_MAX_SPEED 4
80#define MOUSEKEY_TIME_TO_MAX 77
81#define MOUSEKEY_WHEEL_MAX_SPEED 1
82#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
83
84// only change
85#undef RGB_DI_PIN
86#define RGB_DI_PIN B2
87
88#endif
diff --git a/keyboards/gh60/satan/keymaps/fakb/keymap.c b/keyboards/gh60/satan/keymaps/fakb/keymap.c
new file mode 100644
index 000000000..93e11a5de
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/fakb/keymap.c
@@ -0,0 +1,33 @@
1#include QMK_KEYBOARD_H
2
3#define LCTL_MA LCTL_T(KC_UP)
4#define LSFT_MA LSFT_T(KC_DOWN)
5#define RSFT_MA SFT_T(KC_DOWN)
6#define TABS_MA LT(1,KC_TAB)
7#define SPCE_MA LT(2,KC_SPC)
8
9const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
10
11[0] = LAYOUT_all(
12 KC_GESC,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_BSLS,KC_NUBS,\
13 TABS_MA,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_BSPC,\
14 LCTL_MA,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT,XXXXXXX,KC_ENT ,\
15 LSFT_MA,KC_NUBS,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,RSFT_MA,MO(1) ,\
16 XXXXXXX,KC_LALT,KC_LGUI, SPCE_MA, KC_RGUI,KC_RALT,XXXXXXX,XXXXXXX),
17
18[1] = LAYOUT_all(
19 KC_PSCR,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 ,_______,\
20 _______,_______,_______,KC_PGUP,KC_PGDN,KC_HOME,KC_END ,KC_PGDN,KC_PGUP,_______,_______,_______,_______,KC_DEL ,\
21 KC_CAPS,KC_NUBS,KC_LEFT,KC_UP ,KC_DOWN,KC_RGHT,KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT,_______,_______,_______,_______,\
22 _______,_______,BL_TOGG,BL_INC ,BL_DEC ,_______,_______,KC_VOLD,KC_VOLU,KC_MUTE,_______,_______,_______,_______,\
23 _______,_______,_______, _______, _______,_______,_______,_______),
24
25[2] = LAYOUT_all(
26 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET ,\
27 KC_BTN5,KC_BTN4,KC_BTN3,KC_BTN2,KC_BTN1,KC_HOME,KC_END ,_______,_______,_______,_______,_______,_______,_______,\
28 _______,_______,KC_WH_L,KC_WH_U,KC_WH_D,KC_WH_R,KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,_______,_______,_______,_______,\
29 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\
30 _______,_______,_______, _______, _______,_______,_______,_______),
31
32
33};
diff --git a/keyboards/gh60/satan/keymaps/fakb/readme.md b/keyboards/gh60/satan/keymaps/fakb/readme.md
new file mode 100644
index 000000000..b02b41816
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/fakb/readme.md
@@ -0,0 +1,58 @@
1# FabulousAnomalyKeyBoard
2
3This layout features an efficient layout for people without
4a mouse.
5
6## layers
7
8Layer Base: complete basic keyboard
9Layer Fn-Tab: F1-F12, Arrow Keys, Home, End, Backlight, Media
10Layer Fn-Space: mouse keys in a vim like manner
11
12For detailed info check out keymap.c
13
14## the CTRL key
15
16It is where you would suspect CAPSLOCK to be.
17WHO NEEDS CAPSLOCK ANYWAYS?
18For those rare cases you need to shout at somebody in a comment
19section you can still do a capslock by using TABCTRL
20
21## the SUPER key
22
23There are two super keys. They are next to the space bar.
24The intention is easing the use of tiling window mangers
25
26## emergency mouse
27
28Without a mouse you will find yourself in a situation where all
29your tiling goodness will just not be able to click onto that
30"close ads" button.
31This keymap integrates a basic mouse pointer directly into the keyboard.
32Mouse is accessible via holding SPACE and tapping keys:
33```
34SPACE
35h Move cursor left
36j Move cursor down
37k Move cursor up
38l Move cursor right
39
40w Middle Mouse Click
41r Right click
42e Left click
43
44s Scroll wheel left
45d Scroll wheel down
46f Scroll wheel up
47g Scroll wheel right
48```
49
50## shell focused
51
52Working in a shell the up and down arrow keys are often needed to
53look at old commands or reuse some.
54When held, the left ctrl and left shift will act as expected,
55but when tapped they will become UP and DOWN arrow-keys.
56
57## krautfriend
58The keys <|> are accessible even without a 102nd key
diff --git a/keyboards/gh60/satan/keymaps/fakb/rules.mk b/keyboards/gh60/satan/keymaps/fakb/rules.mk
new file mode 100644
index 000000000..a0d244799
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/fakb/rules.mk
@@ -0,0 +1,13 @@
1BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
2MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
3EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
4CONSOLE_ENABLE = no # Console for debug(+400)
5COMMAND_ENABLE = no # Commands for debug and configuration
6NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
7RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870)
8BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150)
9MIDI_ENABLE = no # MIDI controls
10AUDIO_ENABLE = no
11UNICODE_ENABLE = no # Unicode
12BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
13
diff --git a/keyboards/gh60/satan/keymaps/hhkb_7u/keymap.c b/keyboards/gh60/satan/keymaps/hhkb_7u/keymap.c
new file mode 100644
index 000000000..b0bc48b45
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/hhkb_7u/keymap.c
@@ -0,0 +1,56 @@
1#include QMK_KEYBOARD_H
2#include "action_layer.h"
3
4#define _DEFAULT 0
5#define _FN 1
6
7enum planck_keycodes {
8 DEFAULT = SAFE_RANGE
9};
10
11// Fillers to make layering more clear
12#define ______ KC_TRNS
13
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15/* Qwerty gui/alt/space/alt/gui
16 * ,-----------------------------------------------------------------------------------------.
17 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
18 * |-----------------------------------------------------------------------------------------+
19 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
20 * |-----------------------------------------------------------------------------------------+
21 * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
22 * |-----------------------------------------------------------------------------------------+
23 * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
24 * |-----------------------------------------------------------------------------------------+
25 * |LGUI | LAlt | 7U Space | RAlt |RGUI |
26 * `-----------------------------------------------------------------'
27 */
28 [_DEFAULT] = LAYOUT_60_hhkb( /* Basic QWERTY */
29 KC_ESC, 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_BSLS, KC_GRV, \
30 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_BSPC, \
31 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
32 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), \
33 ______, KC_LGUI,KC_LALT, KC_SPC, ______,KC_RALT, KC_RGUI, ______ \
34 ),
35
36/* FN Layer
37 * ,-----------------------------------------------------------------------------------------.
38 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
39 * |-----------------------------------------------------------------------------------------+
40 * | CAPS | | | | | | | | Psc | Slck| Paus| Up | | |
41 * |-----------------------------------------------------------------------------------------+
42 * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| |
43 * |-----------------------------------------------------------------------------------------+
44 * | | BL | BL- | BL+ | | | + | - | End |PgDn| Down| | |
45 * |-----------------------------------------------------------------------------------------+
46 * | | | | | |
47 * `-----------------------------------------------------------------'
48 */
49 [_FN] = LAYOUT_60_hhkb( /* Layer 1 */
50 ______, 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_DEL, \
51 KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \
52 ______, KC_VOLD,KC_VOLU,KC_MUTE,______, ______, KC_PAST,KC_PSLS,KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, \
53 ______, BL_DEC,BL_INC,BL_TOGG,______, ______, KC_PPLS,KC_PMNS,KC_END, KC_PGDN, KC_DOWN, ______, ______, \
54 ______, ______, ______, ______, ______, ______, ______, ______ \
55 )
56};
diff --git a/keyboards/gh60/satan/keymaps/hhkb_7u/readme.md b/keyboards/gh60/satan/keymaps/hhkb_7u/readme.md
new file mode 100644
index 000000000..39e71beed
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/hhkb_7u/readme.md
@@ -0,0 +1,9 @@
1# Dbroqua HHKB like Layout
2
3Like the HHKB but with a Satan GH60 PCB :D.
4
5# Programming Instructions:
6Enter into programming mode and run the following command.
7```
8$ sudo KEYMAP=dbroqua_hhkb make dfu
9``` \ No newline at end of file
diff --git a/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c b/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c
new file mode 100644
index 000000000..46d66e5db
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c
@@ -0,0 +1,122 @@
1#include QMK_KEYBOARD_H
2
3// Used for SHIFT_ESC
4#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
5
6// Each layer gets a name for readability, which is then used in the keymap matrix below.
7// The underscores don't mean anything - you can have a layer called STUFF or any other name.
8// Layer names don't all need to be of the same length, obviously, and you can also skip them
9// entirely and just use numbers.
10#define _BL 0
11#define _FL 1
12
13enum custom_keycodes {
14 KC_ENYE = SAFE_RANGE,
15 KC_CEDL
16};
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Keymap _BL: (Base Layer) Default Layer
20 * ,-----------------------------------------------------------.
21 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
22 * |-----------------------------------------------------------|
23 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Ret |
24 * |-------------------------------------------------------. |
25 * |Ctrl | A| S| D| F| G| H| J| K| L| Ñ| ;| ' |urn|
26 * |-----------------------------------------------------------|
27 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Fn|
28 * |-----------------------------------------------------------|
29 * | |Alt|WinK | Space |WinK |Alt| |
30 * `-----------------------------------------------------------'
31 *
32 */
33 [_BL] = LAYOUT_60_iso_split_rshift( \
34 F(0), 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,
35 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,
36 KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENYE, KC_SCLN, KC_QUOT, KC_ENT,
37 OSM(MOD_LSFT), _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT), MO(_FL),
38 _______, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, KC_RGUI, _______
39 ),
40
41 /* Keymap _FL: (Function Layer) Second Layer
42 * ,-----------------------------------------------------------.
43 * | |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|PSR| RESET|
44 * |-----------------------------------------------------------|
45 * | | |VUP| | | | | | | | | | | |
46 * |-------------------------------------------------------. |
47 * |CapsLck|PRV|VDN|NXT| |RGB|FRW|BRT|VAI|VAD|INC|DEC| | |
48 * |-----------------------------------------------------------|
49 * | | | | Ç| |BTG| |MUT| | | | | |
50 * |-----------------------------------------------------------|
51 * | | | | PLY/PAU | | | |
52 * `-----------------------------------------------------------'
53 */
54 [_FL] = LAYOUT_60_iso_split_rshift(\
55 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR, RESET,
56 _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
57 KC_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, RGB_TOG, RGB_MOD, RGB_M_B, RGB_VAI, RGB_VAD, BL_INC, BL_DEC, _______,
58 _______, _______, _______, _______, KC_CEDL, _______, BL_TOGG, _______, KC_MUTE, _______, _______, _______, _______, _______,
59 _______, _______, _______, KC_MPLY, _______, _______, _______, _______
60 )
61
62};
63
64enum function_id {
65 SHIFT_ESC,
66};
67
68const uint16_t PROGMEM fn_actions[] = {
69 [0] = ACTION_FUNCTION(SHIFT_ESC),
70};
71
72void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
73 static uint8_t shift_esc_shift_mask;
74 switch (id) {
75 case SHIFT_ESC:
76 shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
77 if (record->event.pressed) {
78 if (shift_esc_shift_mask) {
79 add_key(KC_GRV);
80 send_keyboard_report();
81 } else {
82 add_key(KC_ESC);
83 send_keyboard_report();
84 }
85 } else {
86 if (shift_esc_shift_mask) {
87 del_key(KC_GRV);
88 send_keyboard_report();
89 } else {
90 del_key(KC_ESC);
91 send_keyboard_report();
92 }
93 }
94 break;
95 }
96};
97
98bool process_record_user(uint16_t keycode, keyrecord_t *record) {
99 if (record->event.pressed) {
100 switch(keycode) {
101 case KC_ENYE: // Ñ
102 register_code16(KC_LALT);
103 tap_code(KC_KP_0);
104 tap_code(KC_KP_2);
105 tap_code(KC_KP_4);
106 tap_code(KC_KP_1);
107 unregister_code16(KC_LALT);
108 return false;
109 case KC_CEDL: // Ç
110 register_code16(KC_LALT);
111 tap_code(KC_KP_0);
112 tap_code(KC_KP_2);
113 tap_code(KC_KP_3);
114 tap_code(KC_KP_1);
115 unregister_code16(KC_LALT);
116 return false;
117 default:
118 return true;
119 }
120 }
121 return true;
122};
diff --git a/keyboards/gh60/satan/keymaps/isoHHKB/readme.md b/keyboards/gh60/satan/keymaps/isoHHKB/readme.md
new file mode 100644
index 000000000..64911a043
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/isoHHKB/readme.md
@@ -0,0 +1,60 @@
1# HKKB-ISO Satan Layout by Stunny
2
3This layout combines the split Right Shift ISO layout with the popular HHKB layout. The Caps Lock key will be replaced in the default layout by the Control key, which is more convenient for some people.
4
5This version is designed to have in its base layer letter 'Ñ' for Spanish writing. Also, 'ç' is included for those who have to write in French, Catalan or other languages that may need it.
6
7This keymap also supports control for a WS2812B RGB led strip connected to pin E2 of the microcontroller. If you want more functionalities, pls check RGB documentation at [QMK Docs]( https://docs.qmk.fm/feature_rgblight.html#rgb-lighting). This also goes for backlighting functionalities. If you want more control, check [QMK Docs](https://docs.qmk.fm/feature_backlight.html#backlighting) on that.
8
9
10## Layout
11
12The keymap is programmed in the `LAYOUT_60_iso_split_rshift` matrix, but the physical layout combines ISO Enter, ANSI left shift, 2u Backspace, split right shift, and a 7u space bar with two modifiers on either side.
13
14Base Layer:
15
16```
17,-----------------------------------------------------------.
18|Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
19|-----------------------------------------------------------|
20|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Ret |
21|------------------------------------------------------. |
22|Ctrl | A| S| D| F| G| H| J| K| L| Ñ| ;| ' |urn |
23|-----------------------------------------------------------|
24|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Fn|
25|-----------------------------------------------------------|
26| |Alt|LGUI | Space |RGUI |Alt| |
27`-----------------------------------------------------------'
28```
29
30Function Layer
31```
32,-----------------------------------------------------------.
33| | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|PSR| RESET|
34|-----------------------------------------------------------|
35| | |VUP| | | | | | | | | | | |
36|-------------------------------------------------------. |
37|CapsLck|PRV|VDN|NXT| |RGB|FRW|BRT|VAI|VAD|INC|DEC| | |
38|-----------------------------------------------------------|
39| | | | Ç| |BTG| |MUT| | | | | |
40|-----------------------------------------------------------|
41| | | | PLY/PAU | | | |
42`-----------------------------------------------------------'
43```
44
45Where:
46- `PRV` is `KC_MEDIA_PREV_TRACK`
47- `NXT` is `KC_MEDIA_NEXT_TRACK`
48- `VUP` is `KC_AUDIO_VOL_UP`
49- `VDN` is `KC_AUDIO_VOL_DOWN`
50- `MUT` is `KC_AUDIO_MUTE`
51- `PLY/PAU` is `KC_MEDIA_PLAY_PAUSE`
52- `BTG` is `BL_TOGG` (toggles key backlighting)
53- `INC` increases backlighting brightness
54- `DEC` decreases backlighting brightness
55- `PSR` is `KC_PSCREEN`
56- `RGB` is `RGB_TOG`
57- `FRW` jumps to next RGB mode
58- `BRT` activates RGB breathing mode directly
59- `VAI` increases RGB brightness
60- `VAD` decreases RGB brightness
diff --git a/keyboards/gh60/satan/keymaps/isoHHKB/rules.mk b/keyboards/gh60/satan/keymaps/isoHHKB/rules.mk
new file mode 100644
index 000000000..08e77f9eb
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/isoHHKB/rules.mk
@@ -0,0 +1,18 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/gh60/satan/keymaps/iso_split_rshift/.gitignore b/keyboards/gh60/satan/keymaps/iso_split_rshift/.gitignore
new file mode 100644
index 000000000..4d652661c
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/iso_split_rshift/.gitignore
@@ -0,0 +1,3 @@
1updatemerge.sh
2clear_flash.hex
3resetboard.sh
diff --git a/keyboards/gh60/satan/keymaps/iso_split_rshift/build.sh b/keyboards/gh60/satan/keymaps/iso_split_rshift/build.sh
new file mode 100755
index 000000000..6b4b4568f
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/iso_split_rshift/build.sh
@@ -0,0 +1,42 @@
1#!/bin/bash
2# adjust for cpu
3# -j 16 gave best result on a hyperthreaded quad core core i7
4
5LIMIT=10
6THREADS="-j 16"
7KMAP=iso_split_rshift
8
9echo "We need sudo later"
10sudo ls 2>&1 /dev/null
11
12function wait_bootloader {
13 echo "Waiting for Bootloader..."
14 local STARTTIME=$(date +"%s")
15 local REMIND=0
16 local EXEC=dfu-programmer
17 local TARGET=atmega32u4
18 while true
19 do
20 sudo $EXEC $TARGET get > /dev/null 2>&1
21 [ $? -eq 0 ] && break
22 ENDTIME=$(date +"%s")
23 DURATION=$(($ENDTIME-$STARTTIME))
24 if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ]
25 then
26 echo "Did you forget to press the reset button?"
27 REMIND=1
28 fi
29 sleep 1
30 done
31}
32make clean
33make KEYMAP=${KMAP} ${THREADS}
34if [[ $? -eq 0 ]]
35then
36 echo "please trigger flashing!"
37 wait_bootloader
38 sudo make KEYMAP=${KMAP} dfu ${THREADS}
39else
40 echo "make failed"
41 exit 77
42fi
diff --git a/keyboards/gh60/satan/keymaps/iso_split_rshift/config.h b/keyboards/gh60/satan/keymaps/iso_split_rshift/config.h
new file mode 100644
index 000000000..27c1372da
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/iso_split_rshift/config.h
@@ -0,0 +1,27 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_USER_H
19#define CONFIG_USER_H
20
21#include "../../config.h"
22
23// only change
24#undef RGB_DI_PIN
25#define RGB_DI_PIN B2
26
27#endif
diff --git a/keyboards/gh60/satan/keymaps/iso_split_rshift/keymap.c b/keyboards/gh60/satan/keymaps/iso_split_rshift/keymap.c
new file mode 100644
index 000000000..a21f83505
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/iso_split_rshift/keymap.c
@@ -0,0 +1,115 @@
1
2#include QMK_KEYBOARD_H
3
4// TODO: replace your ugly german brckets with #defines
5
6// Each layer gets a name for readability, which is then used in the keymap matrix below.
7// The underscores don't mean anything - you can have a layer called STUFF or any other name.
8// Layer names don't all need to be of the same length, obviously, and you can also skip them
9// entirely and just use numbers.
10#define _DEF 0
11#define _SPC 1
12#define _TAB 2
13#define _SFX 3
14
15// dual-role shortcuts
16#define TABDUAL LT(_TAB, KC_TAB)
17#define CAPSDUAL CTL_T(KC_ESC)
18#define SPACEDUAL LT(_SPC, KC_SPACE)
19#define ENTERDUAL CTL_T(KC_ENT)
20// arrow cluster duality bottom right corner
21#define ARRLEFT ALT_T(KC_LEFT)
22#define ARRDOWN GUI_T(KC_DOWN)
23#define ARRUP SFT_T(KC_UP)
24#define ARRRIGHT CTL_T(KC_RIGHT)
25// german brackets
26#define GER_CUR_L RALT(KC_7) // [
27#define GER_CUR_R RALT(KC_0) // ]
28#define GER_PAR_L LSFT(KC_8) // (
29#define GER_PAR_R LSFT(KC_9) // )
30#define GER_ANG_L KC_NUBS // <
31#define GER_ANG_R LSFT(KC_NUBS) // >
32#define GER_BRC_L RALT(KC_8) // [
33#define GER_BRC_R RALT(KC_9) // ]
34
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36 /* Keymap _DEF: Default Layer
37 * ,-----------------------------------------------------------.
38 * |Grv| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
39 * |-----------------------------------------------------------|
40 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | Tab is Fn1
41 * |-----------------------------------------------------------|
42 * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| Return |
43 * |-----------------------------------------------------------|
44 * |Sft | < | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn2| RShift is UP
45 * |-----------------------------------------------------------|
46 * |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl| Gui Menu, RCtrl is
47 * `-----------------------------------------------------------' LEFT DWN RIGHT
48 */
49 [_DEF] = LAYOUT_60_iso_split_rshift(
50 KC_GRV, 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, \
51 TABDUAL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, \
52 CAPSDUAL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, ENTERDUAL, \
53 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, ARRUP, TG(_SFX), \
54 KC_LCTL, KC_LGUI, KC_LALT, SPACEDUAL, KC_RALT, ARRLEFT, ARRDOWN, ARRRIGHT),
55
56 /* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
57 * ,-----------------------------------------------------------.
58 * |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete|
59 * |-----------------------------------------------------------|
60 * | |Paus| Up| [ | ] | | | | ( | ) | | | | |
61 * |-----------------------------------------------------------|
62 * | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY |
63 * |-----------------------------------------------------------|
64 * | | | | | < | > | |M0 | | | | | Vol+ | |
65 * |-----------------------------------------------------------|
66 * | | | | |Alt |Prev|Vol-|Next|
67 * `-----------------------------------------------------------'
68 */
69 [_SPC] = LAYOUT_60_iso_split_rshift(
70 KC_PSCR, 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_DEL, \
71 _______, KC_PAUS, KC_UP, GER_BRC_L, GER_BRC_R, _______, _______, GER_PAR_L, GER_PAR_R, _______, _______, _______, _______, \
72 _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_MPLY, \
73 _______, _______, _______, _______, GER_ANG_L, GER_ANG_R, KC_SPACE, RALT(KC_SPC),_______, _______, _______, _______, KC_VOLU, _______, \
74 _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
75
76 /* Keymap 2: Tab Layer w/ vim pageup, modified with Tab (by holding tab)
77 * ,-----------------------------------------------------------.
78 * |WAKE| | | | | | | | | | | | |Insert| TAB+GRC = WAKE
79 * |-----------------------------------------------------------|
80 * | | | | | | | | | { | } | | | | |
81 * |-----------------------------------------------------------|
82 * | | | | | | |Pos1|PgDn|PgUp|End| | |Retrn |
83 * |-----------------------------------------------------------|
84 * | | | | | | | |AF2| | | | | PgUp | |
85 * |-----------------------------------------------------------|
86 * | | | | |Alt |Pos1|PgDn|End |
87 * `-----------------------------------------------------------'
88 */
89 [_TAB] = LAYOUT_60_iso_split_rshift(
90 KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, \
91 _______, _______, _______, _______, _______, _______, _______, GER_CUR_L, GER_CUR_R, _______, _______, _______, _______, \
92 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, KC_ENT, \
93 _______, _______, _______, _______, _______, _______, _______, A(KC_F2), _______, _______, _______, _______, KC_PGUP, _______, \
94 _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END),
95
96 /* Keymap 3: Split right shift Numpad toggle Layer (by tapping the split rshift key)
97 * ,-----------------------------------------------------------.
98 * |RSET| | | | | | | 7| 8| 9| | | |Backsp |
99 * |-----------------------------------------------------------|
100 * | | | | | | | | 4 | 5 | 6 | | | | \ |
101 * |-----------------------------------------------------------|
102 * | | L | L | | | | | 1 | 2 | 3 | | | Return |
103 * |-----------------------------------------------------------|
104 * | | | L | L | L | L | L | L | | 0 | | /| Up | | All "L"s represent
105 * |-----------------------------------------------------------| LED controlling
106 * |Ctrl|Win |Alt | |Alt |Left|Down|Right|
107 * `-----------------------------------------------------------'
108 */
109 [_SFX] = LAYOUT_60_iso_split_rshift(
110 RESET, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, KC_BSPC, \
111 _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, \
112 _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, XXXXXXX, KC_ENT, \
113 _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_0, _______, KC_SLSH, KC_UP, _______, \
114 _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT),
115};
diff --git a/keyboards/gh60/satan/keymaps/iso_split_rshift/readme.md b/keyboards/gh60/satan/keymaps/iso_split_rshift/readme.md
new file mode 100644
index 000000000..480491f5a
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/iso_split_rshift/readme.md
@@ -0,0 +1,36 @@
1toneman77's Satan Layout
2=====================
3
4##Quantum MK Firmware
5For the full Quantum feature list, see the parent readme.md.
6
7* heavily modified ISO (!) layout with split right shift key
8* spaceFn
9* Dual-Role keys:
10*
11 | Original key | when tapped | when held |
12 | ---------------- | ------------- | ------------- |
13 | Space | Space | layer change |
14 | Caps lock | Escape | Control |
15 | Tab | Tab | layer change |
16 | Enter | Enter | Control |
17
18* Lockable layer for LED functions and numpad
19* vim-style arrow keys on hjkl (spacefn layer)
20* corresponding Home/PgDn/PgUp/End on hjkl (tab layer)
21* bonus arrow keys in the bottom right corner on Alt/Win/Menu/rCtrl/Shift
22* more bonus arrow keys on wasd (spacefn layer)
23* media keys prev/next/play/vol+/vol- (spacefn layer)
24* firmware bootloader button
25* WS2812 RGB Underglow Support (not needed anymore to solder directly to the atmega)
26* additional brackets that only work in german layout due to horrible placement
27in the default qwertz layout
28
29
30### Additional Credits
31* Keymap has been based on TerryMathews' fork of Aqoush's fork of qmk-satan-rgb. [here](https://github.com/TerryMathews/qmk-satan-rgb/tree/master/keyboard/satan)
32* nice visualization of the layers [here](http://www.keyboard-layout-editor.com/#/gists/aba4e4396459ede85bc66a22cee88e48)
33* no-need-to-solder-on-chip picture:
34![no need to solder directly on the chip anymore](https://i.imgur.com/AitpDoB.jpg)
35* special thanks to /u/TerryMathews who suggested the pin PB2, so soldering
36directly on the atmega is not needed anymore. Happened on [reddit](https://www.reddit.com/r/MechanicalKeyboards/comments/4ghq9z/photos_satan_rgb60_w1976/d2k5tra)
diff --git a/keyboards/gh60/satan/keymaps/iso_split_rshift/rules.mk b/keyboards/gh60/satan/keymaps/iso_split_rshift/rules.mk
new file mode 100644
index 000000000..15cabfcd8
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/iso_split_rshift/rules.mk
@@ -0,0 +1,13 @@
1BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
2MOUSEKEY_ENABLE = no # Mouse keys(+4700)
3EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
4CONSOLE_ENABLE = yes # Console for debug(+400)
5COMMAND_ENABLE = yes # Commands for debug and configuration
6NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
7RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
8BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150)
9MIDI_ENABLE = no # MIDI controls
10AUDIO_ENABLE = no
11UNICODE_ENABLE = no # Unicode
12BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
13
diff --git a/keyboards/gh60/satan/keymaps/jarred/keymap.c b/keyboards/gh60/satan/keymaps/jarred/keymap.c
new file mode 100644
index 000000000..c6852e4eb
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/jarred/keymap.c
@@ -0,0 +1,22 @@
1#include QMK_KEYBOARD_H
2
3#define _QW 0
4#define _NV 1
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7
8[_QW] = LAYOUT_60_ansi(
9 KC_ESC, 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, \
10 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_BSLS, \
11 MO(_NV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
12 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \
13 KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL),
14
15[_NV] = LAYOUT_60_ansi(
16 KC_GRV ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,_______, \
17 _______,_______,_______,_______,KC_DEL ,KC_BSPC,_______,KC_HOME,KC_UP ,KC_END ,KC_INS ,_______,_______,_______, \
18 _______,_______,_______,KC_LSFT,KC_LCTL,KC_ENT ,_______,KC_LEFT,KC_DOWN,KC_RGHT,KC_DEL ,KC_DEL , _______, \
19 _______,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______,_______,_______, \
20 _______,_______,_______, _______, _______,_______, RESET, _______),
21
22};
diff --git a/keyboards/gh60/satan/keymaps/jarred/readme.md b/keyboards/gh60/satan/keymaps/jarred/readme.md
new file mode 100644
index 000000000..522cb19b6
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/jarred/readme.md
@@ -0,0 +1 @@
# Jarred's Satan GH60 layout
diff --git a/keyboards/gh60/satan/keymaps/lepa/keymap.c b/keyboards/gh60/satan/keymaps/lepa/keymap.c
new file mode 100644
index 000000000..85fdb743d
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/lepa/keymap.c
@@ -0,0 +1,146 @@
1#include QMK_KEYBOARD_H
2
3#define MY_ESC LT(1, KC_ESC)
4#define MY_ENT LT(1, KC_ENT)
5#define MY_APP LT(2, KC_APP)
6
7#define MY_LCA TD(TD_LCTL_ALT)
8#define MY_RCA TD(TD_RCTL_ALT)
9#define MY_LGA TD(TD_LGUI_ALT)
10#define MY_RGA TD(TD_RGUI_ALT)
11#define MY_LCG TD(TD_LCTL_GUI)
12#define MY_RCG TD(TD_RCTL_GUI)
13#define MY_LSH TD(TD_LSFT_HPR)
14#define MY_RSH TD(TD_RSFT_HPR)
15
16enum {
17 TD_LCTL_ALT,
18 TD_RCTL_ALT,
19 TD_LGUI_ALT,
20 TD_RGUI_ALT,
21 TD_LCTL_GUI,
22 TD_RCTL_GUI,
23 TD_LSFT_HPR,
24 TD_RSFT_HPR
25};
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28 LAYOUT_60_ansi(
29 KC_GRV, 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,
30 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_BSLS,
31 MY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MY_ENT,
32 MY_LSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MY_RSH,
33 MY_LGA, MY_LCG, MY_LCA, KC_SPC, MY_RCA, MY_RCG, MY_APP, MY_RGA),
34
35 LAYOUT_60_ansi(
36 KC_TRNS, 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_DEL,
37 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,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
41
42 LAYOUT_60_ansi(
43 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,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, DEBUG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
48};
49
50enum {
51 SINGLE_TAP = 1,
52 SINGLE_HOLD = 2,
53 DOUBLE_TAP = 3,
54 DOUBLE_HOLD = 4,
55 DOUBLE_SINGLE_TAP = 5,
56 UNKNOWN_TAP = 6
57};
58
59typedef struct {
60 bool is_press_action;
61 int state;
62} tap;
63
64int cur_dance(qk_tap_dance_state_t *state) {
65 switch (state->count) {
66 case 1:
67 if (state->interrupted || state->pressed == 0) {
68 return SINGLE_TAP;
69 }
70 return SINGLE_HOLD;
71 case 2:
72 if (state->interrupted) {
73 return DOUBLE_SINGLE_TAP;
74 }
75 if (state->pressed) {
76 return DOUBLE_HOLD;
77 }
78 return DOUBLE_TAP;
79 }
80 return UNKNOWN_TAP;
81}
82
83#define my_dance_combo(N, K0, REGFN, UNREGFN) my_dance_combo_expanded(N, K0, REGFN, UNREGFN)
84#define my_dance_combo_expanded(N, K0, REGFN, UNREGFN) \
85static tap N ## _state = { \
86 .is_press_action = true, \
87 .state = 0 \
88}; \
89 \
90void N ## _finished(qk_tap_dance_state_t *state, void *user_data) { \
91 N ## _state.state = cur_dance(state); \
92 switch (N ## _state.state) { \
93 case SINGLE_TAP: case SINGLE_HOLD: \
94 register_code(K0); \
95 break; \
96 case DOUBLE_TAP: case DOUBLE_SINGLE_TAP: case DOUBLE_HOLD: \
97 register_code(K0); \
98 REGFN; \
99 break; \
100 } \
101} \
102 \
103void N ## _reset(qk_tap_dance_state_t *state, void *user_data) { \
104 switch (N ## _state.state) { \
105 case SINGLE_TAP: case SINGLE_HOLD: \
106 unregister_code(K0); \
107 break; \
108 case DOUBLE_TAP: case DOUBLE_SINGLE_TAP: case DOUBLE_HOLD: \
109 UNREGFN; \
110 unregister_code(K0); \
111 break; \
112 } \
113 N ## _state.state = 0; \
114}
115
116#define my_dance_reg_code_1(K1) register_code(K1)
117#define my_dance_unreg_code_1(K1) unregister_code(K1)
118#define my_dance_combo_1(N, K0, K1) \
119 my_dance_combo(N, K0, my_dance_reg_code_1(K1), my_dance_unreg_code_1(K1))
120
121#define my_dance_reg_code_3(K1, K2, K3) \
122 do { register_code(K1); register_code(K2); register_code(K3); } while (0)
123#define my_dance_unreg_code_3(K1, K2, K3) \
124 do { unregister_code(K3); unregister_code(K2); unregister_code(K1); } while (0)
125#define my_dance_combo_3(N, K0, K1, K2, K3) \
126 my_dance_combo(N, K0, my_dance_reg_code_3(K1, K2, K3), my_dance_unreg_code_3(K1, K2, K3))
127
128my_dance_combo_1(lca, KC_LCTL, KC_LALT)
129my_dance_combo_1(rca, KC_RCTL, KC_RALT)
130my_dance_combo_1(lga, KC_LGUI, KC_LALT)
131my_dance_combo_1(rga, KC_RGUI, KC_RALT)
132my_dance_combo_1(lcg, KC_LCTL, KC_LGUI)
133my_dance_combo_1(rcg, KC_RCTL, KC_RGUI)
134my_dance_combo_3(lsh, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI)
135my_dance_combo_3(rsh, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI)
136
137qk_tap_dance_action_t tap_dance_actions[] = {
138 [TD_LCTL_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lca_finished, lca_reset),
139 [TD_RCTL_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rca_finished, rca_reset),
140 [TD_LGUI_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lga_finished, lga_reset),
141 [TD_RGUI_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rga_finished, rga_reset),
142 [TD_LCTL_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lcg_finished, lcg_reset),
143 [TD_RCTL_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rcg_finished, rcg_reset),
144 [TD_LSFT_HPR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lsh_finished, lsh_reset),
145 [TD_RSFT_HPR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rsh_finished, rsh_reset)
146};
diff --git a/keyboards/gh60/satan/keymaps/lepa/readme.md b/keyboards/gh60/satan/keymaps/lepa/readme.md
new file mode 100644
index 000000000..a53693d03
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/lepa/readme.md
@@ -0,0 +1,13 @@
1# Satan GH60 ANSI Layout that uses tap dance
2
3![Satan GH60 Image](https://i.imgur.com/T5FX7Sn.png)
4
5Notes:
6- Enter and Esc keys activate layer Fn1 when held, and work as usual when tapped.
7- Menu key activates layer Fn2 when held, and works as usual when tapped.
8- For the next keys a first key is used when held, and a second one is used when tapped 2 times:
9 - Shift and Hyper;
10 - Win and Win+Alt;
11 - Ctrl and Ctrl+Alt;
12 - Alt and Win+Ctrl.
13
diff --git a/keyboards/gh60/satan/keymaps/lepa/rules.mk b/keyboards/gh60/satan/keymaps/lepa/rules.mk
new file mode 100644
index 000000000..74a42b647
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/lepa/rules.mk
@@ -0,0 +1,19 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = no # Mouse keys(+4700)
7EXTRAKEY_ENABLE = no # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18TAP_DANCE_ENABLE = yes
19
diff --git a/keyboards/gh60/satan/keymaps/mark1/keymap.c b/keyboards/gh60/satan/keymaps/mark1/keymap.c
new file mode 100644
index 000000000..565a83fa9
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/mark1/keymap.c
@@ -0,0 +1,31 @@
1#include QMK_KEYBOARD_H
2
3
4#define KC_____ KC_TRNS
5#define KC_FN MO(1) // Fn
6#define KC_FNLK TG(1) // Fn lock
7#define KC_HOME LGUI(KC_LEFT) // Home, or cmd-left
8#define KC_END LGUI(KC_RGHT) // End, or cmd-right
9#define KC_SLP LGUI(LALT(KC_POWER)) // sleep, or cmd-option-power
10#define KC_SCLK LCTL(LSFT(KC_POWER)) // lock screen, or ctrl-shift-power
11
12// Mark I keyboard layout for GH60 Satan
13// http://www.keyboard-layout-editor.com/#/gists/e1cde292bd2094cc3b763206d4d2cfb5
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15 // 0: qwerty
16 [0] = LAYOUT_all(
17 KC_ESC, 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_NO,
18 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_BSLS,
19 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT,
20 KC_LSFT, KC_FN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_FN,
21 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, KC_FNLK
22 ),
23 // 1: fn layer
24 [1] = LAYOUT_all(
25 KC_GRV, 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_DEL, _______,
26 _______, KC_VOLU, _______, _______, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______,
27 _______, KC_VOLD, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______,
28 _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_SCLK, KC_SLP, _______, _______, _______,
29 _______, _______, _______, _______, _______, _______, _______, _______
30 )
31}; \ No newline at end of file
diff --git a/keyboards/gh60/satan/keymaps/mark1/readme.md b/keyboards/gh60/satan/keymaps/mark1/readme.md
new file mode 100644
index 000000000..060faf80c
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/mark1/readme.md
@@ -0,0 +1,5 @@
1# Mark I layout for GH60 Satan
2
3A Mac keyboard for touch typists who enjoy having a Fn key on both the left-hand and right-hand side.
4
5[Layout](http://www.keyboard-layout-editor.com/#/gists/e1cde292bd2094cc3b763206d4d2cfb5)
diff --git a/keyboards/gh60/satan/keymaps/midi/config.h b/keyboards/gh60/satan/keymaps/midi/config.h
new file mode 100644
index 000000000..8e10b04ec
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/midi/config.h
@@ -0,0 +1,29 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6/*
7 * MIDI options
8 */
9
10/* Prevent use of disabled MIDI features in the keymap */
11#define MIDI_ENABLE_STRICT 1
12
13/* enable basic MIDI features:
14 - MIDI notes can be sent when in Music mode is on
15*/
16#define MIDI_BASIC
17
18/* enable advanced MIDI features:
19 - MIDI notes can be added to the keymap
20 - Octave shift and transpose
21 - Virtual sustain, portamento, and modulation wheel
22 - etc.
23*/
24#define MIDI_ADVANCED
25
26/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
27#define MIDI_TONE_KEYCODE_OCTAVES 2
28
29#endif \ No newline at end of file
diff --git a/keyboards/gh60/satan/keymaps/midi/keymap.c b/keyboards/gh60/satan/keymaps/midi/keymap.c
new file mode 100644
index 000000000..141bef3d6
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/midi/keymap.c
@@ -0,0 +1,77 @@
1#include QMK_KEYBOARD_H
2
3
4// Each layer gets a name for readability, which is then used in the keymap matrix below.
5// The underscores don't mean anything - you can have a layer called STUFF or any other name.
6// Layer names don't all need to be of the same length, obviously, and you can also skip them
7// entirely and just use numbers.
8#define _BL 0
9#define _ML 1
10
11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12 /* Keymap _BL: (Base Layer) Default Layer
13 * ,-----------------------------------------------------------.
14 * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
15 * |-----------------------------------------------------------|
16 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
17 * |-----------------------------------------------------------|
18 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
19 * |-----------------------------------------------------------|
20 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
21 * |-----------------------------------------------------------|
22 * |Ctrl|Gui |Alt | Space |Alt |Gui |Midi|Ctrl |
23 * `-----------------------------------------------------------'
24 */
25 [_BL] = LAYOUT_60_ansi(
26 KC_ESC, 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,
27 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_BSLS,
28 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
29 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
30 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, TG(_ML), KC_RCTL
31 ),
32
33 #if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
34 /* Keymap _ML: MIDI Layer (Advanced)
35 * ,------------------------------------------------------------------------.
36 * | Exit | | | | | | | | | | | | | |
37 * |------------------------------------------------------------------------|
38 * | Ch+ | | C# | D# | | F# | G# | A# | | C# | D# | | | |
39 * |------------------------------------------------------------------------|
40 * | Mod | C | D | E | F | G | A | B | C | D | E | F | |
41 * |------------------------------------------------------------------------|
42 * | Sustain |Oct-|Oct+|Mod-|Mod+| | | |Tns-|Tns+|Tns0| Sustain |
43 * |------------------------------------------------------------------------|
44 * | | | | All notes off | | | | |
45 * `------------------------------------------------------------------------'
46 */
47 [_ML] = LAYOUT_60_ansi(
48 TG(_ML), MI_VEL_1, MI_VEL_2, MI_VEL_3, MI_VEL_4, MI_VEL_5, MI_VEL_6, MI_VEL_7, MI_VEL_8, MI_VEL_9, MI_VEL_10, XXXXXXX, XXXXXXX, XXXXXXX,
49 MI_CHU, XXXXXXX, MI_Cs, MI_Ds, XXXXXXX, MI_Fs, MI_Gs, MI_As, XXXXXXX, MI_Cs_1, MI_Ds_1, XXXXXXX, XXXXXXX, XXXXXXX,
50 MI_MOD, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C_1, MI_D_1, MI_E_1, MI_F_1, _______,
51 MI_SUS, MI_OCTD, MI_OCTU, MI_MODSD, MI_MODSU, XXXXXXX, XXXXXXX, XXXXXXX, MI_TRNSD, MI_TRNSU, MI_TRNS_0, MI_SUS,
52 _______, _______, _______, MI_ALLOFF, _______, _______, _______, _______
53 ),
54 #elif defined(MIDI_ENABLE) && defined(MIDI_BASIC)
55 /* Keymap _ML: MIDI Layer (Advanced)
56 * ,------------------------------------------------------------------------.
57 * | Exit | | | | | | | | | | | | | |
58 * |------------------------------------------------------------------------|
59 * | | | | | | | | | | | | | | |
60 * |------------------------------------------------------------------------|
61 * | | | | | | | | | | | | | |
62 * |------------------------------------------------------------------------|
63 * | |MuOn|MuOf|MiOn|MiOf| | | | | | | |
64 * |------------------------------------------------------------------------|
65 * | | | | | | | | |
66 * `------------------------------------------------------------------------'
67 */
68
69 [_ML] = LAYOUT_60_ansi(
70 TG(_ML), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
71 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
73 _______, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______,
74 _______, _______, _______, _______, _______, _______, _______, _______
75 ),
76 #endif
77};
diff --git a/keyboards/gh60/satan/keymaps/midi/readme.md b/keyboards/gh60/satan/keymaps/midi/readme.md
new file mode 100644
index 000000000..87844a854
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/midi/readme.md
@@ -0,0 +1 @@
# Satan GH60 layout demonstrating MIDI key mapping
diff --git a/keyboards/gh60/satan/keymaps/midi/rules.mk b/keyboards/gh60/satan/keymaps/midi/rules.mk
new file mode 100644
index 000000000..87025ed6f
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/midi/rules.mk
@@ -0,0 +1,18 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = yes # MIDI support (+2400 to 4200, depending on config)
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/gh60/satan/keymaps/no_caps_lock/keymap.c b/keyboards/gh60/satan/keymaps/no_caps_lock/keymap.c
new file mode 100644
index 000000000..48659bb66
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/no_caps_lock/keymap.c
@@ -0,0 +1,55 @@
1#include QMK_KEYBOARD_H
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7enum layer_names {
8 _BL,
9 _FL
10};
11
12const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13 /* Keymap _BL: (Base Layer) Default Layer
14 * ,-----------------------------------------------------------.
15 * | ~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp |
16 * |-----------------------------------------------------------|
17 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
18 * |-----------------------------------------------------------|
19 * |ESC | A| S| D| F| G| H| J| K| L| ;| '|Return |
20 * |-----------------------------------------------------------|
21 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
22 * |-----------------------------------------------------------|
23 * |Ctrl|Gui |Alt | Space |Alt |FL |Gui |FL(tgl)|
24 * `-----------------------------------------------------------'
25 */
26 [_BL] = LAYOUT_60_ansi(
27 KC_GRV, 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, \
28 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_BSLS, \
29 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
30 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
31 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RGUI, TG(_FL)
32 ),
33
34 /* Keymap _FL: Function Layer
35 * ,-----------------------------------------------------------.
36 * | | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL |
37 * |-----------------------------------------------------------|
38 * | |Home|PgUp| | | | | | | | |BR- |BR+ | |
39 * |-----------------------------------------------------------|
40 * | |End|PgDn| | | |Left|Down|Up|Right|Prv|Nxt|Ply |
41 * |-----------------------------------------------------------|
42 * | | | | | | | | |Vdn|Vup|Mute| |
43 * |-----------------------------------------------------------|
44 * | | | | | | | | |
45 * `-----------------------------------------------------------'
46 * hjkl for arrows because vim
47 */
48 [_FL] = LAYOUT_60_ansi(
49 KC_TRNS, 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_DEL, \
50 KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, \
51 KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MPRV, KC_MNXT, KC_MPLY, \
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, \
53 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
54 ),
55};
diff --git a/keyboards/gh60/satan/keymaps/no_caps_lock/readme.md b/keyboards/gh60/satan/keymaps/no_caps_lock/readme.md
new file mode 100644
index 000000000..b3bfe7988
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/no_caps_lock/readme.md
@@ -0,0 +1 @@
Standard layout with caps lock replaced by esc. Navigation and multimedia keys are on the second layer.
diff --git a/keyboards/gh60/satan/keymaps/olligranlund_iso/config.h b/keyboards/gh60/satan/keymaps/olligranlund_iso/config.h
new file mode 100644
index 000000000..eab4c8e97
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/olligranlund_iso/config.h
@@ -0,0 +1,17 @@
1// Backlight configuration
2#undef BACKLIGHT_LEVELS
3#define BACKLIGHT_LEVELS 10
4
5// Underlight configuration
6#undef RGB_DI_PIN
7#define RGB_DI_PIN B2
8#undef RGBLED_NUM
9#define RGBLED_NUM 16 // Number of LEDs
10#undef RGBLIGHT_HUE_STEP
11#define RGBLIGHT_HUE_STEP 8
12#undef RGBLIGHT_SAT_STEP
13#define RGBLIGHT_SAT_STEP 8
14#undef RGBLIGHT_VAL_STEP
15#define RGBLIGHT_VAL_STEP 8
16
17#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/gh60/satan/keymaps/olligranlund_iso/keymap.c b/keyboards/gh60/satan/keymaps/olligranlund_iso/keymap.c
new file mode 100644
index 000000000..789543b56
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/olligranlund_iso/keymap.c
@@ -0,0 +1,98 @@
1#include QMK_KEYBOARD_H
2
3#define BASE 0 // Default layer
4#define MOUSE 1 // Space layer
5#define NUMPAD 2 // Alt layer
6#define CAPS 3 // Caps layer
7
8// General shortenings
9#define ESCA KC_ESC
10#define MINS KC_MINS
11#define EQUL KC_EQL
12#define BSPC KC_BSPC
13#define DELE KC_DEL
14#define LBRC KC_LBRC
15#define RBRC KC_RBRC
16#define ALTR KC_RALT
17#define SCLN KC_SCLN
18#define QUOT KC_QUOT
19#define NUHS KC_NUHS
20#define ENTE KC_ENT
21#define NUBS KC_NUBS // Less/ greater sign
22#define COMM KC_COMM // Comma
23#define FSTO KC_DOT // Full stop
24#define SLSH KC_SLSH
25#define ALTL KC_LALT
26#define GUIL KC_LGUI
27#define GUIR KC_RGUI
28#define MENO KC_MENU
29
30// Special Actions and Media Keys
31#define INSE KC_INS // Insert here
32#define HOME KC_HOME // Go to beginning of line
33#define ENDI KC_END // go to end of line
34#define PSCR KC_PSCR // Print Screen
35#define SLCK KC_SLCK // go to end of line
36#define PGDN KC_PGDN // go to end of line
37#define PGUP KC_PGUP // go to end of line
38#define PLPS KC_MPLY // Play/Pause
39#define PAUS KC_PAUS // Pause button
40#define MUTE KC_MUTE // Mute sound
41#define VOLU KC_VOLU // Volume increase
42#define VOLD KC_VOLD // Volume decrease
43#define MNXT KC_MNXT // next track
44#define MPRV KC_MPRV // prev track
45#define MSTP KC_MSTP // stop playing
46#define MSEL KC_MSEL // Select media (Start playing it)
47#define MAIL KC_MAIL // Open default mail app
48#define CALC KC_CALC // Open default calculator app
49#define MYCM KC_MYCM // Open default file manager
50
51// increase readability
52#define XXXXX KC_NO
53
54const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
55
56/* Keymap BASE: (Base Layer) Default Layer
57 * ,-----------------------------------------------------------.
58 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
59 * |-----------------------------------------------------------|
60 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| R |
61 * |-----------------------------------------------------------|
62 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| # | R |
63 * |-----------------------------------------------------------|
64 * |Shft| \ | Z| X| C| V| B| N| M| ,| .| /|Shift |
65 * |-----------------------------------------------------------|
66 * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
67 * `-----------------------------------------------------------|
68 */
69
70[ BASE ] = KEYMAP_ISO_SPLITRSHIFT(
71 KC_ESC, 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, \
72 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, XXXXX, \
73 LT(CAPS, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_NUHS, KC_ENT, \
74 KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, XXXXX, \
75 KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(CAPS), TG(NUMPAD), TG(MOUSE)),
76
77[ MOUSE ] = KEYMAP( // Mouse controls
78 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXX,\
79 _______, _______, _______, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_U, KC_MS_BTN2, _______, _______, _______, _______,\
80 _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______,\
81 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXX,\
82 _______, _______, _______, _______, _______, _______, _______, _______),
83
84[ NUMPAD ] = KEYMAP( //Numpad and alt shortcuts
85 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXX,\
86 _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______,\
87 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______,\
88 _______, _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_7, KC_8, KC_9, KC_0, _______, _______, XXXXX,\
89 _______, _______, _______, _______, _______, _______, _______, _______),
90
91[ CAPS ] = KEYMAP( // Main "function" key, arrows, media control
92 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_DEL, XXXXX,\
93 _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, PGDN, KC_UP, PGUP, PSCR, SLCK, PAUS, _______,\
94 _______, KC__VOLDOWN, KC__MUTE, KC__VOLUP, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______,\
95 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXX,\
96 _______, _______, _______, _______, _______, _______, _______, _______)
97
98};
diff --git a/keyboards/gh60/satan/keymaps/olligranlund_iso/readme.md b/keyboards/gh60/satan/keymaps/olligranlund_iso/readme.md
new file mode 100644
index 000000000..e0801ef85
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/olligranlund_iso/readme.md
@@ -0,0 +1,18 @@
1# ISO layout for the Satan GH60
2### Originally by Ben James, forked by Oliver Granlund
3
4![Finished product](https://i.imgur.com/s5HAgr6.jpg)
5
6I've wanted to make this as close to a P0ker as possible, but some macros in
7the P0ker don't make sense...
8
9Some of the features:
10* Caps activates special features when held:
11 * Arrow keys directly under right hand
12 * Volume control
13 * Fn keys on number row
14 * PageUp/PageDn/Home/other general buttons
15* Mouse control
16* Numpad (works so much better if this would be ortho)
17### RGB-strip
18![Behind the scenes](https://i.imgur.com/reHLXrc.jpg)
diff --git a/keyboards/gh60/satan/keymaps/olligranlund_iso/rules.mk b/keyboards/gh60/satan/keymaps/olligranlund_iso/rules.mk
new file mode 100644
index 000000000..3d886f14f
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/olligranlund_iso/rules.mk
@@ -0,0 +1,17 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = no # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/gh60/satan/keymaps/poker/keymap.c b/keyboards/gh60/satan/keymaps/poker/keymap.c
new file mode 100644
index 000000000..13251a564
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/poker/keymap.c
@@ -0,0 +1,118 @@
1#include QMK_KEYBOARD_H
2
3
4// Used for SHIFT_ESC
5#define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
6
7// Each layer gets a name for readability, which is then used in the keymap matrix below.
8// The underscores don't mean anything - you can have a layer called STUFF or any other name.
9// Layer names don't all need to be of the same length, obviously, and you can also skip them
10// entirely and just use numbers.
11#define _BL 0
12#define _FL 1
13#define _RL 2
14
15enum custom_keycodes {
16 SFT_ESC = SAFE_RANGE
17};
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 /* Keymap _BL: (Base Layer) Default Layer
21 * ,-----------------------------------------------------------.
22 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
23 * |-----------------------------------------------------------|
24 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
25 * |-----------------------------------------------------------|
26 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
27 * |-----------------------------------------------------------|
28 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
29 * |-----------------------------------------------------------|
30 * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
31 * `-----------------------------------------------------------'
32 */
33 [_BL] = LAYOUT_60_ansi(
34 SFT_ESC, 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, \
35 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_BSLS, \
36 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
38 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_RL), MO(_FL), KC_RCTL
39 ),
40
41 /* Keymap _FL: Function Layer
42 * ,-----------------------------------------------------------.
43 * | ~ | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL |
44 * |-----------------------------------------------------------|
45 * | | |Up| | | |Cal| |Ins| |PrSc|Sclk|Paus| |
46 * |-----------------------------------------------------------|
47 * | |Left|Down|Rig| | | | | | |Home|PgUp| |
48 * |-----------------------------------------------------------|
49 * | | |App| | | |Vdn|Vup|Mute|End|PgDn| |
50 * |-----------------------------------------------------------|
51 * | | | | | | | | |
52 * `-----------------------------------------------------------'
53 */
54 [_FL] = LAYOUT_60_ansi(
55 KC_GRV, 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_DEL, \
56 _______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, \
57 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, \
58 _______, _______, KC_APP, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, \
59 _______, _______, _______, _______, _______, _______, _______, _______
60 ),
61
62 /* Keymap _RL: Function Layer
63 * ,-----------------------------------------------------------.
64 * | | | | | | | | | | | | | | RESET|
65 * |-----------------------------------------------------------|
66 * | | | | | | | | | | | |BL-|BL+|BL |
67 * |-----------------------------------------------------------|
68 * | | | | | | | | | | | | |
69 * |-----------------------------------------------------------|
70 * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | |
71 * |-----------------------------------------------------------|
72 * | | | | | | | | |
73 * `-----------------------------------------------------------'
74 */
75 [_RL] = LAYOUT_60_ansi(
76 #ifdef RGBLIGHT_ENABLE
77 KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, \
78 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, BL_TOGG, \
79 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
80 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, \
81 _______, _______, _______, _______, _______, _______, _______, _______
82 #else
83 KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, \
84 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, BL_TOGG, \
85 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
86 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
87 _______, _______, _______, _______, _______, _______, _______, _______
88 #endif
89 ),
90};
91
92bool process_record_user(uint16_t keycode, keyrecord_t *record) {
93 switch (keycode) {
94 case SFT_ESC:
95 if (record->event.pressed) {
96 if (get_mods() & MODS_SHIFT_MASK) {
97 add_key(KC_GRV);
98 send_keyboard_report();
99 } else {
100 add_key(KC_ESC);
101 send_keyboard_report();
102 }
103 } else {
104 if (get_mods() & MODS_SHIFT_MASK) {
105 del_key(KC_GRV);
106 send_keyboard_report();
107 } else {
108 del_key(KC_ESC);
109 send_keyboard_report();
110 }
111 }
112
113 return false;
114
115 default:
116 return true;
117 }
118}
diff --git a/keyboards/gh60/satan/keymaps/rask63/keymap.c b/keyboards/gh60/satan/keymaps/rask63/keymap.c
new file mode 100644
index 000000000..bbe15fde8
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/rask63/keymap.c
@@ -0,0 +1,83 @@
1#include QMK_KEYBOARD_H
2
3
4#define _BASE 0
5#define _FNO 1
6#define _FNT 2
7
8#define ________ KC_TRNS
9#define XXXXXXXX KC_NO
10
11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12
13 /*
14 * Base layer
15 *
16 * -------------------------------------------------------------------------------------------
17 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | Del |
18 * -------------------------------------------------------------------------------------------
19 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
20 * -------------------------------------------------------------------------------------------
21 * | Fn1 | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
22 * -------------------------------------------------------------------------------------------
23 * | Shift | Z | X | C | V | B | N | M | , | . | / | Up | Fn2 |
24 * -------------------------------------------------------------------------------------------
25 * | Ctrl | Win | Alt | Space | AltGr | Left | Down | Right |
26 * -------------------------------------------------------------------------------------------
27 */
28 [_BASE] = LAYOUT_60_ansi_split_bs_rshift(
29 KC_GRV, 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_BSLS, KC_DEL, \
30 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_BSPC, \
31 MO(_FNO), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
32 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(_FNT), \
33 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
34 ),
35
36 /*
37 * Fn1 layer
38 *
39 * -------------------------------------------------------------------------------------------
40 * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Prsc| Ins |
41 * -------------------------------------------------------------------------------------------
42 * | | | | | | | | | | | | | | |
43 * -------------------------------------------------------------------------------------------
44 * | NONE | | | | | | | | | | | | |
45 * -------------------------------------------------------------------------------------------
46 * | | | | | | | | | | | | PgUp | |
47 * -------------------------------------------------------------------------------------------
48 * | | | | | | Home | PgDn | End |
49 * -------------------------------------------------------------------------------------------
50 */
51 [_FNO] = LAYOUT_60_ansi_split_bs_rshift(
52 KC_ESC, 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_PSCR, KC_INS, \
53 ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, \
54 ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, \
55 ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, KC_PGUP, ________, \
56 ________, ________, ________, ________, ________, KC_HOME, KC_PGDN, KC_END
57 ),
58
59 /*
60 * Fn2 layer
61 *
62 * TODO: macro buttons
63 *
64 * -------------------------------------------------------------------------------------------
65 * | | | | | | | | | | | | | | | |
66 * -------------------------------------------------------------------------------------------
67 * | | | | | | | | | | Prev| Play| Next| | |
68 * -------------------------------------------------------------------------------------------
69 * | CapsLk | | | | | | | | | Vol-| Vol+| Mute| |
70 * -------------------------------------------------------------------------------------------
71 * | | | | | | | | | | Stop| | | NONE|
72 * -------------------------------------------------------------------------------------------
73 * | Reset | Menu | | | M1 | M2 | M3 | M4 |
74 * -------------------------------------------------------------------------------------------
75 */
76 [_FNT] = LAYOUT_60_ansi_split_bs_rshift(
77 ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, \
78 ________, ________, ________, ________, ________, ________, ________, ________, ________, KC_MPRV, KC_MPLY, KC_MNXT, ________, ________, \
79 KC_CAPS, ________, ________, ________, ________, ________, ________, ________, ________, KC_VOLD, KC_VOLU, KC_MUTE, ________, \
80 ________, ________, ________, ________, ________, ________, ________, ________, ________, KC_MSTP, ________, ________, ________, \
81 RESET, KC_MENU, ________, ________, ________, ________, ________, ________
82 ),
83};
diff --git a/keyboards/gh60/satan/keymaps/sethbc/keymap.c b/keyboards/gh60/satan/keymaps/sethbc/keymap.c
new file mode 100644
index 000000000..2a25b2b6b
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/sethbc/keymap.c
@@ -0,0 +1,85 @@
1#include QMK_KEYBOARD_H
2
3
4// Used for SHIFT_ESC
5#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
6
7// Each layer gets a name for readability, which is then used in the keymap matrix below.
8// The underscores don't mean anything - you can have a layer called STUFF or any other name.
9// Layer names don't all need to be of the same length, obviously, and you can also skip them
10// entirely and just use numbers.
11#define _BL 0
12#define _FL 1
13
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15 /* Keymap _BL: (Base Layer) Default Layer
16 * ,-----------------------------------------------------------.
17 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ |
18 * |-----------------------------------------------------------|
19 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|bksp |
20 * |-----------------------------------------------------------|
21 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
22 * |-----------------------------------------------------------|
23 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift| fn |
24 * |-----------------------------------------------------------|
25 * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
26 * `-----------------------------------------------------------'
27 */
28 [_BL] = LAYOUT_60_ansi_split_bs_rshift(
29 F(0), 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_BSLS, KC_GRV, \
30 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_BSPC, \
31 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
32 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), \
33 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MENU, KC_RCTL
34 ),
35
36 [_FL] = LAYOUT_60_ansi_split_bs_rshift(
37 #ifdef RGBLIGHT_ENABLE
38 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RESET, \
39 KC_CAPS, _______, RGB_TOG, RGB_MOD, RGB_HUI, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_DEL, \
40 _______, KC_VOLD, RGB_HUD, RGB_SAI, RGB_SAD, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
41 _______, RGB_VAI, RGB_VAD, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \
42 _______, _______, _______, _______, _______, _______, _______, _______
43 #else
44 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RESET, \
45 KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_DEL, \
46 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
47 _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \
48 _______, _______, _______, _______, _______, _______, _______, _______
49 #endif
50 ),
51};
52
53enum function_id {
54 SHIFT_ESC,
55};
56
57const uint16_t PROGMEM fn_actions[] = {
58 [0] = ACTION_FUNCTION(SHIFT_ESC),
59};
60
61void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
62 static uint8_t shift_esc_shift_mask;
63 switch (id) {
64 case SHIFT_ESC:
65 shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
66 if (record->event.pressed) {
67 if (shift_esc_shift_mask) {
68 add_key(KC_GRV);
69 send_keyboard_report();
70 } else {
71 add_key(KC_ESC);
72 send_keyboard_report();
73 }
74 } else {
75 if (shift_esc_shift_mask) {
76 del_key(KC_GRV);
77 send_keyboard_report();
78 } else {
79 del_key(KC_ESC);
80 send_keyboard_report();
81 }
82 }
83 break;
84 }
85}
diff --git a/keyboards/gh60/satan/keymaps/sethbc/readme.md b/keyboards/gh60/satan/keymaps/sethbc/readme.md
new file mode 100644
index 000000000..ed0eb8701
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/sethbc/readme.md
@@ -0,0 +1,3 @@
1# sethbc's Satan GH60 layout
2
3HHKB style split right shift and split backspace. Largely based on the HHKB layout.
diff --git a/keyboards/gh60/satan/keymaps/sethbc/rules.mk b/keyboards/gh60/satan/keymaps/sethbc/rules.mk
new file mode 100644
index 000000000..53644093d
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/sethbc/rules.mk
@@ -0,0 +1,18 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/gh60/satan/keymaps/smt/keymap.c b/keyboards/gh60/satan/keymaps/smt/keymap.c
new file mode 100644
index 000000000..8546211d5
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/smt/keymap.c
@@ -0,0 +1,142 @@
1#include QMK_KEYBOARD_H
2
3
4
5// Used for SHIFT_ESC
6#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
7
8// Each layer gets a name for readability, which is then used in the keymap matrix below.
9// The underscores don't mean anything - you can have a layer called STUFF or any other name.
10// Layer names don't all need to be of the same length, obviously, and you can also skip them
11// entirely and just use numbers.
12#define _QWERTY 0
13#define _COLEMAK 1
14#define _DVORAK 2
15#define _FUNC 3
16
17enum planck_keycodes {
18 QWERTY = SAFE_RANGE,
19 COLEMAK,
20 DVORAK
21};
22
23// Custom macros
24#define ALT_GRV ALT_T(KC_GRV) // Tap for Backtick, hold for Alt
25#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
26#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Shift+Alt)
27#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
28
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30 /* Keymap _QWERTY: (Base Layer) Default Layer
31 * ,-----------------------------------------------------------.
32 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
33 * |-----------------------------------------------------------|
34 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
35 * |-----------------------------------------------------------|
36 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
37 * |-----------------------------------------------------------|
38 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
39 * |-----------------------------------------------------------|
40 * |Ctrl|Gui |Alt | Space |Alt |Gui |Fn |Ctrl |
41 * `-----------------------------------------------------------'
42 */
43 [_QWERTY] = LAYOUT_60_ansi(
44 KC_GRV, 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, \
45 HPR_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_BSLS, \
46 CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
47 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \
48 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FUNC), KC_RCTL
49 ),
50
51 /* Keymap _COLEMAK: (Base Layer) Default Layer
52 * ,-----------------------------------------------------------.
53 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
54 * |-----------------------------------------------------------|
55 * |Tab | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \ |
56 * |-----------------------------------------------------------|
57 * |CAPS | A| R| S| T| D| H| N| E| I| O| '|Return |
58 * |-----------------------------------------------------------|
59 * |Shift | Z| X| C| V| B| K| M| ,| .| /|Shift |
60 * |-----------------------------------------------------------|
61 * |Ctrl|Gui |Alt | Space |Alt |Gui |Fn |Ctrl |
62 * `-----------------------------------------------------------'
63 */
64 [_COLEMAK] = LAYOUT_60_ansi(
65 KC_GRV, 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, \
66 HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, \
67 CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, \
68 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \
69 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FUNC), KC_RCTL
70 ),
71
72 /* Keymap _DVORAK: (Base Layer) Default Layer
73 * ,-----------------------------------------------------------.
74 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]|Backsp |
75 * |-----------------------------------------------------------|
76 * |HypTb| '| ,| .| P| Y| F| G| C| R| L| /| =| \ |
77 * |-----------------------------------------------------------|
78 * |CtrlEsc| A| O| E| U| I| D| H| T| N| S| -|Return |
79 * |-----------------------------------------------------------|
80 * |Shift | ;| Q| J| K| X| B| M| W| V| Z|ShiftEnter|
81 * |-----------------------------------------------------------|
82 * |Ctrl|Gui |Alt | Space |Alt |Gui |Fn |Ctrl |
83 * `-----------------------------------------------------------'
84 */
85 [_DVORAK] = LAYOUT_60_ansi(
86 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, \
87 HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, \
88 CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, \
89 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT, \
90 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FUNC), KC_RCTL
91 ),
92
93 /* Keymap _FUNC: Function Layer
94 * ,-----------------------------------------------------------.
95 * | | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
96 * |-----------------------------------------------------------|
97 * | |Hom| UP|End| | | |Qwt|Cmk|Dvk| |BL-|BL+|BL |
98 * |-----------------------------------------------------------|
99 * | |LFT| DN| RT| | |LFT| DN| UP| RT|Vo+|Pg+| |
100 * |-----------------------------------------------------------|
101 * | | | |Prv|Ply|Nxt| | | |Vo-|Pg-| |
102 * |-----------------------------------------------------------|
103 * |RESET| | | | | | | |
104 * `-----------------------------------------------------------'
105 */
106 [_FUNC] = LAYOUT_60_ansi(
107 _______, 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_DEL, \
108 _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, BL_DEC, BL_INC, BL_TOGG, \
109 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLU, KC_PGUP, _______, \
110 _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_VOLD, KC_PGDN, _______, \
111 RESET, _______, _______, _______, _______, _______, _______, _______
112 )
113};
114
115void persistent_default_layer_set(uint16_t default_layer) {
116 eeconfig_update_default_layer(default_layer);
117 default_layer_set(default_layer);
118}
119
120bool process_record_user(uint16_t keycode, keyrecord_t *record) {
121 switch (keycode) {
122 case QWERTY:
123 if (record->event.pressed) {
124 persistent_default_layer_set(1UL<<_QWERTY);
125 }
126 return false;
127 break;
128 case COLEMAK:
129 if (record->event.pressed) {
130 persistent_default_layer_set(1UL<<_COLEMAK);
131 }
132 return false;
133 break;
134 case DVORAK:
135 if (record->event.pressed) {
136 persistent_default_layer_set(1UL<<_DVORAK);
137 }
138 return false;
139 break;
140 }
141 return true;
142}
diff --git a/keyboards/gh60/satan/keymaps/smt/readme.md b/keyboards/gh60/satan/keymaps/smt/readme.md
new file mode 100644
index 000000000..7b706d601
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/smt/readme.md
@@ -0,0 +1 @@
# smt's Satan GH60 layout
diff --git a/keyboards/gh60/satan/keymaps/smt/rules.mk b/keyboards/gh60/satan/keymaps/smt/rules.mk
new file mode 100644
index 000000000..3fe140adc
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/smt/rules.mk
@@ -0,0 +1,18 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/gh60/satan/keymaps/spacemanspiff/keymap.c b/keyboards/gh60/satan/keymaps/spacemanspiff/keymap.c
new file mode 100644
index 000000000..8caa70e02
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/spacemanspiff/keymap.c
@@ -0,0 +1,75 @@
1#include QMK_KEYBOARD_H
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4#define _BL 0
5#define _FL 1
6#define _CL 3
7
8// Add names for complex momentary keys, to keep the keymap matrix aligned better.
9#define CTL_ESC MT(MOD_LCTL,KC_ESC)
10#define GUI_ENT MT(MOD_RGUI, KC_ENT)
11
12const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13 /* Keymap _BL: (Base Layer) Default Layer
14 * ,-----------------------------------------------------------.
15 * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0| -| =|Del |
16 * |-----------------------------------------------------------|
17 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
18 * |-----------------------------------------------------------|
19 * |Ctl/Esc| A| S| D| F| G| H| J| K| L| ;| '|Return |
20 * |-----------------------------------------------------------|
21 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
22 * |-----------------------------------------------------------|
23 * |Ctrl|Alt |Gui | Space |Gui |Alt |FN |Ctrl |
24 * `-----------------------------------------------------------'
25 */
26[_BL] = LAYOUT_60_ansi(
27 KC_GRV, 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, \
28 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_BSLS, \
29 CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
30 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
31 MO(_CL), KC_RALT, KC_LGUI, KC_SPC, GUI_ENT, KC_RALT, KC_RCTL, MO(_FL)),
32
33
34 /* Keymap _FL: Function Layer
35 * ,-----------------------------------------------------------.
36 * | `| | | | | | | | | | | | | RESET|
37 * |-----------------------------------------------------------|
38 * | | | | | | | | | | | | | | |
39 * |-----------------------------------------------------------|
40 * | |VDN|VUP|MUTE| | | | | | | | |
41 * |-----------------------------------------------------------|
42 * | | | | | | | | | | | | |
43 * |-----------------------------------------------------------|
44 * | | | | | | | | |
45 * `-----------------------------------------------------------'
46 */
47[_FL] = LAYOUT_60_ansi(
48 KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, \
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
50 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
52 _______, _______, _______, _______, _______, _______, _______, _______),
53
54 /* Keymap _CL: Control+ Layer
55 * ,-----------------------------------------------------------.
56 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Del |
57 * |-----------------------------------------------------------|
58 * | | | | | | | | | | |PGU| | | |
59 * |-----------------------------------------------------------|
60 * | | | | | | |LFT| DN| UP|RGT| | | |
61 * |-----------------------------------------------------------|
62 * | | | | | | |PGD| | | | | |
63 * |-----------------------------------------------------------|
64 * | | | | | | | | |
65 * `-----------------------------------------------------------'
66 */
67
68[_CL] = LAYOUT_60_ansi(
69 KC_ESC, 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_DEL, \
70 KC_TAB, LCTL(KC_Q), LCTL(KC_W), LCTL(KC_E), LCTL(KC_R), LCTL(KC_T), LCTL(KC_Y), LCTL(KC_U), LCTL(KC_I), LCTL(KC_O), KC_PGUP, KC_ESC, LCTL(KC_RBRC), LCTL(KC_BSLS), \
71 _______, LCTL(KC_A), LCTL(KC_S), LCTL(KC_D), LCTL(KC_F), LCTL(KC_G), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, LCTL(KC_SCLN), LCTL(KC_QUOT), LCTL(KC_ENT), \
72 KC_LSFT, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_PGDN, LCTL(KC_N), LCTL(KC_M), LCTL(KC_COMM), LCTL(KC_DOT), LCTL(KC_SLSH), LCTL(KC_RSFT), \
73 _______, LCTL(KC_LALT), LCTL(KC_LGUI), LCTL(KC_SPC), LCTL(KC_RGUI), LCTL(KC_RALT), KC_RCTL, MO(_FL)),
74};
75
diff --git a/keyboards/gh60/satan/keymaps/spacemanspiff/readme.md b/keyboards/gh60/satan/keymaps/spacemanspiff/readme.md
new file mode 100644
index 000000000..1d592509d
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/spacemanspiff/readme.md
@@ -0,0 +1,34 @@
1# Spaceman Spiff Layout for GH60 Satan
2
3![Keyboard Layout](https://i.imgur.com/M9glFON.png)
4
5<!-- http://www.keyboard-layout-editor.com/#/gists/32feaaa31c29afb8198a8ef591db6ddf -->
6
7Designed specifically to make switching back-n-forth with the Apple's MacBook Pro keyboard intuitive. Has a slight tendency toward readline/vim keybindings.
8
9Caps locks becomes an `Esc` when pressed alone, or a `Ctrl` when pressed with another key.
10
11# Base Layer
12
13As simalar to the Apple keyboard as possible. Notiable exception is `Caps Lock`:
14- `Esc` when pressed alone
15- `Ctrl` when pressed with another key
16
17# Control+ Layer
18
19Left Ctrl key switches to the "Control+ Layer". This layer mostly acts like a control key in most cases, with a few exceptions:
20
21- `Ctl+` + `hjkl` are vim-style motion keys
22- `Ctl+` + `p` and `Ctl+` + `n` are page up and down
23- `Ctl+` + `Backspace` is forward delete
24
25# Fn Layer
26
27Audio Controls:
28- `Fn` + `a` Volume Down
29- `Fn` + `s` Volume Up
30- `Fn` + `d` Mute
31
32To flash this layout you need to press `Fn+Backspace`
33
34
diff --git a/keyboards/gh60/satan/keymaps/stanleylai/config.h b/keyboards/gh60/satan/keymaps/stanleylai/config.h
new file mode 100644
index 000000000..7f4bb441c
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/stanleylai/config.h
@@ -0,0 +1,15 @@
1#include "../../config.h"
2
3// Backlight configuration
4#undef BACKLIGHT_LEVELS
5#define BACKLIGHT_LEVELS 3
6
7// Underlight configuration
8#undef RGBLED_NUM
9#define RGBLED_NUM 6 // Number of LEDs
10#undef RGBLIGHT_HUE_STEP
11#define RGBLIGHT_HUE_STEP 8
12#undef RGBLIGHT_SAT_STEP
13#define RGBLIGHT_SAT_STEP 8
14#undef RGBLIGHT_VAL_STEP
15#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/gh60/satan/keymaps/stanleylai/keymap.c b/keyboards/gh60/satan/keymaps/stanleylai/keymap.c
new file mode 100644
index 000000000..633719a88
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/stanleylai/keymap.c
@@ -0,0 +1,88 @@
1#include QMK_KEYBOARD_H
2
3
4// Used for SHIFT_ESC
5#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
6
7// Each layer gets a name for readability, which is then used in the keymap matrix below.
8// The underscores don't mean anything - you can have a layer called STUFF or any other name.
9// Layer names don't all need to be of the same length, obviously, and you can also skip them
10// entirely and just use numbers.
11#define _BL 0
12#define _FL 1
13#define _RGBL 2
14
15const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16
17 // See base_layer.png and rgb_layer.png for layout reference
18
19 // Base Default Layer
20 // Mac Modifier Layout. Use BootMagic to toggle GUI and ALT positions.
21 [_BL] = LAYOUT_60_ansi_split_bs_rshift(
22 F(0), 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, XXXXXXX, \
23 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_BSLS, \
24 LT(_FL, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
25 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(_FL), \
26 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
27 ),
28
29 // Function layer
30 [_FL] = LAYOUT_60_ansi_split_bs_rshift(
31 KC_GRV, 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_DEL, XXXXXXX, \
32 XXXXXXX, KC_MPRV, KC_UP, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, \
33 _______, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
34 _______, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LT(_RGBL, KC_PGUP), _______, \
35 _______, _______, _______, KC_MPLY, _______, KC_HOME, KC_PGDN, KC_END
36 ),
37
38 // RGB Layer
39 [_RGBL] = LAYOUT_60_ansi_split_bs_rshift(
40 #ifdef RGBLIGHT_ENABLE
41 RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
42 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
43 XXXXXXX, BL_TOGG, BL_STEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
44 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, _______, _______, \
45 _______, _______, _______, _______, _______, _______, _______, _______
46 #else
47 RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
48 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
49 XXXXXXX, BL_TOGG, BL_STEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
50 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, \
51 _______, _______, _______, _______, _______, _______, _______, _______
52 #endif
53 ),
54};
55
56enum function_id {
57 SHIFT_ESC,
58};
59
60const uint16_t PROGMEM fn_actions[] = {
61 [0] = ACTION_FUNCTION(SHIFT_ESC),
62};
63
64void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
65 static uint8_t shift_esc_shift_mask;
66 switch (id) {
67 case SHIFT_ESC:
68 shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
69 if (record->event.pressed) {
70 if (shift_esc_shift_mask) {
71 add_key(KC_GRV);
72 send_keyboard_report();
73 } else {
74 add_key(KC_ESC);
75 send_keyboard_report();
76 }
77 } else {
78 if (shift_esc_shift_mask) {
79 del_key(KC_GRV);
80 send_keyboard_report();
81 } else {
82 del_key(KC_ESC);
83 send_keyboard_report();
84 }
85 }
86 break;
87 }
88}
diff --git a/keyboards/gh60/satan/keymaps/unxmaal/README.md b/keyboards/gh60/satan/keymaps/unxmaal/README.md
new file mode 100644
index 000000000..50ad0cf1f
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/unxmaal/README.md
@@ -0,0 +1,20 @@
1Unxmaal's GH60 Satan Layout
2=====================
3* Mostly stolen from /u/robotmaxtron
4
5##Quantum MK Firmware
6For the full Quantum feature list, see the parent readme.md.
7
8* Standard Mac ANSI layout
9* Spacebar acts as space when tapped, Fn when held
10* Menu acts as menu when tapped, Fn2 when held
11* Layer1:
12 * Top row = `~, F1-F12, Del
13 * JKIL = arrow cluster
14* Layer2:
15 * Top row = media controls
16 * JKIL = PgDn/Up/Home/Insert
17 * Backspace = Reset
18
19### Additional Credits
20Keymap has been based on various keymaps available from the QMK Repo for the GH60-SATAN and KC60 keyboards. \ No newline at end of file
diff --git a/keyboards/gh60/satan/keymaps/unxmaal/keymap.c b/keyboards/gh60/satan/keymaps/unxmaal/keymap.c
new file mode 100644
index 000000000..f311ebeeb
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/unxmaal/keymap.c
@@ -0,0 +1,123 @@
1#include QMK_KEYBOARD_H
2
3
4
5// Used for SHIFT_ESC
6#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
7
8// Each layer gets a name for readability, which is then used in the keymap matrix below.
9// The underscores don't mean anything - you can have a layer called STUFF or any other name.
10// Layer names don't all need to be of the same length, obviously, and you can also skip them
11// entirely and just use numbers.
12#define _BL 0
13#define _AL 1
14#define _FL 2
15
16const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
17 /*
18 * ANSI Base, Mac style
19 * ,-----------------------------------------------------------------------------.
20 * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| = | Backsp |
21 * |-----------------------------------------------------------------------------|
22 * |Tab | Q | W | E | R | T | Y | U | I| O| P| [| ]| \|
23 * |-----------------------------------------------------------------------------|
24 * |Caps/Fn | A| S| D| F| G| H| J| K| L| ;| '| Enter |
25 * |-----------------------------------------------------------------------------|
26 * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift |
27 * |-----------------------------------------------------------------------------|
28 * |Fn|Alt |Gui | Space(tapped), Fn(held) |Gui |Alt |Menu(tapped, Fn2(held)|Ctrl|
29 * `-----------------------------------------------------------------------------'
30 */
31 [_BL] = LAYOUT_60_ansi(
32 KC_ESC, 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, \
33 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_BSLS, \
34 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
35 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
36 MO(_AL), KC_LALT, KC_LGUI, LT(_AL, KC_SPACE), KC_RGUI, KC_RALT, LT(_FL, KC_MENU), KC_RCTL
37 ),
38
39 /*
40 * Pok3r style arrow cluster
41 * ,-----------------------------------------------------------.
42 * |`~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|DEL |
43 * |-----------------------------------------------------------|
44 * | | | | | | | | |Up| | | | | |
45 * |-----------------------------------------------------------|
46 * | | | | | | | |Left|Down|Right| | | |
47 * |-----------------------------------------------------------|
48 * | | | | | | | | | | | | |
49 * |-----------------------------------------------------------|
50 * | | | | | | | | |
51 * `-----------------------------------------------------------'
52 */
53 [_AL] = LAYOUT_60_ansi(
54 KC_GRV, 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_DELETE, \
55 _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, \
56 _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, \
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
58 _______, _______, _______, _______, _______, _______, _______, _______
59 ),
60
61 /* Keymap _FL: Function Layer
62 * ,-----------------------------------------------------------.
63 * | | | | | | | | | | | | | | RESET|
64 * |-----------------------------------------------------------|
65 * | | | | | | | | | | | |BL-|BL+|BL |
66 * |-----------------------------------------------------------|
67 * | | | | | | | | | | | | |
68 * |-----------------------------------------------------------|
69 * | | RGB on|RGB step|Hue+|Hue- |Sat+|Sat-|Val+| Val-| | | |
70 * |-----------------------------------------------------------|
71 * | | | | | | | | |
72 * `-----------------------------------------------------------'
73 */
74 [_FL] = LAYOUT_60_ansi(
75 #ifdef RGBLIGHT_ENABLE
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, \
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, BL_TOGG, \
78 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
79 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, \
80 _______, _______, _______, _______, _______, _______, _______, _______
81 #else
82 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, \
83 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, BL_TOGG, \
84 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
85 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
86 _______, _______, _______, _______, _______, _______, _______, _______
87 #endif
88 ),
89};
90
91enum function_id {
92 SHIFT_ESC,
93};
94
95const uint16_t PROGMEM fn_actions[] = {
96 [0] = ACTION_FUNCTION(SHIFT_ESC),
97};
98
99void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
100 static uint8_t shift_esc_shift_mask;
101 switch (id) {
102 case SHIFT_ESC:
103 shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
104 if (record->event.pressed) {
105 if (shift_esc_shift_mask) {
106 add_key(KC_GRV);
107 send_keyboard_report();
108 } else {
109 add_key(KC_ESC);
110 send_keyboard_report();
111 }
112 } else {
113 if (shift_esc_shift_mask) {
114 del_key(KC_GRV);
115 send_keyboard_report();
116 } else {
117 del_key(KC_ESC);
118 send_keyboard_report();
119 }
120 }
121 break;
122 }
123}
diff --git a/keyboards/gh60/satan/keymaps/unxmaal/rules.mk b/keyboards/gh60/satan/keymaps/unxmaal/rules.mk
new file mode 100644
index 000000000..e72478251
--- /dev/null
+++ b/keyboards/gh60/satan/keymaps/unxmaal/rules.mk
@@ -0,0 +1,18 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = no # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18