diff options
Diffstat (limited to 'keyboards/satan/keymaps/isoHHKB')
-rw-r--r-- | keyboards/satan/keymaps/isoHHKB/keymap.c | 110 | ||||
-rw-r--r-- | keyboards/satan/keymaps/isoHHKB/readme.md | 55 | ||||
-rw-r--r-- | keyboards/satan/keymaps/isoHHKB/rules.mk | 21 | ||||
-rw-r--r-- | keyboards/satan/keymaps/isoHHKB/stunny_iso_hhkb.h | 21 |
4 files changed, 207 insertions, 0 deletions
diff --git a/keyboards/satan/keymaps/isoHHKB/keymap.c b/keyboards/satan/keymaps/isoHHKB/keymap.c new file mode 100644 index 000000000..a14c5c39d --- /dev/null +++ b/keyboards/satan/keymaps/isoHHKB/keymap.c @@ -0,0 +1,110 @@ +#include "satan.h" +#include "stunny_iso_hhkb.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 + +#define KC_ENYE M(0) +#define KC_CEDL M(1) + +#define _______ KC_TRNS + + +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] = KEYMAP_ISO_HHKB( \ + 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] = KEYMAP_ISO_HHKB(\ + + _______, 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; + } +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (record->event.pressed) { + switch(id) { + case 0: // Ñ + return MACRO(D(LALT), T(KP_0), T(KP_2), T(KP_4), T(KP_1), U(LALT), END); + case 1: // Ç + return MACRO(D(LALT), T(KP_0), T(KP_2), T(KP_3), T(KP_1), U(LALT), END); + } + } + return MACRO_NONE; +}; diff --git a/keyboards/satan/keymaps/isoHHKB/readme.md b/keyboards/satan/keymaps/isoHHKB/readme.md new file mode 100644 index 000000000..60454efb6 --- /dev/null +++ b/keyboards/satan/keymaps/isoHHKB/readme.md @@ -0,0 +1,55 @@ +# 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. + +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/satan/keymaps/isoHHKB/rules.mk b/keyboards/satan/keymaps/isoHHKB/rules.mk new file mode 100644 index 000000000..026b33c7d --- /dev/null +++ b/keyboards/satan/keymaps/isoHHKB/rules.mk @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/satan/keymaps/isoHHKB/stunny_iso_hhkb.h b/keyboards/satan/keymaps/isoHHKB/stunny_iso_hhkb.h new file mode 100644 index 000000000..b5737f5af --- /dev/null +++ b/keyboards/satan/keymaps/isoHHKB/stunny_iso_hhkb.h @@ -0,0 +1,21 @@ +#ifndef STUNNY_ISO_HHKB_H +#define STUNNY_ISO_HHKB_H + +/* Satan ISO - HHKB matrix layout + * With 7u space bar, split right shift and 2u Backspace + * ,------------------------------------------------------------. + * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | + * |------------------------------------------------------------| + * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| | + * |------------------------------------------------------------| + * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c| 2d | + * |------------------------------------------------------------| + * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c | + * |------------------------------------------------------------| + * | | 41| 42 | 45 | 4a | 4b | | | + * `------------------------------------------------------------' + */ + +#define KEYMAP_ISO_HHKB KEYMAP_ISO_SPLITRSHIFT + +#endif |