aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards/gh60/satan/keymaps/isoHHKB
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/gh60/satan/keymaps/isoHHKB')
-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
3 files changed, 200 insertions, 0 deletions
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 @@
+#include QMK_KEYBOARD_H
+
+// Used for SHIFT_ESC
+#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _BL 0
+#define _FL 1
+
+enum custom_keycodes {
+ KC_ENYE = SAFE_RANGE,
+ KC_CEDL
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap _BL: (Base Layer) Default Layer
+ * ,-----------------------------------------------------------.
+ * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Ret |
+ * |-------------------------------------------------------. |
+ * |Ctrl | A| S| D| F| G| H| J| K| L| Ñ| ;| ' |urn|
+ * |-----------------------------------------------------------|
+ * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Fn|
+ * |-----------------------------------------------------------|
+ * | |Alt|WinK | Space |WinK |Alt| |
+ * `-----------------------------------------------------------'
+ *
+ */
+ [_BL] = LAYOUT_60_iso_split_rshift( \
+ 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,
+ 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_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,
+ 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),
+ _______, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, KC_RGUI, _______
+ ),
+
+ /* Keymap _FL: (Function Layer) Second Layer
+ * ,-----------------------------------------------------------.
+ * | |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|PSR| RESET|
+ * |-----------------------------------------------------------|
+ * | | |VUP| | | | | | | | | | | |
+ * |-------------------------------------------------------. |
+ * |CapsLck|PRV|VDN|NXT| |RGB|FRW|BRT|VAI|VAD|INC|DEC| | |
+ * |-----------------------------------------------------------|
+ * | | | | Ç| |BTG| |MUT| | | | | |
+ * |-----------------------------------------------------------|
+ * | | | | PLY/PAU | | | |
+ * `-----------------------------------------------------------'
+ */
+ [_FL] = LAYOUT_60_iso_split_rshift(\
+ _______, 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,
+ _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, RGB_TOG, RGB_MOD, RGB_M_B, RGB_VAI, RGB_VAD, BL_INC, BL_DEC, _______,
+ _______, _______, _______, _______, KC_CEDL, _______, BL_TOGG, _______, KC_MUTE, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_MPLY, _______, _______, _______, _______
+ )
+
+};
+
+enum function_id {
+ SHIFT_ESC,
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_FUNCTION(SHIFT_ESC),
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ static uint8_t shift_esc_shift_mask;
+ switch (id) {
+ case SHIFT_ESC:
+ shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
+ if (record->event.pressed) {
+ if (shift_esc_shift_mask) {
+ add_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ add_key(KC_ESC);
+ send_keyboard_report();
+ }
+ } else {
+ if (shift_esc_shift_mask) {
+ del_key(KC_GRV);
+ send_keyboard_report();
+ } else {
+ del_key(KC_ESC);
+ send_keyboard_report();
+ }
+ }
+ break;
+ }
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch(keycode) {
+ case KC_ENYE: // Ñ
+ register_code16(KC_LALT);
+ tap_code(KC_KP_0);
+ tap_code(KC_KP_2);
+ tap_code(KC_KP_4);
+ tap_code(KC_KP_1);
+ unregister_code16(KC_LALT);
+ return false;
+ case KC_CEDL: // Ç
+ register_code16(KC_LALT);
+ tap_code(KC_KP_0);
+ tap_code(KC_KP_2);
+ tap_code(KC_KP_3);
+ tap_code(KC_KP_1);
+ unregister_code16(KC_LALT);
+ return false;
+ default:
+ return true;
+ }
+ }
+ return true;
+};
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 @@
+# HKKB-ISO Satan Layout by Stunny
+
+This 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.
+
+This 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.
+
+This 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.
+
+
+## Layout
+
+The 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.
+
+Base Layer:
+
+```
+,-----------------------------------------------------------.
+|Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
+|-----------------------------------------------------------|
+|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Ret |
+|------------------------------------------------------. |
+|Ctrl | A| S| D| F| G| H| J| K| L| Ñ| ;| ' |urn |
+|-----------------------------------------------------------|
+|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Fn|
+|-----------------------------------------------------------|
+| |Alt|LGUI | Space |RGUI |Alt| |
+`-----------------------------------------------------------'
+```
+
+Function Layer
+```
+,-----------------------------------------------------------.
+| | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|PSR| RESET|
+|-----------------------------------------------------------|
+| | |VUP| | | | | | | | | | | |
+|-------------------------------------------------------. |
+|CapsLck|PRV|VDN|NXT| |RGB|FRW|BRT|VAI|VAD|INC|DEC| | |
+|-----------------------------------------------------------|
+| | | | Ç| |BTG| |MUT| | | | | |
+|-----------------------------------------------------------|
+| | | | PLY/PAU | | | |
+`-----------------------------------------------------------'
+```
+
+Where:
+- `PRV` is `KC_MEDIA_PREV_TRACK`
+- `NXT` is `KC_MEDIA_NEXT_TRACK`
+- `VUP` is `KC_AUDIO_VOL_UP`
+- `VDN` is `KC_AUDIO_VOL_DOWN`
+- `MUT` is `KC_AUDIO_MUTE`
+- `PLY/PAU` is `KC_MEDIA_PLAY_PAUSE`
+- `BTG` is `BL_TOGG` (toggles key backlighting)
+- `INC` increases backlighting brightness
+- `DEC` decreases backlighting brightness
+- `PSR` is `KC_PSCREEN`
+- `RGB` is `RGB_TOG`
+- `FRW` jumps to next RGB mode
+- `BRT` activates RGB breathing mode directly
+- `VAI` increases RGB brightness
+- `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 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+