From aa1a90af66df6ab12a371416e23094315c4a43b3 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 11 Aug 2016 00:54:55 +0200 Subject: [PATCH 01/19] Added S60-X to keyboards with two layouts. --- .gitignore | 1 + keyboards/s60-x/Makefile | 75 ++++++++++ keyboards/s60-x/config.h | 164 ++++++++++++++++++++++ keyboards/s60-x/keymaps/default/Makefile | 21 +++ keyboards/s60-x/keymaps/default/keymap.c | 92 ++++++++++++ keyboards/s60-x/keymaps/default/readme.md | 1 + keyboards/s60-x/keymaps/felix/Makefile | 21 +++ keyboards/s60-x/keymaps/felix/keymap.c | 110 +++++++++++++++ keyboards/s60-x/keymaps/felix/readme.md | 1 + keyboards/s60-x/readme.md | 32 +++++ keyboards/s60-x/s60-x.c | 28 ++++ keyboards/s60-x/s60-x.h | 44 ++++++ 12 files changed, 590 insertions(+) create mode 100644 keyboards/s60-x/Makefile create mode 100644 keyboards/s60-x/config.h create mode 100644 keyboards/s60-x/keymaps/default/Makefile create mode 100644 keyboards/s60-x/keymaps/default/keymap.c create mode 100644 keyboards/s60-x/keymaps/default/readme.md create mode 100644 keyboards/s60-x/keymaps/felix/Makefile create mode 100644 keyboards/s60-x/keymaps/felix/keymap.c create mode 100644 keyboards/s60-x/keymaps/felix/readme.md create mode 100644 keyboards/s60-x/readme.md create mode 100644 keyboards/s60-x/s60-x.c create mode 100644 keyboards/s60-x/s60-x.h diff --git a/.gitignore b/.gitignore index 8c85d6ffa8..07bbf13db1 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ CMakeLists.txt .settings/ .idea .browse.VC.db* +*.stackdump diff --git a/keyboards/s60-x/Makefile b/keyboards/s60-x/Makefile new file mode 100644 index 0000000000..57edd5e036 --- /dev/null +++ b/keyboards/s60-x/Makefile @@ -0,0 +1,75 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +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 ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 + +ifndef QUANTUM_DIR + include ../../Makefile +endif + + diff --git a/keyboards/s60-x/config.h b/keyboards/s60-x/config.h new file mode 100644 index 0000000000..d548a99b33 --- /dev/null +++ b/keyboards/s60-x/config.h @@ -0,0 +1,164 @@ +/* +Copyright 2012 Jun Wako +Copyright 2016 Julien Pecqueur +Copyright 2016 Felix Uhl + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Massdrop +#define PRODUCT S60-X +#define DESCRIPTION q.m.k. keyboard firmware for S60-X + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { B7, B3, B2, B1, B0 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, E6, F1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +#define NO_ACTION_ONESHOT +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/s60-x/keymaps/default/Makefile b/keyboards/s60-x/keymaps/default/Makefile new file mode 100644 index 0000000000..f4671a9d11 --- /dev/null +++ b/keyboards/s60-x/keymaps/default/Makefile @@ -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 = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/default/keymap.c b/keyboards/s60-x/keymaps/default/keymap.c new file mode 100644 index 0000000000..aa2856525c --- /dev/null +++ b/keyboards/s60-x/keymaps/default/keymap.c @@ -0,0 +1,92 @@ +/* +Copyright 2016 Julien Pecqueur +Copyright 2016 Felix Uhl + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "s60-x.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layout 0: Default Layer + * ,-----------------------------------------------------------. + * |` | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Fn1 |Gui |Alt | SpaceFn |Alt |Gui |App |Ctrl| + * `-----------------------------------------------------------' + */ + KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ + LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ + LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + FN1, LGUI, LALT, FN0, RALT, RGUI, APP, RCTL), + + /* Layout 1: Function Layer + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | + * |-----------------------------------------------------------| + * | |Prv|Ply|Nxt|Stp| | |PUp|Up |PDn| |Slk|Pau|Ins | + * |-----------------------------------------------------------| + * | |Vl-|Mut|Vl+| | |Hom|Lef|Dow|Rig|End| |PEnt | + * |-----------------------------------------------------------| + * | |Prt|Cut|Cop|Pst|Cal| | | | | |CapsLock | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \ + TRNS, MPRV, MPLY, MNXT, MSTP, TRNS, TRNS, PGUP, UP, PGDN, TRNS, SLCK, PAUS, INS, \ + TRNS, VOLD, MUTE, VOLU, TRNS, TRNS, HOME, LEFT, DOWN, RGHT, END, TRNS, TRNS, PENT, \ + TRNS, TRNS, PSCR, FN2, FN3, FN4, CALC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CAPS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +}; + +/* +* Fn action definition +*/ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), /* SpaceFn layout 1 */ + [1] = ACTION_LAYER_MOMENTARY(1), /* Momentary layout 1 */ + [2] = ACTION_MODS_KEY(MOD_LSFT, KC_DEL), /* Cut */ + [3] = ACTION_MODS_KEY(MOD_LCTL, KC_INS), /* Copy */ + [4] = ACTION_MODS_KEY(MOD_LSFT, KC_INS), /* Paste */ +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/default/readme.md b/keyboards/s60-x/keymaps/default/readme.md new file mode 100644 index 0000000000..73318dad72 --- /dev/null +++ b/keyboards/s60-x/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for s60-x \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/felix/Makefile b/keyboards/s60-x/keymaps/felix/Makefile new file mode 100644 index 0000000000..251e4631d3 --- /dev/null +++ b/keyboards/s60-x/keymaps/felix/Makefile @@ -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 = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/felix/keymap.c b/keyboards/s60-x/keymaps/felix/keymap.c new file mode 100644 index 0000000000..a5ff1ae4d9 --- /dev/null +++ b/keyboards/s60-x/keymaps/felix/keymap.c @@ -0,0 +1,110 @@ +/* +Copyright 2016 Julien Pecqueur +Copyright 2016 Felix Uhl + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "s60-x.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layout 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|Del| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|BckSp| + * |-----------------------------------------------------------| + * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /| Up |Fn1 | + * |-----------------------------------------------------------| + * |Fn2 |Gui |Alt | SpaceFn |Alt |Left|Down|Right| + * `-----------------------------------------------------------' + */ + KEYMAP( + 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_DEL, \ + 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, \ + 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_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_FN1, \ + KC_FN2, KC_LGUI, KC_LALT, KC_FN0, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layout 1: Gaming Layer, SpaceFn disabled + * ,-----------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | |Fn1 | + * |-----------------------------------------------------------| + * | | NOP| | Space | | | | | + * `-----------------------------------------------------------' + */ + KEYMAP( + 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, 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, 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, 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, KC_TRNS, KC_FN1, \ + KC_TRNS, KC_NO, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + /* Layout 2: Function Layer + * ,-----------------------------------------------------------. + * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |RES| + * |-----------------------------------------------------------| + * | |Prv|Ply|Nxt|Stp| | |PUp|Up |PDn| |Slk|Pau|Ins | + * |-----------------------------------------------------------| + * | |Vl-|Mut|Vl+| | |Hom|Lef|Dow|Rig|End| |PEnt | + * |-----------------------------------------------------------| + * | |Prt| | | |Cal| | | | |Pau |PUp |Rsft| + * |-----------------------------------------------------------| + * | | | | | |Home|PDn |End | + * `-----------------------------------------------------------' + */ + KEYMAP( + 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, DEBUG, RESET, \ + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_SLCK, KC_PAUS, KC_INS, \ + KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_TRNS, KC_TRNS, KC_PENT, \ + KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_PGUP, KC_RSFT, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END), +}; + +/* +* Fn action definition +*/ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), /* SpaceFn layout 1 */ + [1] = ACTION_LAYER_TOGGLE(1), /* Disable SpaceFn */ + [2] = ACTION_LAYER_MOMENTARY(2) /* SpaceFn layout 1 */ +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/felix/readme.md b/keyboards/s60-x/keymaps/felix/readme.md new file mode 100644 index 0000000000..73318dad72 --- /dev/null +++ b/keyboards/s60-x/keymaps/felix/readme.md @@ -0,0 +1 @@ +# The default keymap for s60-x \ No newline at end of file diff --git a/keyboards/s60-x/readme.md b/keyboards/s60-x/readme.md new file mode 100644 index 0000000000..34c48b0b7d --- /dev/null +++ b/keyboards/s60-x/readme.md @@ -0,0 +1,32 @@ +S60-x keyboard firmware +====================== +DIY compact keyboard by Massdrop. This is a port from TMK to QMK based on the [original S60-X Repo](https://github.com/jpec/s60x). + +## S60X Resources +- [Massdrop page](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit) + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/s60-x folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make`. + +### Other Keymaps + +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: + +``` +$ make keymap=[default|] +``` + +Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` \ No newline at end of file diff --git a/keyboards/s60-x/s60-x.c b/keyboards/s60-x/s60-x.c new file mode 100644 index 0000000000..417358140c --- /dev/null +++ b/keyboards/s60-x/s60-x.c @@ -0,0 +1,28 @@ +#include "s60-x.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/s60-x/s60-x.h b/keyboards/s60-x/s60-x.h new file mode 100644 index 0000000000..714de30db8 --- /dev/null +++ b/keyboards/s60-x/s60-x.h @@ -0,0 +1,44 @@ +/* +Copyright 2012,2013 Jun Wako +Copyright 2015 Vinνcius Nery Cordeiro +Copyright 2016 Felix Uhl + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef S60X_H +#define S60X_H + +#include "quantum.h" + +/* S60-X keymap definition macro +* K2C, K31 and K3C are extra keys for ISO +* K0D is extra key from split backspace, K3E is extra key from split right shift +*/ + +#define KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO } \ +} + +#endif From 38766dbc82cd0765cd88a47bb88b57d58b4b6723 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 11 Aug 2016 09:36:37 +0200 Subject: [PATCH 02/19] Minor changes to keymaps Clarified extra keys Made ISO-keys non-dead in default layout Added non-US backslash on felix layout --- keyboards/s60-x/keymaps/default/keymap.c | 6 +++--- keyboards/s60-x/keymaps/felix/keymap.c | 8 ++++---- keyboards/s60-x/s60-x.h | 7 +++++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/keyboards/s60-x/keymaps/default/keymap.c b/keyboards/s60-x/keymaps/default/keymap.c index aa2856525c..3b680c3072 100644 --- a/keyboards/s60-x/keymaps/default/keymap.c +++ b/keyboards/s60-x/keymaps/default/keymap.c @@ -31,10 +31,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------' */ KEYMAP( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ - LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ - LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NUHS, ENT, \ + LSFT, NUBS, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ FN1, LGUI, LALT, FN0, RALT, RGUI, APP, RCTL), /* Layout 1: Function Layer diff --git a/keyboards/s60-x/keymaps/felix/keymap.c b/keyboards/s60-x/keymaps/felix/keymap.c index a5ff1ae4d9..3052dd8160 100644 --- a/keyboards/s60-x/keymaps/felix/keymap.c +++ b/keyboards/s60-x/keymaps/felix/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return | * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /| Up |Fn1 | + * |Shift | Z| X| C| V| B| N| M| ,| .| /| Up | <> | * |-----------------------------------------------------------| * |Fn2 |Gui |Alt | SpaceFn |Alt |Left|Down|Right| * `-----------------------------------------------------------' @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_DEL, \ 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, \ 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_NO, KC_ENT, \ - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_FN1, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_NUBS, \ KC_FN2, KC_LGUI, KC_LALT, KC_FN0, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), /* Layout 1: Gaming Layer, SpaceFn disabled @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| * | |Vl-|Mut|Vl+| | |Hom|Lef|Dow|Rig|End| |PEnt | * |-----------------------------------------------------------| - * | |Prt| | | |Cal| | | | |Pau |PUp |Rsft| + * | |Prt| | | |Cal| | | | |Pau |PUp |Fn1 | * |-----------------------------------------------------------| * | | | | | |Home|PDn |End | * `-----------------------------------------------------------' @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, DEBUG, RESET, \ KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_SLCK, KC_PAUS, KC_INS, \ KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_TRNS, KC_TRNS, KC_PENT, \ - KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_PGUP, KC_RSFT, \ + KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_PGUP, KC_FN1, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END), }; diff --git a/keyboards/s60-x/s60-x.h b/keyboards/s60-x/s60-x.h index 714de30db8..68f2ab22f2 100644 --- a/keyboards/s60-x/s60-x.h +++ b/keyboards/s60-x/s60-x.h @@ -23,8 +23,11 @@ along with this program. If not, see . #include "quantum.h" /* S60-X keymap definition macro -* K2C, K31 and K3C are extra keys for ISO -* K0D is extra key from split backspace, K3E is extra key from split right shift +* K31 is the extra key next to short left ISO shift +* K2C is the moved key next to enter on ISO boards +* K3C is the extra key next to short right JIS shift +* K0D is extra key from split backspace +* K3E is extra key from HHKB-style split right shift */ #define KEYMAP( \ From 4725942dc71c2f386d8323865a6255f4dfd2785b Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 11 Aug 2016 21:49:10 +0200 Subject: [PATCH 03/19] Small changes Enabled Bootmagic and ISO layouts on felix keymap Added unused pins --- keyboards/s60-x/config.h | 2 +- keyboards/s60-x/keymaps/felix/keymap.c | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/keyboards/s60-x/config.h b/keyboards/s60-x/config.h index d548a99b33..ac7951c247 100644 --- a/keyboards/s60-x/config.h +++ b/keyboards/s60-x/config.h @@ -46,7 +46,7 @@ along with this program. If not, see . */ #define MATRIX_ROW_PINS { B7, B3, B2, B1, B0 } #define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, E6, F1 } -#define UNUSED_PINS +#define UNUSED_PINS { F0 } /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/s60-x/keymaps/felix/keymap.c b/keyboards/s60-x/keymaps/felix/keymap.c index 3052dd8160..7fc0e021c9 100644 --- a/keyboards/s60-x/keymaps/felix/keymap.c +++ b/keyboards/s60-x/keymaps/felix/keymap.c @@ -18,6 +18,7 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layout 0: Default Layer + * RSFT will be replaced once a better way to control magic is found. * ,-----------------------------------------------------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|Del| * |-----------------------------------------------------------| @@ -25,17 +26,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return | * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /| Up | <> | + * |Shift | Z| X| C| V| B| N| M| ,| .| /| Up |RSft| * |-----------------------------------------------------------| * |Fn2 |Gui |Alt | SpaceFn |Alt |Left|Down|Right| * `-----------------------------------------------------------' */ KEYMAP( - 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_DEL, \ - 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, \ - 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_NO, KC_ENT, \ - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_NUBS, \ - KC_FN2, KC_LGUI, KC_LALT, KC_FN0, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + 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_DEL, \ + 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, \ + 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_NUHS, KC_ENT, \ + 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_NO, KC_UP, KC_RSFT, \ + KC_FN2, KC_LGUI, KC_LALT, KC_FN0, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), /* Layout 1: Gaming Layer, SpaceFn disabled * ,-----------------------------------------------------------. @@ -55,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, \ 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, \ 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, KC_FN1, \ - KC_TRNS, KC_NO, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + KC_TRNS, KC_NO, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), /* Layout 2: Function Layer * ,-----------------------------------------------------------. @@ -75,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_SLCK, KC_PAUS, KC_INS, \ KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_TRNS, KC_TRNS, KC_PENT, \ KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_PGUP, KC_FN1, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END), }; /* From 911cc6832598ac9b637fdb11448354d418c197c4 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Sun, 14 Aug 2016 00:41:09 +0200 Subject: [PATCH 04/19] Added all original S60-X keymaps All keymaps that were included in VinnyCordeiro's repository were ported to QMK. Main Readme was copied over from VC's repo, slightly altered. Main Makefile was updated to reflect VC's original configuration. Small changes in felix keymap. --- keyboards/s60-x/Makefile | 2 +- keyboards/s60-x/keymaps/custom/keymap.c | 28 +++ keyboards/s60-x/keymaps/custom/readme.md | 15 ++ keyboards/s60-x/keymaps/default/Makefile | 21 -- keyboards/s60-x/keymaps/default/keymap.c | 124 ++++------ keyboards/s60-x/keymaps/default/readme.md | 28 ++- keyboards/s60-x/keymaps/felix/keymap.c | 127 ++++++++-- keyboards/s60-x/keymaps/felix/readme.md | 10 +- keyboards/s60-x/keymaps/hasu/keymap.c | 182 ++++++++++++++ keyboards/s60-x/keymaps/hasu/readme.md | 4 + keyboards/s60-x/keymaps/hhkb/keymap.c | 52 ++++ keyboards/s60-x/keymaps/hhkb/readme.md | 26 ++ keyboards/s60-x/keymaps/iso/keymap.c | 48 ++++ keyboards/s60-x/keymaps/iso/readme.md | 28 +++ keyboards/s60-x/keymaps/jpec/keymap.c | 92 ++++++++ keyboards/s60-x/keymaps/jpec/readme.md | 1 + keyboards/s60-x/keymaps/plain/keymap.c | 25 ++ keyboards/s60-x/keymaps/plain/readme.md | 16 ++ keyboards/s60-x/keymaps/poker/keymap.c | 180 ++++++++++++++ keyboards/s60-x/keymaps/poker/readme.md | 31 +++ keyboards/s60-x/keymaps/poker_bit/keymap.c | 110 +++++++++ keyboards/s60-x/keymaps/poker_bit/readme.md | 31 +++ keyboards/s60-x/keymaps/poker_set/keymap.c | 178 ++++++++++++++ keyboards/s60-x/keymaps/poker_set/readme.md | 31 +++ keyboards/s60-x/keymaps/spacefn/keymap.c | 55 +++++ keyboards/s60-x/keymaps/spacefn/readme.md | 27 +++ keyboards/s60-x/readme.md | 248 ++++++++++++++++++-- keyboards/s60-x/s60-x.h | 5 + 28 files changed, 1577 insertions(+), 148 deletions(-) create mode 100644 keyboards/s60-x/keymaps/custom/keymap.c create mode 100644 keyboards/s60-x/keymaps/custom/readme.md delete mode 100644 keyboards/s60-x/keymaps/default/Makefile create mode 100644 keyboards/s60-x/keymaps/hasu/keymap.c create mode 100644 keyboards/s60-x/keymaps/hasu/readme.md create mode 100644 keyboards/s60-x/keymaps/hhkb/keymap.c create mode 100644 keyboards/s60-x/keymaps/hhkb/readme.md create mode 100644 keyboards/s60-x/keymaps/iso/keymap.c create mode 100644 keyboards/s60-x/keymaps/iso/readme.md create mode 100644 keyboards/s60-x/keymaps/jpec/keymap.c create mode 100644 keyboards/s60-x/keymaps/jpec/readme.md create mode 100644 keyboards/s60-x/keymaps/plain/keymap.c create mode 100644 keyboards/s60-x/keymaps/plain/readme.md create mode 100644 keyboards/s60-x/keymaps/poker/keymap.c create mode 100644 keyboards/s60-x/keymaps/poker/readme.md create mode 100644 keyboards/s60-x/keymaps/poker_bit/keymap.c create mode 100644 keyboards/s60-x/keymaps/poker_bit/readme.md create mode 100644 keyboards/s60-x/keymaps/poker_set/keymap.c create mode 100644 keyboards/s60-x/keymaps/poker_set/readme.md create mode 100644 keyboards/s60-x/keymaps/spacefn/keymap.c create mode 100644 keyboards/s60-x/keymaps/spacefn/readme.md diff --git a/keyboards/s60-x/Makefile b/keyboards/s60-x/Makefile index 57edd5e036..8b51d4609f 100644 --- a/keyboards/s60-x/Makefile +++ b/keyboards/s60-x/Makefile @@ -53,7 +53,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) CONSOLE_ENABLE ?= yes # Console for debug(+400) diff --git a/keyboards/s60-x/keymaps/custom/keymap.c b/keyboards/s60-x/keymaps/custom/keymap.c new file mode 100644 index 0000000000..59361241fa --- /dev/null +++ b/keyboards/s60-x/keymaps/custom/keymap.c @@ -0,0 +1,28 @@ +#include "keymap_common.h" + +/* Main layer: Test layout, using all keys. + + 0 1 2 3 4 5 6 7 8 9 A B C D E + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + 0 β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚PGUP β”‚BKSPCβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + 1 β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + 2 β”‚CAPSLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚PGDN β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + 3 β”‚LSHFTβ”‚HOME β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚ END β”‚RSHFTβ”‚ UP β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + 4 β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_GUIβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +*/ + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: ANSI qwerty */ + KEYMAP(GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, PGUP, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ + CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, PGDN, ENT , \ + LSFT, HOME, Z, X, C, V, B, N, M, COMM, DOT, SLSH, END, RSFT, UP, \ + LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL), +}; +const uint16_t PROGMEM fn_actions[] = {}; + diff --git a/keyboards/s60-x/keymaps/custom/readme.md b/keyboards/s60-x/keymaps/custom/readme.md new file mode 100644 index 0000000000..cf87bd915f --- /dev/null +++ b/keyboards/s60-x/keymaps/custom/readme.md @@ -0,0 +1,15 @@ +ο»Ώ### 8 Custom +The custom keymap - [keymap_custom.c](keymap_custom.c) - is where I tested all the switches, not being concerned with a specific layout or layers. It's a plain layout option with the extra keys used on ISO & HHKB layouts being assigned some other keys. + +#### 8.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ` β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚PgUp β”‚BkSpcβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚PgDwnβ”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚Home β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚ End β”‚Shiftβ”‚ Up β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Alt β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ diff --git a/keyboards/s60-x/keymaps/default/Makefile b/keyboards/s60-x/keymaps/default/Makefile deleted file mode 100644 index f4671a9d11..0000000000 --- a/keyboards/s60-x/keymaps/default/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# 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 = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/default/keymap.c b/keyboards/s60-x/keymaps/default/keymap.c index 3b680c3072..be7a71aff0 100644 --- a/keyboards/s60-x/keymaps/default/keymap.c +++ b/keyboards/s60-x/keymaps/default/keymap.c @@ -1,92 +1,48 @@ -/* -Copyright 2016 Julien Pecqueur -Copyright 2016 Felix Uhl +#include "keymap_common.h" -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . +/* 0: Main layer +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ ESC β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚CAPSLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚ FN0 β”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ -#include "s60-x.h" +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: ANSI qwerty */ + KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ + CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT , \ + LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, RALT, FN0, APP, RCTL), -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Layout 0: Default Layer - * ,-----------------------------------------------------------. - * |` | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| - * |-----------------------------------------------------------| - * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | - * |-----------------------------------------------------------| - * |Fn1 |Gui |Alt | SpaceFn |Alt |Gui |App |Ctrl| - * `-----------------------------------------------------------' - */ - KEYMAP( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ - LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NUHS, ENT, \ - LSFT, NUBS, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ - FN1, LGUI, LALT, FN0, RALT, RGUI, APP, RCTL), - - /* Layout 1: Function Layer - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | - * |-----------------------------------------------------------| - * | |Prv|Ply|Nxt|Stp| | |PUp|Up |PDn| |Slk|Pau|Ins | - * |-----------------------------------------------------------| - * | |Vl-|Mut|Vl+| | |Hom|Lef|Dow|Rig|End| |PEnt | - * |-----------------------------------------------------------| - * | |Prt|Cut|Cop|Pst|Cal| | | | | |CapsLock | - * |-----------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------------' - */ - KEYMAP( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \ - TRNS, MPRV, MPLY, MNXT, MSTP, TRNS, TRNS, PGUP, UP, PGDN, TRNS, SLCK, PAUS, INS, \ - TRNS, VOLD, MUTE, VOLU, TRNS, TRNS, HOME, LEFT, DOWN, RGHT, END, TRNS, TRNS, PENT, \ - TRNS, TRNS, PSCR, FN2, FN3, FN4, CALC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CAPS, TRNS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +/* 1: Fn layer +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚GRAVEβ”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚PGUP β”‚PGDWNβ”‚PRTSCβ”‚SCLCKβ”‚PAUSEβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +*/ + KEYMAP( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ + TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, PGDN, PSCR, SLCK, PAUS, TRNS, \ + TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), }; -/* -* Fn action definition -*/ const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), /* SpaceFn layout 1 */ - [1] = ACTION_LAYER_MOMENTARY(1), /* Momentary layout 1 */ - [2] = ACTION_MODS_KEY(MOD_LSFT, KC_DEL), /* Cut */ - [3] = ACTION_MODS_KEY(MOD_LCTL, KC_INS), /* Copy */ - [4] = ACTION_MODS_KEY(MOD_LSFT, KC_INS), /* Paste */ + [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay }; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - return MACRO_NONE; -}; - - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/default/readme.md b/keyboards/s60-x/keymaps/default/readme.md index 73318dad72..01cda9df9b 100644 --- a/keyboards/s60-x/keymaps/default/readme.md +++ b/keyboards/s60-x/keymaps/default/readme.md @@ -1 +1,27 @@ -# The default keymap for s60-x \ No newline at end of file +ο»Ώ### 1 Standard - ANSI +The standard keymap is the one that is pre-flashed on the S60-X. + +#### 1.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ESC β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚CAPSLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚ FN0 β”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 1.1 Fn layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚GRAVEβ”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚PGUP β”‚PGDWNβ”‚PRTSCβ”‚SCLCKβ”‚PAUSEβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ diff --git a/keyboards/s60-x/keymaps/felix/keymap.c b/keyboards/s60-x/keymaps/felix/keymap.c index 7fc0e021c9..9c620527b0 100644 --- a/keyboards/s60-x/keymaps/felix/keymap.c +++ b/keyboards/s60-x/keymaps/felix/keymap.c @@ -16,26 +16,52 @@ along with this program. If not, see . #include "s60-x.h" +//make keymap a little easier to read +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +enum layer_names { + DEFAULT, + GAMING, + FUNCTION +}; + +enum languages { + GERMAN +}; + +#define LANGUAGE GERMAN + +enum custom_keycodes { + KC_C_AM = SAFE_RANGE, + KC_C_EM, + KC_C_IM, + KC_C_OM, + KC_C_UM, + KC_C_SM, + KC_C_YM, + KC_C_WM +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layout 0: Default Layer - * RSFT will be replaced once a better way to control magic is found. * ,-----------------------------------------------------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|Del| * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|BckSp| + * |Tab | Q| W| E| R| T| Z| U| I| O| P| [| ]|BckSp| * |-----------------------------------------------------------| * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return | * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /| Up |RSft| + * |Shift | Y| X| C| V| B| N| M| ,| .| /| Up |RSft| * |-----------------------------------------------------------| - * |Fn2 |Gui |Alt | SpaceFn |Alt |Left|Down|Right| + * |Fn2 |Gui |Alt | SpaceFn |Alt |Left|Down|Right| * `-----------------------------------------------------------' */ - KEYMAP( + [DEFAULT] = KEYMAP( 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_DEL, \ - 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, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ 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_NUHS, KC_ENT, \ - 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_NO, KC_UP, KC_RSFT, \ + KC_LSFT, KC_NUBS, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_RSFT, \ KC_FN2, KC_LGUI, KC_LALT, KC_FN0, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), /* Layout 1: Gaming Layer, SpaceFn disabled @@ -51,32 +77,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | NOP| | Space | | | | | * `-----------------------------------------------------------' */ - KEYMAP( - 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, 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, 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, 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, KC_TRNS, KC_FN1, \ - KC_TRNS, KC_NO, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [GAMING] = KEYMAP( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_FN1, \ + _______, XXXXXXX, _______, KC_SPC, _______, _______, _______, _______), /* Layout 2: Function Layer * ,-----------------------------------------------------------. - * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |RES| + * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|RES| * |-----------------------------------------------------------| - * | |Prv|Ply|Nxt|Stp| | |PUp|Up |PDn| |Slk|Pau|Ins | + * | | | | |Prv|Ply|Nxt| ά | | Φ | |Prt|Slk|Pau | * |-----------------------------------------------------------| - * | |Vl-|Mut|Vl+| | |Hom|Lef|Dow|Rig|End| |PEnt | + * | | Δ | ί | |Vl-|Mut|Vl+| | | | | |PEnt | * |-----------------------------------------------------------| - * | |Prt| | | |Cal| | | | |Pau |PUp |Fn1 | + * | | | | | |Cal| | | | |Pau |PUp |Fn1 | * |-----------------------------------------------------------| * | | | | | |Home|PDn |End | * `-----------------------------------------------------------' */ - KEYMAP( - 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, DEBUG, RESET, \ - KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_SLCK, KC_PAUS, KC_INS, \ - KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_TRNS, KC_TRNS, KC_PENT, \ - KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_PGUP, KC_FN1, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END), + [FUNCTION] = KEYMAP( + 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_INS, RESET, \ + _______, _______, KC_C_WM, KC_C_EM, KC_MPRV, KC_MPLY, KC_MNXT, KC_C_UM, KC_C_IM, KC_C_OM, _______, KC_PSCR, KC_SLCK, KC_PAUS, \ + _______, KC_C_AM, KC_C_SM, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_PENT, \ + _______, KC_C_YM, _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_FN1, \ + _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END), }; /* @@ -102,8 +128,61 @@ void matrix_scan_user(void) { } +bool process_german(uint16_t keycode, keyrecord_t *record) { + uint16_t send_code = 0; + switch (keycode) { + case KC_C_AM: + if (record->event.pressed) { + send_code = KC_Q; + } + break; + + case KC_C_OM: + if (record->event.pressed) { + send_code = KC_P; + } + break; + + case KC_C_UM: + if (record->event.pressed) { + send_code = KC_Y; + } + break; + + case KC_C_SM: + if (record->event.pressed) { + send_code = KC_S; + } + break; + } + + if (send_code == 0) { + return true; + } + else { + register_code(KC_RALT); + register_code(send_code); + unregister_code(send_code); + unregister_code(KC_RALT); + return false; + } +} + bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; + if (keycode == KC_QUOT) { + if (record->event.pressed) { + register_code(KC_QUOT); + unregister_code(KC_QUOT); + register_code(KC_SPACE); + unregister_code(KC_SPACE); + } + return false; + } +#if LANGUAGE == GERMAN + return process_german(keycode, record); +#else + return true; +#endif } void led_set_user(uint8_t usb_led) { diff --git a/keyboards/s60-x/keymaps/felix/readme.md b/keyboards/s60-x/keymaps/felix/readme.md index 73318dad72..7f083dfd08 100644 --- a/keyboards/s60-x/keymaps/felix/readme.md +++ b/keyboards/s60-x/keymaps/felix/readme.md @@ -1 +1,9 @@ -# The default keymap for s60-x \ No newline at end of file +# A non-US ANSI QWERTZ keymap + +This keymap was specifically designed to support ANSI keycaps while retaining the possibility of inputting characters with diacritics that are normally not used in the english language. + +It relies on the US-International keyboard layout, which can be installed in any current operating system without the use of third party hardware. + +Currently, it explicitly supports the following languages, though other languages are readily useable using the AltGr modifier. +- German + diff --git a/keyboards/s60-x/keymaps/hasu/keymap.c b/keyboards/s60-x/keymaps/hasu/keymap.c new file mode 100644 index 0000000000..46ea81fea2 --- /dev/null +++ b/keyboards/s60-x/keymaps/hasu/keymap.c @@ -0,0 +1,182 @@ +#include "keymap_common.h" + +/* + * Hasu + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: Default Layer +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ Esc β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚CAPSLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ Fn2 β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ Fn1 β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚ Fn3 β”‚ Fn3 β”‚ Fn0 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ + CAPS, A, S, D, F, G, H, J, K, L, FN2, QUOT, NO, ENT, \ + LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, FN1, NO, FN9, NO, \ + LCTL, LGUI, LALT, SPC, RALT, FN3, FN3, FN0), + /* Keymap 1: colemak +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ W β”‚ F β”‚ P β”‚ G β”‚ J β”‚ L β”‚ U β”‚ Y β”‚ ; β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚BKSPCβ”‚ A β”‚ R β”‚ S β”‚ T β”‚ D β”‚ H β”‚ N β”‚ E β”‚ I β”‚ O β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ K β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_WINβ”‚ APP β”‚ Fn0 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN, LBRC, RBRC, BSLS, \ + BSPC, A, R, S, T, D, H, N, E, I, O, QUOT, NO, ENT, \ + LSFT, NO, Z, X, C, V, B, K, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, FN0), + /* Keymap 2: dvorak +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ [ β”‚ ] β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ ' β”‚ , β”‚ . β”‚ P β”‚ Y β”‚ F β”‚ G β”‚ C β”‚ R β”‚ L β”‚ / β”‚ = β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚CAPSLβ”‚ A β”‚ O β”‚ E β”‚ U β”‚ I β”‚ D β”‚ H β”‚ T β”‚ N β”‚ S β”‚ - β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ ; β”‚ Q β”‚ J β”‚ K β”‚ X β”‚ B β”‚ M β”‚ W β”‚ V β”‚ Z β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_WINβ”‚ APP β”‚ FN0 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC, RBRC, NO, BSPC, \ + TAB, QUOT, COMM, DOT, P, Y, F, G, C, R, L, SLSH, EQL, BSLS, \ + CAPS, A, O, E, U, I, D, H, T, N, S, MINS, NO, ENT, \ + LSFT, NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, FN0), + /* Keymap 3: workman +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ D β”‚ E β”‚ W β”‚ B β”‚ J β”‚ F β”‚ U β”‚ P β”‚ ; β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚BKSPCβ”‚ A β”‚ S β”‚ H β”‚ T β”‚ G β”‚ Y β”‚ N β”‚ E β”‚ O β”‚ I β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ M β”‚ C β”‚ V β”‚ K β”‚ L β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_WINβ”‚ APP β”‚ FN0 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN, LBRC, RBRC, BSLS, \ + BSPC, A, S, H, T, G, Y, N, E, O, I, QUOT, NO, ENT, \ + LSFT, NO, Z, X, M, C, V, K, L, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, FN0), + /* Overlay 4: HHKB mode +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚Graveβ”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚Caps β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ Up β”‚ β”‚ Ins β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚ VoD β”‚ VoU β”‚Mute β”‚ β”‚ β”‚NP_* β”‚NP_/ β”‚Home β”‚PgUp β”‚Left β”‚Rightβ”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚NP_+ β”‚NP_- β”‚ End β”‚PgDwnβ”‚Down β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_GUIβ”‚ App β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \ + CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, SLCK, PAUS, UP, TRNS, INS, \ + LCTL, VOLD, VOLU, MUTE, TRNS, TRNS, PAST, PSLS, HOME, PGUP, LEFT, RGHT, TRNS, ENT, \ + LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PPLS, PMNS, END, PGDN, DOWN, TRNS, RSFT, TRNS, \ + LCTL, LGUI, LALT, SPC, RALT, RGUI, FN4, TRNS), + /* Overlay 5: Vi mode (Slash) +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚Graveβ”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚BkSpcβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ Tab β”‚Home β”‚PgDwnβ”‚ Up β”‚PgUp β”‚ End β”‚Home β”‚PgDwnβ”‚PgUp β”‚ End β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚Left β”‚Down β”‚ Up β”‚Rightβ”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚Home β”‚PgDwnβ”‚PgUp β”‚ End β”‚ β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_GUIβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, BSPC, \ + TAB, HOME, PGDN, UP, PGUP, END, HOME, PGDN, PGUP, END, TRNS, TRNS, TRNS, TRNS, \ + LCTL, TRNS, LEFT, DOWN, RGHT, TRNS, LEFT, DOWN, UP, RGHT, TRNS, TRNS, TRNS, ENT, \ + LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END, TRNS, TRNS, RSFT, TRNS, \ + LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL), + /* Overlay 6: Mouse mode (Semicolon/App) +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚Graveβ”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚BkSpcβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ Tab β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ MwL β”‚ MwD β”‚ MwU β”‚ MwR β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚ β”‚ Ac0 β”‚ Ac1 β”‚ Ac2 β”‚ β”‚ McL β”‚ McD β”‚ McU β”‚ McR β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSFHTβ”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ Mb3 β”‚ Mb2 β”‚ Mb1 β”‚ Mb4 β”‚ Mb5 β”‚ β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Mb1 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + KEYMAP( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, BSPC, \ + TAB, TRNS, TRNS, TRNS, TRNS, TRNS, WH_L, WH_D, WH_U, WH_R, TRNS, TRNS, TRNS, TRNS, \ + LCTL, TRNS, ACL0, ACL1, ACL2, TRNS, MS_L, MS_D, MS_U, MS_R, TRNS, TRNS, TRNS, ENT, \ + LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, BTN3, BTN2, BTN1, BTN4, BTN5, TRNS, TRNS, RSFT, TRNS, \ + LCTL, LGUI, LALT, BTN1, TRNS, TRNS, TRNS, RCTL), + /* Overlay 7: Layout selector +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ Lq β”‚ Lc β”‚ Ld β”‚ Lw β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ Lq β”‚ Lw β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ Ld β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ Lc β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + +Lq: set Qwerty layout +Lc: set Colemak layout +Ld: set Dvorak layout +Lw: set Workman layout + + */ + KEYMAP( + FN5, FN6, FN7, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, FN5, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, FN7, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, FN6, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(4), + [1] = ACTION_LAYER_TAP_KEY(5, KC_SLASH), + [2] = ACTION_LAYER_TAP_KEY(6, KC_SCLN), + [3] = ACTION_LAYER_MOMENTARY(6), + [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector + [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout + [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout + [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout + [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout + [9] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_GRV), +}; diff --git a/keyboards/s60-x/keymaps/hasu/readme.md b/keyboards/s60-x/keymaps/hasu/readme.md new file mode 100644 index 0000000000..64969b616d --- /dev/null +++ b/keyboards/s60-x/keymaps/hasu/readme.md @@ -0,0 +1,4 @@ +ο»Ώ### 5. Hasu +This is Hasu's favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail. + +(Hasu is the initial creator of the TMK firmware, in case you weren't aware.) \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/hhkb/keymap.c b/keyboards/s60-x/keymaps/hhkb/keymap.c new file mode 100644 index 0000000000..a6e5b3279a --- /dev/null +++ b/keyboards/s60-x/keymaps/hhkb/keymap.c @@ -0,0 +1,52 @@ +#include "keymap_common.h" + +/* + * HHKB Layout + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: Default layer +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ Esc β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚ \ β”‚ ` β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚BkSpcβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚Ctrl β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ Fn3 β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚Shiftβ”‚ Fn β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚β–’β–’β–’β–’β–’β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–’β–’β–’β–’β–’β”‚ Alt β”‚ Gui β”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSLS, GRV, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSPC, \ + LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ + LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, FN0, \ + NO, LGUI, LALT, SPC, NO, RALT, RGUI, NO), + /* 1: HHKB Fn layer +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ Pwr β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚ Ins β”‚ Del β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚Caps β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Psc β”‚ Slk β”‚ Pus β”‚ Up β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ VoD β”‚ VoU β”‚ Mut β”‚ Ejc β”‚ β”‚NP_* β”‚NP_/ β”‚Home β”‚PgUp β”‚Left β”‚Rightβ”‚β–’β–’β–’β–’β–’β”‚NPEntβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚NP_+ β”‚NP_- β”‚ End β”‚PgDwnβ”‚Down β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, SLCK, PAUS, UP, TRNS, TRNS, \ + TRNS, VOLD, VOLU, MUTE, EJCT, TRNS, PAST, PSLS, HOME, PGUP, LEFT, RGHT, NO, PENT, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PPLS, PMNS, END, PGDN, DOWN, NO, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), +}; diff --git a/keyboards/s60-x/keymaps/hhkb/readme.md b/keyboards/s60-x/keymaps/hhkb/readme.md new file mode 100644 index 0000000000..2bceb26dd5 --- /dev/null +++ b/keyboards/s60-x/keymaps/hhkb/readme.md @@ -0,0 +1,26 @@ +ο»Ώ### 7. HHKB +[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers. +#### 7.0: Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Esc β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚ \ β”‚ ` β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚BkSpcβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ Fn3 β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚Shiftβ”‚ Fn β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚β–’β–’β–’β–’β–’β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–’β–’β–’β–’β–’β”‚ Alt β”‚ Gui β”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 7.1: HHKB Fn layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Pwr β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚ Ins β”‚ Del β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Psc β”‚ Slk β”‚ Pus β”‚ Up β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ VoD β”‚ VoU β”‚ Mut β”‚ Ejc β”‚ β”‚ * β”‚ / β”‚Home β”‚PgUp β”‚Left β”‚Rightβ”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ + β”‚ - β”‚ End β”‚PgDwnβ”‚Down β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ diff --git a/keyboards/s60-x/keymaps/iso/keymap.c b/keyboards/s60-x/keymaps/iso/keymap.c new file mode 100644 index 0000000000..ad597cd7d4 --- /dev/null +++ b/keyboards/s60-x/keymaps/iso/keymap.c @@ -0,0 +1,48 @@ +#include "keymap_common.h" + +/* 0: Main layer +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ ESC β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚CAPSLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚NUHS β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚ \ β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚ FN0 β”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +*/ + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: ANSI qwerty */ + KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, NO, \ + CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NUHS, ENT , \ + LSFT, BSLS, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, RALT, FN0, APP, RCTL), + +/* 1: Fn layer +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚GRAVEβ”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚PGUP β”‚PGDWNβ”‚PRTSCβ”‚SCLCKβ”‚PAUSEβ”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +*/ + KEYMAP( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ + TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, PGDN, PSCR, SLCK, PAUS, TRNS, \ + TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay +}; diff --git a/keyboards/s60-x/keymaps/iso/readme.md b/keyboards/s60-x/keymaps/iso/readme.md new file mode 100644 index 0000000000..2c06bf86f0 --- /dev/null +++ b/keyboards/s60-x/keymaps/iso/readme.md @@ -0,0 +1,28 @@ +ο»Ώ### 2 Standard - ISO +The same as the standard keymap, but with additional ISO keys. + + +#### 2.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ESC β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚CAPSLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚NUHS β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚LSHFTβ”‚ \ β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚ FN0 β”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 2.1 Fn layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚GRAVEβ”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚PGUP β”‚PGDWNβ”‚PRTSCβ”‚SCLCKβ”‚PAUSEβ”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ diff --git a/keyboards/s60-x/keymaps/jpec/keymap.c b/keyboards/s60-x/keymaps/jpec/keymap.c new file mode 100644 index 0000000000..3b680c3072 --- /dev/null +++ b/keyboards/s60-x/keymaps/jpec/keymap.c @@ -0,0 +1,92 @@ +/* +Copyright 2016 Julien Pecqueur +Copyright 2016 Felix Uhl + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "s60-x.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layout 0: Default Layer + * ,-----------------------------------------------------------. + * |` | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Fn1 |Gui |Alt | SpaceFn |Alt |Gui |App |Ctrl| + * `-----------------------------------------------------------' + */ + KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ + LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NUHS, ENT, \ + LSFT, NUBS, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + FN1, LGUI, LALT, FN0, RALT, RGUI, APP, RCTL), + + /* Layout 1: Function Layer + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | + * |-----------------------------------------------------------| + * | |Prv|Ply|Nxt|Stp| | |PUp|Up |PDn| |Slk|Pau|Ins | + * |-----------------------------------------------------------| + * | |Vl-|Mut|Vl+| | |Hom|Lef|Dow|Rig|End| |PEnt | + * |-----------------------------------------------------------| + * | |Prt|Cut|Cop|Pst|Cal| | | | | |CapsLock | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \ + TRNS, MPRV, MPLY, MNXT, MSTP, TRNS, TRNS, PGUP, UP, PGDN, TRNS, SLCK, PAUS, INS, \ + TRNS, VOLD, MUTE, VOLU, TRNS, TRNS, HOME, LEFT, DOWN, RGHT, END, TRNS, TRNS, PENT, \ + TRNS, TRNS, PSCR, FN2, FN3, FN4, CALC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CAPS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +}; + +/* +* Fn action definition +*/ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), /* SpaceFn layout 1 */ + [1] = ACTION_LAYER_MOMENTARY(1), /* Momentary layout 1 */ + [2] = ACTION_MODS_KEY(MOD_LSFT, KC_DEL), /* Cut */ + [3] = ACTION_MODS_KEY(MOD_LCTL, KC_INS), /* Copy */ + [4] = ACTION_MODS_KEY(MOD_LSFT, KC_INS), /* Paste */ +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/jpec/readme.md b/keyboards/s60-x/keymaps/jpec/readme.md new file mode 100644 index 0000000000..73318dad72 --- /dev/null +++ b/keyboards/s60-x/keymaps/jpec/readme.md @@ -0,0 +1 @@ +# The default keymap for s60-x \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/plain/keymap.c b/keyboards/s60-x/keymaps/plain/keymap.c new file mode 100644 index 0000000000..0f0cdee2a4 --- /dev/null +++ b/keyboards/s60-x/keymaps/plain/keymap.c @@ -0,0 +1,25 @@ +#include "keymap_common.h" + +/* Main layer: +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ ESC β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚CAPSLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_GUIβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +*/ + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ + CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ + LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL), +}; +const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboards/s60-x/keymaps/plain/readme.md b/keyboards/s60-x/keymaps/plain/readme.md new file mode 100644 index 0000000000..ab13323e3b --- /dev/null +++ b/keyboards/s60-x/keymaps/plain/readme.md @@ -0,0 +1,16 @@ +ο»Ώ### 4. Plain +Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host. +See [keymap_plain.c](keymap_plain.c) for detail. + +#### 4.0 Plain Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Esc β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BkSpcβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Alt β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ diff --git a/keyboards/s60-x/keymaps/poker/keymap.c b/keyboards/s60-x/keymaps/poker/keymap.c new file mode 100644 index 0000000000..5fc970a040 --- /dev/null +++ b/keyboards/s60-x/keymaps/poker/keymap.c @@ -0,0 +1,180 @@ +#include "keymap_common.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚CAPSLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ + CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ + LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL), + /* 1: colemak +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ W β”‚ F β”‚ P β”‚ G β”‚ J β”‚ L β”‚ U β”‚ Y β”‚ ; β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚BKSPCβ”‚ A β”‚ R β”‚ S β”‚ T β”‚ D β”‚ H β”‚ N β”‚ E β”‚ I β”‚ O β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ K β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN, LBRC, RBRC, BSLS, \ + BSPC, A, R, S, T, D, H, N, E, I, O, QUOT, NO, ENT, \ + LSFT, NO, Z, X, C, V, B, K, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL), + /* 2: dvorak +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ [ β”‚ ] β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ ' β”‚ , β”‚ . β”‚ P β”‚ Y β”‚ F β”‚ G β”‚ C β”‚ R β”‚ L β”‚ / β”‚ = β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚CAPSLβ”‚ A β”‚ O β”‚ E β”‚ U β”‚ I β”‚ D β”‚ H β”‚ T β”‚ N β”‚ S β”‚ - β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ ; β”‚ Q β”‚ J β”‚ K β”‚ X β”‚ B β”‚ M β”‚ W β”‚ V β”‚ Z β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC, RBRC, NO, BSPC, \ + TAB, QUOT, COMM, DOT, P, Y, F, G, C, R, L, SLSH, EQL, BSLS, \ + CAPS, A, O, E, U, I, D, H, T, N, S, MINS, NO, ENT, \ + LSFT, NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL), + /* 3: workman +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ D β”‚ E β”‚ W β”‚ B β”‚ J β”‚ F β”‚ U β”‚ P β”‚ ; β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚BKSPCβ”‚ A β”‚ S β”‚ H β”‚ T β”‚ G β”‚ Y β”‚ N β”‚ E β”‚ O β”‚ I β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ M β”‚ C β”‚ V β”‚ K β”‚ L β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN, LBRC, RBRC, BSLS, \ + BSPC, A, S, H, T, G, Y, N, E, O, I, QUOT, NO, ENT, \ + LSFT, NO, Z, X, M, C, V, K, L, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL), + /* 4: Poker with Arrow +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Up β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, RGHT), + /* 5: Poker with Esc +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ ESC β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + /* 6: Poker Fn +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ Esc β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ FnQ β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Cal β”‚ β”‚Home β”‚ Ins β”‚ FnL β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ β”‚ Tsk β”‚ End β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ β”‚ Web β”‚Mute β”‚ VoU β”‚ VoD β”‚ β”‚PgUp β”‚PgDwnβ”‚ Del β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ FnS β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + +Fn: to Fn overlay +FnL: to Layout selector overaly +FnQ: toggle Esc overlay +FnS: toggle Arrow overlay + + */ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ + TRNS, FN2, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, FN4, \ + TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN3, END, TRNS, TRNS, \ + TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, FN1, TRNS, TRNS, TRNS, TRNS), + /* 7: Layout selector +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ Lq β”‚ Lc β”‚ Ld β”‚ Lw β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ Lq β”‚ Lw β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ Ld β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ Lc β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + +Lq: set Qwerty layout +Lc: set Colemak layout +Ld: set Dvorak layout +Lw: set Workman layout + + */ + KEYMAP( + FN5, FN6, FN7, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, FN5, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, FN7, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, FN6, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +}; +const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay + [1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay + [2] = ACTION_LAYER_TOGGLE(5), // toggle Esc overlay + [3] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // Task(RControl,RShift+Esc) + [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector + [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout + [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout + [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout + [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout +}; diff --git a/keyboards/s60-x/keymaps/poker/readme.md b/keyboards/s60-x/keymaps/poker/readme.md new file mode 100644 index 0000000000..0d8be9d0f8 --- /dev/null +++ b/keyboards/s60-x/keymaps/poker/readme.md @@ -0,0 +1,31 @@ +ο»Ώ### 3 Poker +[keymap_poker.c](keymap_poker.c) emulates original Poker layers +while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. + + Fn + Esc = ` + Fn + {left, down, up, right} = {home, pgdown, pgup, end} + +#### 3.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ` β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BkSpcβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 3.1 Poker Fn layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Esc β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ FnQ β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Cal β”‚ β”‚Home β”‚ Ins β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ β”‚ Tsk β”‚ End β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ β”‚ Web β”‚Mute β”‚ VoU β”‚ VoD β”‚ β”‚PgUp β”‚PgDwnβ”‚ Del β”‚β–’β–’β–’β–’β–’β”‚ Up β”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ FnS β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ diff --git a/keyboards/s60-x/keymaps/poker_bit/keymap.c b/keyboards/s60-x/keymaps/poker_bit/keymap.c new file mode 100644 index 0000000000..4a4cfd1be8 --- /dev/null +++ b/keyboards/s60-x/keymaps/poker_bit/keymap.c @@ -0,0 +1,110 @@ +#include "keymap_common.h" + +// Poker fix with toggle and bit operation +// Fn + Esc = ` +// Fn + {left, down, up, right} = {home, pgdown, pgup, end} +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ + LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ + LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL), + /* 4: Poker Default + Fn'd +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ Esc β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚Caps β”‚ Fn2 β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Cal β”‚ β”‚Home β”‚ Ins β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ β”‚ Fn4 β”‚ End β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ β”‚ Web β”‚Mute β”‚ VoU β”‚ VoD β”‚ β”‚PgUp β”‚PgDwnβ”‚ Del β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn1 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + [4] = KEYMAP( + TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ + CAPS, FN2, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ + TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN4, END, TRNS, TRNS, \ + TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, FN1, TRNS, TRNS, TRNS, TRNS), + /* 5: Poker with Arrow +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚PgUp β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn3 β”‚Home β”‚PgDwnβ”‚ End β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, TRNS, \ + TRNS, TRNS, TRNS, TRNS, FN3, HOME, PGDN, END), + /* 6: Poker with Esc +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ ESC β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + /* 7: Poker with Arrow + Fn'd +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Up β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, RGHT), +}; +const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_BIT_XOR(1, 0b0101, ON_BOTH), // Poker Fn(with fix for Esc) + [1] = ACTION_LAYER_TOGGLE(5), // Poker Arrow toggle + [2] = ACTION_LAYER_TOGGLE(6), // Poker Esc toggle + [3] = ACTION_LAYER_BIT_XOR(1, 0b1101, ON_BOTH), // Poker Fn(with fix for Arrow) + [4] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN3 Task(RControl,RShift+Esc) +}; diff --git a/keyboards/s60-x/keymaps/poker_bit/readme.md b/keyboards/s60-x/keymaps/poker_bit/readme.md new file mode 100644 index 0000000000..0d8be9d0f8 --- /dev/null +++ b/keyboards/s60-x/keymaps/poker_bit/readme.md @@ -0,0 +1,31 @@ +ο»Ώ### 3 Poker +[keymap_poker.c](keymap_poker.c) emulates original Poker layers +while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. + + Fn + Esc = ` + Fn + {left, down, up, right} = {home, pgdown, pgup, end} + +#### 3.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ` β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BkSpcβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 3.1 Poker Fn layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Esc β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ FnQ β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Cal β”‚ β”‚Home β”‚ Ins β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ β”‚ Tsk β”‚ End β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ β”‚ Web β”‚Mute β”‚ VoU β”‚ VoD β”‚ β”‚PgUp β”‚PgDwnβ”‚ Del β”‚β–’β–’β–’β–’β–’β”‚ Up β”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ FnS β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ diff --git a/keyboards/s60-x/keymaps/poker_set/keymap.c b/keyboards/s60-x/keymaps/poker_set/keymap.c new file mode 100644 index 0000000000..0c1ef1a9b9 --- /dev/null +++ b/keyboards/s60-x/keymaps/poker_set/keymap.c @@ -0,0 +1,178 @@ +#include "keymap_common.h" + +// Poker fix with set(state transition) +// Fn + Esc = ` +// Fn + {left, down, up, right} = {home, pgdown, pgup, end} +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ + LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ + LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, FN0, RGUI, APP, RCTL), + /* 1: Poker with Arrow +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Up β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn1 β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS, \ + TRNS, TRNS, TRNS, TRNS, FN1, LEFT, DOWN, RGHT), + /* 2: Poker with Esc +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ ESC β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn2 β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS), + /* 3: Poker with Arrow and Esc +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ Esc β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Up β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn3 β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS, \ + TRNS, TRNS, TRNS, TRNS, FN3, LEFT, DOWN, RGHT), + /* 4: Poker Fn'd +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ Esc β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ Fn6 β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Cal β”‚ β”‚Home β”‚ Ins β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ β”‚ Fn8 β”‚ End β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ β”‚ Web β”‚Mute β”‚ VoU β”‚ VoD β”‚ β”‚PgUp β”‚PgDwnβ”‚ Del β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn5 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn4 β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ + TRNS, FN6, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ + TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ + TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, FN5, FN4, TRNS, TRNS, TRNS), + /* 5: Poker Fn'd arrow +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ Esc β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ Fn7 β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Cal β”‚ β”‚Home β”‚ Ins β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ β”‚ Fn8 β”‚ End β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ β”‚ Web β”‚Mute β”‚ VoU β”‚ VoD β”‚ β”‚PgUp β”‚PgDwnβ”‚ Del β”‚β–’β–’β–’β–’β–’β”‚PgUp β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn4 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn5 β”‚Home β”‚PgDwnβ”‚ End β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ + TRNS, FN7, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ + TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ + TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, PGUP, TRNS, \ + TRNS, TRNS, TRNS, FN4, FN5, HOME, PGDN, END), + /* 6: Poker Fn'd Esc +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚Graveβ”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ Fn4 β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Cal β”‚ β”‚Home β”‚ Ins β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ β”‚ Fn8 β”‚ End β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ β”‚ Web β”‚Mute β”‚ VoU β”‚ VoD β”‚ β”‚PgUp β”‚PgDwnβ”‚ Del β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn7 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn6 β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ + TRNS, FN4, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ + TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ + TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, FN7, FN6, TRNS, TRNS, TRNS), + /* 7: Poker Fn'd Arrow + Esc +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚Graveβ”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ Fn5 β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Cal β”‚ β”‚Home β”‚ Ins β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ β”‚ Fn8 β”‚ End β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ β”‚ Web β”‚Mute β”‚ VoU β”‚ VoD β”‚ β”‚PgUp β”‚PgDwnβ”‚ Del β”‚β–’β–’β–’β–’β–’β”‚PgUp β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn6 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn7 β”‚Home β”‚PgDwnβ”‚ End β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ + TRNS, FN5, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ + TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ + TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, PGUP, TRNS, \ + TRNS, TRNS, TRNS, FN6, FN7, HOME, PGDN, END), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_SET(4, ON_PRESS), // FN0 move to Fn'd when press + [1] = ACTION_LAYER_SET(5, ON_PRESS), // FN1 move to Fn'd arrow when press + [2] = ACTION_LAYER_SET(6, ON_PRESS), // FN2 move to Fn'd Esc when press + [3] = ACTION_LAYER_SET(7, ON_PRESS), // FN3 move to Fn'd arrow + Esc when press + + //[4] = ACTION_LAYER_CLEAR(ON_RELEASE), // FN4 clear overlay when release + [4] = ACTION_LAYER_SET(0, ON_RELEASE), // FN4 clear overlay when release + [5] = ACTION_LAYER_SET(1, ON_RELEASE), // FN5 move to arrow when release + [6] = ACTION_LAYER_SET(2, ON_RELEASE), // FN6 move to Esc when release + [7] = ACTION_LAYER_SET(3, ON_RELEASE), // FN7 move to arrow + Esc when release + + [8] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN8 Task(RControl,RShift+Esc) +}; diff --git a/keyboards/s60-x/keymaps/poker_set/readme.md b/keyboards/s60-x/keymaps/poker_set/readme.md new file mode 100644 index 0000000000..0d8be9d0f8 --- /dev/null +++ b/keyboards/s60-x/keymaps/poker_set/readme.md @@ -0,0 +1,31 @@ +ο»Ώ### 3 Poker +[keymap_poker.c](keymap_poker.c) emulates original Poker layers +while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. + + Fn + Esc = ` + Fn + {left, down, up, right} = {home, pgdown, pgup, end} + +#### 3.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ` β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BkSpcβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 3.1 Poker Fn layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Esc β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ FnQ β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Cal β”‚ β”‚Home β”‚ Ins β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ β”‚ Tsk β”‚ End β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ β”‚ Web β”‚Mute β”‚ VoU β”‚ VoD β”‚ β”‚PgUp β”‚PgDwnβ”‚ Del β”‚β–’β–’β–’β–’β–’β”‚ Up β”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ FnS β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ diff --git a/keyboards/s60-x/keymaps/spacefn/keymap.c b/keyboards/s60-x/keymaps/spacefn/keymap.c new file mode 100644 index 0000000000..c930705320 --- /dev/null +++ b/keyboards/s60-x/keymaps/spacefn/keymap.c @@ -0,0 +1,55 @@ +#include "keymap_common.h" + +/* + * SpaceFN + * http://geekhack.org/index.php?topic=51069.0 + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: Default Layer +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ ESC β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚CAPSLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆSpc/Fn0β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_GUIβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ + CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ + LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, FN0, RALT, RGUI, APP, RCTL), + + /* Overlay 1: SpaceFN +β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” +β”‚ ` β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ Esc β”‚ β”‚ β”‚ β”‚Home β”‚ Up β”‚ End β”‚Pscr β”‚Slck β”‚Pauseβ”‚ Ins β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚PgUp β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚Spaceβ”‚PgDwnβ”‚ ` β”‚ ~ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ +β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ +β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ +β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + */ + KEYMAP( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \ + TRNS, TRNS, TRNS, ESC, TRNS, TRNS, TRNS, HOME, UP, END, PSCR, SLCK, PAUS, INS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, SPC, PGDN, GRV, FN1, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), + [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde +}; diff --git a/keyboards/s60-x/keymaps/spacefn/readme.md b/keyboards/s60-x/keymaps/spacefn/readme.md new file mode 100644 index 0000000000..d04bd94865 --- /dev/null +++ b/keyboards/s60-x/keymaps/spacefn/readme.md @@ -0,0 +1,27 @@ +ο»Ώ### 6. SpaceFN +This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). + +#### 6.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Esc β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BkSpcβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆ Space/Fn β–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Alt β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 6.1 SpaceFN layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ` β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚Home β”‚ Up β”‚ End β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ Ins β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚PgUp β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚Spaceβ”‚PgDwnβ”‚ ` β”‚ ~ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Alt β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ diff --git a/keyboards/s60-x/readme.md b/keyboards/s60-x/readme.md index 34c48b0b7d..0872c2e018 100644 --- a/keyboards/s60-x/readme.md +++ b/keyboards/s60-x/readme.md @@ -1,32 +1,248 @@ -S60-x keyboard firmware +ο»ΏS60-x keyboard firmware ====================== -DIY compact keyboard by Massdrop. This is a port from TMK to QMK based on the [original S60-X Repo](https://github.com/jpec/s60x). +DIY compact keyboard designed by VinnyCordeiro for Sentraq. Most of the keymaps are based on GH60 code. This is a port from TMK to QMK based on the [original S60-X Repo](https://github.com/VinnyCordeiro/tmk_keyboard). ## S60X Resources -- [Massdrop page](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit) +- [Massdrop page](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open) ## Quantum MK Firmware -For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). +For the full Quantum feature list, see [the parent readme.md](/readme.md). -## Building +## Keymap +Several versions of keymaps are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. -Download or clone the whole firmware and navigate to the keyboards/s60-x folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. +To build firmware binary hex file with a certain keymap just run `make` with the `keymap` option like: -Depending on which keymap you would like to use, you will have to compile slightly differently. + $ make keymap=[custom|poker|poker_set|poker_bit|plain|hasu|spacefn|hhkb|] -### Default +File [S60-X_pre-compiled_firmwares.zip](S60-X_pre-compiled_firmwares.zip) contains pre-compiled firmwares for all keymaps available. Not all of them are tested. -To build with the default keymap, simply run `make`. -### Other Keymaps +## Flashing your keyboard +The recommended programs for flashing your keyboard are [Atmel FLIP](http://www.atmel.com/tools/FLIP.aspx) (Windows) and [dfu-programmer](http://dfu-programmer.sourceforge.net/) (Linux/Windows). -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. +[QMK Firmware Flasher](https://github.com/jackhumbert/qmk_firmware_flasher/releases) may work, as the S60-X keyboard uses the ATMega32U4 microcontroller, but it is untested. Use at your own risk. -To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: +[Easy AVR USB Keyboard Firmware](https://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware) also supports S60-X, but it is completely unrelated to TMK firmware. Use at your own risk. -``` -$ make keymap=[default|] -``` +**Programming the firmware (Windows)** -Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` \ No newline at end of file +1. download and install FLIP (http://www.atmel.com/tools/FLIP.aspx) +2. connect the keyboard, press the program button (S1) and wait until it enumerates +3. go to device manager, find the atmega32u4 chip and click "update driver" +4. choose location manually: folder named "usb" inside the installation directory of FLIP +5. once the driver is installed, run flip +6. Device -> Select: choose ATMega32U4 +7. Settings -> Communication -> USB, FLIP should show the signature at this point (58 1E 95 87) +8. File -> Load HEX file: choose the hex firmware: .hex +9. click "Run" +10. after programming is done, disconnect the device from USB and connect again. + + +**Programming the firmware (Linux)** + +1. Download and install/compile/unpack dfu-programmer from http://dfu-programmer.sourceforge.net/. +2. Issue the following commands in the command prompt after connecting the device and pressing the programming button (S1). You may need root permissions or udev rules to do that. + 1. `sudo dfu-programmer atmega32u4 erase` + 2. `sudo dfu-programmer atmega32u4 flash .hex` + 3. `sudo dfu-programmer atmega32u4 start` +3. The keyboard should start working. If it doesn't, reconnect the cable. + + +### 0 Initial explanations +The β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ blocks on the layouts hides the switch positions that do not exist physically on the PCB. If you feel like hacking the keyboard and adding new keys, those are the positions that can be used. You'll have to modify the [keymap_common.h](keymap_common.h) file for that. + +The β–’β–’β–’β–’β–’ blocks hides switch positions not used on this particular layout, but they do exist on the PCB. + +There is no LED support on the PCB at the moment, but I'll let the code for that untouched. + + +### 1 Standard - ANSI +The standard keymap is the one that is pre-flashed on the S60-X. + +#### 1.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ESC β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚CAPSLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚LSHFTβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚ FN0 β”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 1.1 Fn layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚GRAVEβ”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚PGUP β”‚PGDWNβ”‚PRTSCβ”‚SCLCKβ”‚PAUSEβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + + +### 2 Standard - ISO +The same as the standard keymap, but with additional ISO keys. + + +#### 2.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ESC β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ TAB β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚CAPSLβ”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚NUHS β”‚ENTERβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚LSHFTβ”‚ \ β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚RSHFTβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚ FN0 β”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 2.1 Fn layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚GRAVEβ”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚PGUP β”‚PGDWNβ”‚PRTSCβ”‚SCLCKβ”‚PAUSEβ”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + + +### 3 Poker +[keymap_poker.c](keymap_poker.c) emulates original Poker layers +while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. + + Fn + Esc = ` + Fn + {left, down, up, right} = {home, pgdown, pgup, end} + +#### 3.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ` β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BkSpcβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 3.1 Poker Fn layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Esc β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ FnQ β”‚ Up β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Cal β”‚ β”‚Home β”‚ Ins β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ β”‚ Tsk β”‚ End β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ β”‚ Web β”‚Mute β”‚ VoU β”‚ VoD β”‚ β”‚PgUp β”‚PgDwnβ”‚ Del β”‚β–’β–’β–’β–’β–’β”‚ Up β”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ FnS β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + + +### 4. Plain +Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host. +See [keymap_plain.c](keymap_plain.c) for detail. + +#### 4.0 Plain Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Esc β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BkSpcβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Alt β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + + +### 5. Hasu +This is Hasu's favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail. + +(Hasu is the creator of the TMK firmware, for those who do not know that.) + + +### 6. SpaceFN +This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). + +#### 6.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Esc β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BkSpcβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆ Space/Fn β–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Alt β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 6.1 SpaceFN layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ` β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ Del β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚Home β”‚ Up β”‚ End β”‚ Psc β”‚ Slk β”‚Pauseβ”‚ Ins β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚PgUp β”‚Left β”‚Down β”‚Rightβ”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚Spaceβ”‚PgDwnβ”‚ ` β”‚ ~ β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚β–’β–’β–’β–’β–’β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Alt β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + + +### 7. HHKB +[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers. +#### 7.0: Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Esc β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚ \ β”‚ ` β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚BkSpcβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ Fn3 β”‚ ' β”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚β–’β–’β–’β–’β–’β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚β–’β–’β–’β–’β–’β”‚Shiftβ”‚ Fn β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚β–’β–’β–’β–’β–’β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–’β–’β–’β–’β–’β”‚ Alt β”‚ Gui β”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ +#### 7.1: HHKB Fn layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ Pwr β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚ Ins β”‚ Del β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Psc β”‚ Slk β”‚ Pus β”‚ Up β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚ VoD β”‚ VoU β”‚ Mut β”‚ Ejc β”‚ β”‚ * β”‚ / β”‚Home β”‚PgUp β”‚Left β”‚Rightβ”‚β–’β–’β–’β–’β–’β”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ + β”‚ - β”‚ End β”‚PgDwnβ”‚Down β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + + +### 8 Custom +The custom keymap - [keymap_custom.c](keymap_custom.c) - is where I tested all the switches, not being concerned with a specific layout or layers. It's a plain layout option with the extra keys used on ISO & HHKB layouts being assigned some other keys. + +#### 8.0 Default layer + β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” + β”‚ ` β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚PgUp β”‚BkSpcβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚ Tab β”‚ Q β”‚ W β”‚ E β”‚ R β”‚ T β”‚ Y β”‚ U β”‚ I β”‚ O β”‚ P β”‚ [ β”‚ ] β”‚ \ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Caps β”‚ A β”‚ S β”‚ D β”‚ F β”‚ G β”‚ H β”‚ J β”‚ K β”‚ L β”‚ ; β”‚ ' β”‚PgDwnβ”‚Enterβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Shiftβ”‚Home β”‚ Z β”‚ X β”‚ C β”‚ V β”‚ B β”‚ N β”‚ M β”‚ , β”‚ . β”‚ / β”‚ End β”‚Shiftβ”‚ Up β”‚ + β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ + β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Alt β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ + β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ diff --git a/keyboards/s60-x/s60-x.h b/keyboards/s60-x/s60-x.h index 68f2ab22f2..91e7b67f31 100644 --- a/keyboards/s60-x/s60-x.h +++ b/keyboards/s60-x/s60-x.h @@ -22,6 +22,11 @@ along with this program. If not, see . #include "quantum.h" +#ifdef __INTELLISENSE__ +#define PROGMEM +#include "config.h" +#endif + /* S60-X keymap definition macro * K31 is the extra key next to short left ISO shift * K2C is the moved key next to enter on ISO boards From ec75c04663e9e8cc4682f8e1239dafd6816e2cf3 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Sun, 14 Aug 2016 11:44:43 +0200 Subject: [PATCH 05/19] Fixed links to keymap sources --- keyboards/s60-x/readme.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/keyboards/s60-x/readme.md b/keyboards/s60-x/readme.md index 0872c2e018..d01e1a12eb 100644 --- a/keyboards/s60-x/readme.md +++ b/keyboards/s60-x/readme.md @@ -58,7 +58,7 @@ The β–’β–’β–’β–’β–’ blocks hides switch positions not used on this particular la There is no LED support on the PCB at the moment, but I'll let the code for that untouched. -### 1 Standard - ANSI +### 1 [Standard - ANSI (default layout)](keymaps/default/keymap.c) The standard keymap is the one that is pre-flashed on the S60-X. #### 1.0 Default layer @@ -87,7 +87,7 @@ The standard keymap is the one that is pre-flashed on the S60-X. β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ -### 2 Standard - ISO +### 2 [Standard - ISO](keymaps/iso/keymap.c) The same as the standard keymap, but with additional ISO keys. @@ -118,8 +118,8 @@ The same as the standard keymap, but with additional ISO keys. ### 3 Poker -[keymap_poker.c](keymap_poker.c) emulates original Poker layers -while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. +[The poker keymap](keymaps/poker/keymap.c) emulates original Vortex Poker layers +while both [poker_bit](keymaps/poker_bit/keymap.c) and [poker_set](keymap/poker_set/keymap.c) implement the same layout in a slightly different way, fix a minor issue of the original poker Layout and enhance arrow keys. Fn + Esc = ` Fn + {left, down, up, right} = {home, pgdown, pgup, end} @@ -150,9 +150,8 @@ while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](key β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ -### 4. Plain +### 4. [Plain](keymaps/plain/keymap.c) Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host. -See [keymap_plain.c](keymap_plain.c) for detail. #### 4.0 Plain Default layer β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” @@ -168,14 +167,14 @@ See [keymap_plain.c](keymap_plain.c) for detail. β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ -### 5. Hasu -This is Hasu's favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail. +### 5. [Hasu](keymaps/hasu/keymap.c) +This is Hasu's favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. (Hasu is the creator of the TMK firmware, for those who do not know that.) -### 6. SpaceFN -This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). +### 6. [SpaceFN](keymaps/spacefn/keymap.c) +This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. Check the sourcefile and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0) for more information. #### 6.0 Default layer β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” @@ -203,8 +202,8 @@ This layout proposed by spiceBar uses space bar to change layer with using Dual β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ -### 7. HHKB -[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers. +### 7. [HHKB](keymap/hhkb/keymap.c) +The HHKB keymap emulates original HHKB layers. #### 7.0: Default layer β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” β”‚ Esc β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚ \ β”‚ ` β”‚ @@ -231,8 +230,8 @@ This layout proposed by spiceBar uses space bar to change layer with using Dual β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ -### 8 Custom -The custom keymap - [keymap_custom.c](keymap_custom.c) - is where I tested all the switches, not being concerned with a specific layout or layers. It's a plain layout option with the extra keys used on ISO & HHKB layouts being assigned some other keys. +### 8 [Custom](keymaps/custom/keymap.c] +The custom keymap is where I tested all the switches, not being concerned with a specific layout or layers. It's a plain layout option with the extra keys used on ISO & HHKB layouts being assigned some other keys. #### 8.0 Default layer β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” From 6774f300da7954e3009d6c9b1ee7611327e7378a Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Sun, 14 Aug 2016 11:48:59 +0200 Subject: [PATCH 06/19] Update readme.md --- keyboards/s60-x/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/s60-x/readme.md b/keyboards/s60-x/readme.md index d01e1a12eb..1509625651 100644 --- a/keyboards/s60-x/readme.md +++ b/keyboards/s60-x/readme.md @@ -230,7 +230,7 @@ The HHKB keymap emulates original HHKB layers. β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ -### 8 [Custom](keymaps/custom/keymap.c] +### 8 [Custom](keymaps/custom/keymap.c) The custom keymap is where I tested all the switches, not being concerned with a specific layout or layers. It's a plain layout option with the extra keys used on ISO & HHKB layouts being assigned some other keys. #### 8.0 Default layer From df01d502d4b531cc29b3277e093dcf3b63150647 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Sun, 14 Aug 2016 13:07:03 +0200 Subject: [PATCH 07/19] Ported all keymaps Old TMK keymaps were ported and confirmed to compile All keymaps compiled and added to zip-archive. Documentation was updated. --- keyboards/s60-x/keymaps/custom/keymap.c | 6 ++-- keyboards/s60-x/keymaps/default/keymap.c | 8 ++--- keyboards/s60-x/keymaps/hasu/keymap.c | 20 +++++------ keyboards/s60-x/keymaps/hhkb/keymap.c | 24 ++++++------- keyboards/s60-x/keymaps/iso/keymap.c | 8 ++--- keyboards/s60-x/keymaps/jpec/keymap.c | 4 +-- keyboards/s60-x/keymaps/plain/keymap.c | 6 ++-- keyboards/s60-x/keymaps/poker/keymap.c | 40 ++++++++++----------- keyboards/s60-x/keymaps/poker_bit/keymap.c | 14 ++++---- keyboards/s60-x/keymaps/poker_set/keymap.c | 20 +++++------ keyboards/s60-x/keymaps/spacefn/keymap.c | 8 ++--- keyboards/s60-x/readme.md | 32 ++++++++++------- keyboards/s60-x/s60-x.h | 17 +++++++++ keyboards/s60-x/s60-x_precompiled.zip | Bin 0 -> 276106 bytes 14 files changed, 115 insertions(+), 92 deletions(-) create mode 100644 keyboards/s60-x/s60-x_precompiled.zip diff --git a/keyboards/s60-x/keymaps/custom/keymap.c b/keyboards/s60-x/keymaps/custom/keymap.c index 59361241fa..fb2a40b85e 100644 --- a/keyboards/s60-x/keymaps/custom/keymap.c +++ b/keyboards/s60-x/keymaps/custom/keymap.c @@ -1,4 +1,4 @@ -#include "keymap_common.h" +#include "s60-x.h" /* Main layer: Test layout, using all keys. @@ -16,9 +16,9 @@ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ - KEYMAP(GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, PGUP, BSPC, \ + LEGACY_KEYMAP(GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, PGUP, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, PGDN, ENT , \ LSFT, HOME, Z, X, C, V, B, N, M, COMM, DOT, SLSH, END, RSFT, UP, \ diff --git a/keyboards/s60-x/keymaps/default/keymap.c b/keyboards/s60-x/keymaps/default/keymap.c index be7a71aff0..eb0c6b056e 100644 --- a/keyboards/s60-x/keymaps/default/keymap.c +++ b/keyboards/s60-x/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "keymap_common.h" +#include "s60-x.h" /* 0: Main layer β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” @@ -14,9 +14,9 @@ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ - KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + LEGACY_KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT , \ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ @@ -35,7 +35,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, PGDN, PSCR, SLCK, PAUS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ diff --git a/keyboards/s60-x/keymaps/hasu/keymap.c b/keyboards/s60-x/keymaps/hasu/keymap.c index 46ea81fea2..cbeaae0281 100644 --- a/keyboards/s60-x/keymaps/hasu/keymap.c +++ b/keyboards/s60-x/keymaps/hasu/keymap.c @@ -1,9 +1,9 @@ -#include "keymap_common.h" +#include "s60-x.h" /* * Hasu */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Default Layer β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” β”‚ Esc β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ @@ -17,7 +17,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚ Fn3 β”‚ Fn3 β”‚ Fn0 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, FN2, QUOT, NO, ENT, \ @@ -36,7 +36,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_WINβ”‚ APP β”‚ Fn0 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, F, P, G, J, L, U, Y, SCLN, LBRC, RBRC, BSLS, \ BSPC, A, R, S, T, D, H, N, E, I, O, QUOT, NO, ENT, \ @@ -55,7 +55,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_WINβ”‚ APP β”‚ FN0 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC, RBRC, NO, BSPC, \ TAB, QUOT, COMM, DOT, P, Y, F, G, C, R, L, SLSH, EQL, BSLS, \ CAPS, A, O, E, U, I, D, H, T, N, S, MINS, NO, ENT, \ @@ -74,7 +74,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_WINβ”‚ APP β”‚ FN0 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, D, R, W, B, J, F, U, P, SCLN, LBRC, RBRC, BSLS, \ BSPC, A, S, H, T, G, Y, N, E, O, I, QUOT, NO, ENT, \ @@ -93,7 +93,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_GUIβ”‚ App β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \ CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, SLCK, PAUS, UP, TRNS, INS, \ LCTL, VOLD, VOLU, MUTE, TRNS, TRNS, PAST, PSLS, HOME, PGUP, LEFT, RGHT, TRNS, ENT, \ @@ -112,7 +112,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_GUIβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, BSPC, \ TAB, HOME, PGDN, UP, PGUP, END, HOME, PGDN, PGUP, END, TRNS, TRNS, TRNS, TRNS, \ LCTL, TRNS, LEFT, DOWN, RGHT, TRNS, LEFT, DOWN, UP, RGHT, TRNS, TRNS, TRNS, ENT, \ @@ -132,7 +132,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel */ - KEYMAP( + LEGACY_KEYMAP( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, BSPC, \ TAB, TRNS, TRNS, TRNS, TRNS, TRNS, WH_L, WH_D, WH_U, WH_R, TRNS, TRNS, TRNS, TRNS, \ LCTL, TRNS, ACL0, ACL1, ACL2, TRNS, MS_L, MS_D, MS_U, MS_R, TRNS, TRNS, TRNS, ENT, \ @@ -157,7 +157,7 @@ Ld: set Dvorak layout Lw: set Workman layout */ - KEYMAP( + LEGACY_KEYMAP( FN5, FN6, FN7, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, FN5, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, FN7, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ diff --git a/keyboards/s60-x/keymaps/hhkb/keymap.c b/keyboards/s60-x/keymaps/hhkb/keymap.c index a6e5b3279a..9afd1247f8 100644 --- a/keyboards/s60-x/keymaps/hhkb/keymap.c +++ b/keyboards/s60-x/keymaps/hhkb/keymap.c @@ -1,9 +1,9 @@ -#include "keymap_common.h" +#include "s60-x.h" /* * HHKB Layout */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: Default layer β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” β”‚ Esc β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚ \ β”‚ ` β”‚ @@ -17,12 +17,12 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚β–’β–’β–’β–’β–’β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–’β–’β–’β–’β–’β”‚ Alt β”‚ Gui β”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( - ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSLS, GRV, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSPC, \ + LEGACY_KEYMAP( + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSLS, GRV, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSPC, \ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, FN0, \ - NO, LGUI, LALT, SPC, NO, RALT, RGUI, NO), + NO, LGUI, LALT, SPC, NO, RALT, RGUI, NO), /* 1: HHKB Fn layer β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” β”‚ Pwr β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚ Ins β”‚ Del β”‚ @@ -36,12 +36,12 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–’β–’β–’β–’β–’β”‚ β”‚ β”‚β–’β–’β–’β–’β–’β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( - PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, SLCK, PAUS, UP, TRNS, TRNS, \ - TRNS, VOLD, VOLU, MUTE, EJCT, TRNS, PAST, PSLS, HOME, PGUP, LEFT, RGHT, NO, PENT, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PPLS, PMNS, END, PGDN, DOWN, NO, TRNS, TRNS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + LEGACY_KEYMAP( + PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, SLCK, PAUS, UP, TRNS, TRNS, \ + TRNS, VOLD, VOLU, MUTE, EJCT, TRNS, PAST, PSLS, HOME, PGUP, LEFT, RGHT, NO, PENT, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PPLS, PMNS, END, PGDN, DOWN, NO, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), }; /* diff --git a/keyboards/s60-x/keymaps/iso/keymap.c b/keyboards/s60-x/keymaps/iso/keymap.c index ad597cd7d4..43a9c48b05 100644 --- a/keyboards/s60-x/keymaps/iso/keymap.c +++ b/keyboards/s60-x/keymaps/iso/keymap.c @@ -1,4 +1,4 @@ -#include "keymap_common.h" +#include "s60-x.h" /* 0: Main layer β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” @@ -14,9 +14,9 @@ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ - KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + LEGACY_KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, NO, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NUHS, ENT , \ LSFT, BSLS, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ @@ -35,7 +35,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, PGDN, PSCR, SLCK, PAUS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ diff --git a/keyboards/s60-x/keymaps/jpec/keymap.c b/keyboards/s60-x/keymaps/jpec/keymap.c index 3b680c3072..c8fc133288 100644 --- a/keyboards/s60-x/keymaps/jpec/keymap.c +++ b/keyboards/s60-x/keymaps/jpec/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Fn1 |Gui |Alt | SpaceFn |Alt |Gui |App |Ctrl| * `-----------------------------------------------------------' */ - KEYMAP( + LEGACY_KEYMAP( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NUHS, ENT, \ @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - KEYMAP( + LEGACY_KEYMAP( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \ TRNS, MPRV, MPLY, MNXT, MSTP, TRNS, TRNS, PGUP, UP, PGDN, TRNS, SLCK, PAUS, INS, \ TRNS, VOLD, MUTE, VOLU, TRNS, TRNS, HOME, LEFT, DOWN, RGHT, END, TRNS, TRNS, PENT, \ diff --git a/keyboards/s60-x/keymaps/plain/keymap.c b/keyboards/s60-x/keymaps/plain/keymap.c index 0f0cdee2a4..790ac88e73 100644 --- a/keyboards/s60-x/keymaps/plain/keymap.c +++ b/keyboards/s60-x/keymaps/plain/keymap.c @@ -1,4 +1,4 @@ -#include "keymap_common.h" +#include "s60-x.h" /* Main layer: β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” @@ -14,9 +14,9 @@ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty */ - KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + LEGACY_KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ diff --git a/keyboards/s60-x/keymaps/poker/keymap.c b/keyboards/s60-x/keymaps/poker/keymap.c index 5fc970a040..0a8691792a 100644 --- a/keyboards/s60-x/keymaps/poker/keymap.c +++ b/keyboards/s60-x/keymaps/poker/keymap.c @@ -1,6 +1,6 @@ -#include "keymap_common.h" +#include "s60-x.h" -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ @@ -14,7 +14,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ @@ -33,7 +33,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, F, P, G, J, L, U, Y, SCLN, LBRC, RBRC, BSLS, \ BSPC, A, R, S, T, D, H, N, E, I, O, QUOT, NO, ENT, \ @@ -52,7 +52,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC, RBRC, NO, BSPC, \ TAB, QUOT, COMM, DOT, P, Y, F, G, C, R, L, SLSH, EQL, BSLS, \ CAPS, A, O, E, U, I, D, H, T, N, S, MINS, NO, ENT, \ @@ -71,7 +71,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, D, R, W, B, J, F, U, P, SCLN, LBRC, RBRC, BSLS, \ BSPC, A, S, H, T, G, Y, N, E, O, I, QUOT, NO, ENT, \ @@ -90,7 +90,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -109,12 +109,12 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), /* 6: Poker Fn β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” β”‚ Esc β”‚ F1 β”‚ F2 β”‚ F3 β”‚ F4 β”‚ F5 β”‚ F6 β”‚ F7 β”‚ F8 β”‚ F9 β”‚ F10 β”‚ F11 β”‚ F12 β”‚β–’β–’β–’β–’β–’β”‚ β”‚ @@ -134,8 +134,8 @@ FnQ: toggle Esc overlay FnS: toggle Arrow overlay */ - KEYMAP( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ + LEGACY_KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, FN2, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, FN4, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN3, END, TRNS, TRNS, \ TRNS, TRNS, DEL, TRNS, WHOM, MUTE, VOLU, VOLD, TRNS, PGUP, PGDN, DEL, TRNS, TRNS, TRNS, \ @@ -159,12 +159,12 @@ Ld: set Dvorak layout Lw: set Workman layout */ - KEYMAP( - FN5, FN6, FN7, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - TRNS, FN5, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - TRNS, TRNS, TRNS, FN7, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - TRNS, TRNS, TRNS, TRNS, FN6, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + LEGACY_KEYMAP( + FN5, FN6, FN7, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, FN5, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, FN7, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, FN6, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), }; const uint16_t PROGMEM fn_actions[] = { /* Poker Layout */ diff --git a/keyboards/s60-x/keymaps/poker_bit/keymap.c b/keyboards/s60-x/keymaps/poker_bit/keymap.c index 4a4cfd1be8..7626038f42 100644 --- a/keyboards/s60-x/keymaps/poker_bit/keymap.c +++ b/keyboards/s60-x/keymaps/poker_bit/keymap.c @@ -1,9 +1,9 @@ -#include "keymap_common.h" +#include "s60-x.h" // Poker fix with toggle and bit operation // Fn + Esc = ` // Fn + {left, down, up, right} = {home, pgdown, pgup, end} -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ @@ -17,7 +17,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ @@ -36,7 +36,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn1 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - [4] = KEYMAP( + [4] = LEGACY_KEYMAP( TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ CAPS, FN2, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN4, END, TRNS, TRNS, \ @@ -55,7 +55,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn3 β”‚Home β”‚PgDwnβ”‚ End β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -74,7 +74,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -93,7 +93,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ diff --git a/keyboards/s60-x/keymaps/poker_set/keymap.c b/keyboards/s60-x/keymaps/poker_set/keymap.c index 0c1ef1a9b9..09423e75b3 100644 --- a/keyboards/s60-x/keymaps/poker_set/keymap.c +++ b/keyboards/s60-x/keymaps/poker_set/keymap.c @@ -1,9 +1,9 @@ -#include "keymap_common.h" +#include "s60-x.h" // Poker fix with set(state transition) // Fn + Esc = ` // Fn + {left, down, up, right} = {home, pgdown, pgup, end} -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” β”‚GRAVEβ”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ @@ -17,7 +17,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_WINβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ SPC β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn0 β”‚R_WINβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ @@ -36,7 +36,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn1 β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -55,7 +55,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn2 β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -74,7 +74,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn3 β”‚Left β”‚Down β”‚Rightβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ @@ -93,7 +93,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn5 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn4 β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, FN6, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ @@ -112,7 +112,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn4 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn5 β”‚Home β”‚PgDwnβ”‚ End β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, FN7, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ @@ -131,7 +131,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn7 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn6 β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, FN4, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ @@ -150,7 +150,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn6 β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Fn7 β”‚Home β”‚PgDwnβ”‚ End β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ TRNS, FN5, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, CALC, TRNS, HOME, INS, TRNS, \ TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, PSCR, SLCK, PAUS, TRNS, FN8, END, TRNS, TRNS, \ diff --git a/keyboards/s60-x/keymaps/spacefn/keymap.c b/keyboards/s60-x/keymaps/spacefn/keymap.c index c930705320..b6dc7ca7eb 100644 --- a/keyboards/s60-x/keymaps/spacefn/keymap.c +++ b/keyboards/s60-x/keymaps/spacefn/keymap.c @@ -1,10 +1,10 @@ -#include "keymap_common.h" +#include "s60-x.h" /* * SpaceFN * http://geekhack.org/index.php?topic=51069.0 */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Default Layer β”Œβ”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β” β”‚ ESC β”‚ 1 β”‚ 2 β”‚ 3 β”‚ 4 β”‚ 5 β”‚ 6 β”‚ 7 β”‚ 8 β”‚ 9 β”‚ 0 β”‚ - β”‚ = β”‚β–’β–’β–’β–’β–’β”‚BKSPCβ”‚ @@ -18,7 +18,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚LCTRLβ”‚L_GUIβ”‚L_ALTβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆSpc/Fn0β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚R_ALTβ”‚R_GUIβ”‚ APP β”‚RCTRLβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT, \ @@ -38,7 +38,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚ β”‚ β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ */ - KEYMAP( + LEGACY_KEYMAP( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, DEL, \ TRNS, TRNS, TRNS, ESC, TRNS, TRNS, TRNS, HOME, UP, END, PSCR, SLCK, PAUS, INS, \ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, \ diff --git a/keyboards/s60-x/readme.md b/keyboards/s60-x/readme.md index 1509625651..4bba4b68fa 100644 --- a/keyboards/s60-x/readme.md +++ b/keyboards/s60-x/readme.md @@ -5,19 +5,10 @@ DIY compact keyboard designed by VinnyCordeiro for Sentraq. Most of the keymaps ## S60X Resources - [Massdrop page](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open) -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent readme.md](/readme.md). - -## Keymap -Several versions of keymaps are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. - -To build firmware binary hex file with a certain keymap just run `make` with the `keymap` option like: - - $ make keymap=[custom|poker|poker_set|poker_bit|plain|hasu|spacefn|hhkb|] - -File [S60-X_pre-compiled_firmwares.zip](S60-X_pre-compiled_firmwares.zip) contains pre-compiled firmwares for all keymaps available. Not all of them are tested. +## Quickstart +If you just want to test a few layouts, the archive [s60-x_precompiled.zip](s60-x_precompiled.zip) contains pre-compiled .hex-files for all available keymaps. Not all of them are tested. +You only need to flash them onto your keyboard, which is explained below, there's no need to setup a build environment. For a full list ## Flashing your keyboard The recommended programs for flashing your keyboard are [Atmel FLIP](http://www.atmel.com/tools/FLIP.aspx) (Windows) and [dfu-programmer](http://dfu-programmer.sourceforge.net/) (Linux/Windows). @@ -29,7 +20,7 @@ The recommended programs for flashing your keyboard are [Atmel FLIP](http://www. **Programming the firmware (Windows)** 1. download and install FLIP (http://www.atmel.com/tools/FLIP.aspx) -2. connect the keyboard, press the program button (S1) and wait until it enumerates +2. connect the keyboard, press the program button on the underside of the board (S1) and wait until it enumerates (you'll hear the "disconnect" and "connect" sound) 3. go to device manager, find the atmega32u4 chip and click "update driver" 4. choose location manually: folder named "usb" inside the installation directory of FLIP 5. once the driver is installed, run flip @@ -49,6 +40,21 @@ The recommended programs for flashing your keyboard are [Atmel FLIP](http://www. 3. `sudo dfu-programmer atmega32u4 start` 3. The keyboard should start working. If it doesn't, reconnect the cable. +## Building the firmware + +To build firmware binary hex file with a certain keymap just run `make` with the `keymap` option like: + + $ make keymap=[custom|poker|poker_set|poker_bit|plain|hasu|spacefn|hhkb|] + +For a more detailed explanation of the build process and the environment setup, see the ["Getting Started" section](/readme.md#getting-started). + +## List of included Keymaps + +Several versions of keymaps are available in advance but you are recommended to define your favorite layout yourself. +To define your own keymap, copy the [default keymap template](/quantum/template/keymaps/default) directory into the `keymaps` directory and start modifying the `keymap.c` file. Some options might require you to change the `config.h` or `Makefile` as well, refer to the main documentation for more information on those. +If you want to later merge your finalised keymap into this repository to make it available for everyone, make sure to also modify the `readme.md` in your keymap directory to show a visual version of your keymap. + +Here's a list of the standard layouts that are provided with the precompiled .hex-files. ### 0 Initial explanations The β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ blocks on the layouts hides the switch positions that do not exist physically on the PCB. If you feel like hacking the keyboard and adding new keys, those are the positions that can be used. You'll have to modify the [keymap_common.h](keymap_common.h) file for that. diff --git a/keyboards/s60-x/s60-x.h b/keyboards/s60-x/s60-x.h index 91e7b67f31..29a2a27b22 100644 --- a/keyboards/s60-x/s60-x.h +++ b/keyboards/s60-x/s60-x.h @@ -49,4 +49,21 @@ along with this program. If not, see . { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO } \ } +/*This special definition is used for S60-X keymaps that were ported from TMK + * QMK has a lot of keycodes that don't start with KC_, so using the regular KEYMAP macro is recommended + */ +#define LEGACY_KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_NO }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_NO }, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E }, \ + { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_NO } \ +} + #endif diff --git a/keyboards/s60-x/s60-x_precompiled.zip b/keyboards/s60-x/s60-x_precompiled.zip new file mode 100644 index 0000000000000000000000000000000000000000..00d99ca8a15040294f7a6e2c3dbe997c2d947c5e GIT binary patch literal 276106 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℘okN8xqmv@~{ z;J?`2fAH!f$H?>@_6Cp7$i96rg{j5iXKaVxA&#b__qLwjl+2s4*lzKn@S9s?ITyEF z6|$~$BJ^Zfg>JF^pI-`tkiF#8X0UG4PG-!GnE$?Ib8 zy?yx9#ogQ8vp?kg+%^05A$C=ZUwzYxBoke?yXKrp<1wk9UHmgeZD;s~ul^VJ+Acev z3F^1>cgY&oRd(0L({|tOQ}>mgl3HY3|2XiT?&EOA_Sc{9#V(3J@u#pPW{OWOpKx}V z9?#pk$Ly6HZkXpUkiKPIDsT9FjmGiLr};KlWYfx%Z!zcnKUp&GO}$6+uRmY1#D6k= zvC8pX_%^pQl_o=K4*WHYff6 z^YPW<-x=RbPibwQ9(pfAQ$M==gx&M=o8A=aR$ThCbAMq#&WER43s@GlHip(T{n^S@ z|5>KHujZN6antOBbzN@i8IfHaFBaJKA1t|X?3JKY;Z3<&rY{^){jTnHTOKgq+Pl&E z=ky%a3g(ZU!l&y@r`@!?tJWfJY3SW}+`{4VwaafVe^h)rBSA{6ioKK1{nauP-v7~# zbCV1|T3pSW5`M{MrOgj*%iOB{AO9Am>-T&6)@kbpzFxCaXL{9}BZn*EgzFl>rzuy= zc{a`UiNod&?rGifUg?=yJ1;Et<&5Is=H)GWlyYQd6VpeYMRG229{iK5(KDcp1XX?S>Ew`qVGBUjAj8|#x}9v>;Giu-MGu2$!s=JGF+ z-}r;CO%+Tn`Ep)Cxn^$Xp@{sa_Dj!mUljYXadBn$n=|_ko_bSp_j(|+SZUre>6uGk zmVUc_G(OPb$v(eV#jAc_eZB8Xs$_-i-uO(Z-!{LZtbf~jO{@KONmbJ1!>o0g4r~RV zqP@i1CJP5oHv6;V@oDb76Adq~O|snlQk|)D=M}k23+$4&#h)wH(Mg@Xei!$Gl7>iu z?M8CEf2LpF5^Goh^PY!e_mbEJHkyY+#QP$7M()+QR+l1xu{@qHkUF-|z zY1bb}*msUwDMm1C{fzn#w)c0x(EBN^IalClr(xl`AE#>!E-NVrIajXk7jc@fV1D>L zGd)=cU$GS){>iSw+j#3goZg;rxGLXZ>E`pPxxDv|vdzpd`5>6__;H8M$E_>aZ|`(0 zVLprZ#He~awm(;E-UfBnSn=I8xtvDkkZiB;aecs7=vsK^&kd=;AS z)FUo={QkqmzZcoLv!|3eXHGe`)NX^>Af=Ef5Ie{*D5sdtEratlIHtUZQM_OGUsw? z6Ahid=|GXno<&A03`JKxU+R9+*^B+D;(7O(7f(p3p1aq_A#i3|xJ!}5r_y}}tJs*> zUa+~Pw{ML6D8BC21UqG)j58|^a6MG?yT8`ys^+OSOWO@u&UP{r)p-Jzo;S;y_F2YI zA<42LVE*@~5{^p(C#{*B(EC7Zj`B0dTWY1{0_SCIr}Op9-753P`g>|wwE2qj8>WE| zQ!Z{$m}@6yxhv6VdO=M48iD;TCTeF=w}rpRz0Uk2`mVdwmGm(4vO~{j$nIl#_9DX| z*!*vbzop^V%BM~Ybw1qgpI$f4jGE!?8~Ewf5o1^Oz%O?cc_X4%-N>6?3|f^d|59Fu zKj~QUQ9Jg4;x~?WP99>7?zP-_D8O`&*q%p?C!Ba*eJ*_99dVXf_ICQLbkFCn+~sQI zE0z?lVvo1~!rS|e{fpdUje_{cMi*BKTglY&)pxA*n({>cQAF)5iK70@u*9$LU;W+d zWtXwmMTd26oXw#XRuh+Teao3YE!V>ECvv7%p64S3W!XL{@l(cY*1L zgsJ`h)eg6|{Z5&l zzU%3Aru$9zuk!9PY@f68e39&)?GdlsdYyeGS2?MEp86#v@=A{VvaW+o;b)H5w!Se8 z7MwYw=Bo2+u`h94YSUfBPAK1;Bzf59^!w@!iN9=|Pp;grUpN2A@kdAAEbhxJy1C*@ zYg%pN>JM&rntp_oH_uSrE-r0w(7dqMFR(88p~la1PRIXLw_XdJpMK&~#JZ9c>Z_}J`DQ4YEhfXiu1McZfPg4fA_O&iulPp&8p6Wd2%e@ z#lZQNQ^a2OajpUF+rDqV zXyK=YwFXDNt6I65wL51XSe(K;A?<@-Gv_z8;{mD<=STiMc9P9EW#!h@SAqoh%GA7n z=KUkxZ_<{Fon^D?=dhPcFv)*a-Bs;jeum{r(qfrVMG^Zv;fEcpnsYl6O*7fIO_gJk zx7gvfyNfsesP`fJ?2=~pe*r$fy}qd33d$CE&fo3Q-ZHUOsxwOHkbVE!NgvLy@v|>_ z@Zh-J?UIEnncv^t>od)`^JJT9>C4iE77Htlv**UVZmH)J^V+Z>=v0ALNva_sKc4?Mm>#lszuN5Br&nE09YC3Dj+SV{uI7k8#Xx$98GKscK3) zUQ0{eI#9Fp_v3@fLjNk;j~|oQPM(xC`QlZLg+&*=KP+9L^5^qS%PFT0%6nK`Hc#pj zo-h9A+0R`ne~kb9d8>BkNu%#Co~^mp8>d-pta;=YakNqJq08KP?;Q2D53av0>!H6} zf@MbH(|L&@(;uq(_b~IxYaac>`(IG?UFe^^gPrCIzJ69J@^zZCC{cqASH+%nc zTuuz{^B&I6-YMm}?b7!r&Oft0USMoL{P3OUkMxrkH<^_(%6+R&Y(BCwqOMs{?u>|y z>@vSaRVRE|TQmdQ-uJwEy|`+N@^_n0XBy6Qrq2J!y2~oL(m#)@r9RI4-u2vf=IcM-y|HWk@mz`4`e)CLOk2Dr zXcq2$Gv}(*9%rL{*QT}9FMD66U7as&byMV&sE&x|kMykTe(&?j-Y%Z+GJRi6N&SOO zmK%*ypKP_~Sb6^S>*C_=?myD2qHC)Kn(y!1Z>O(lwKnm>eS5hh-5uY5ytyHFd)Jn; zO8e^XtdM@*%o`r~aK5?fY`G&mmh0FHr})&~yHWi3pxY&jJ@Vh?#(4gC-kWrKy?l7* zTSpny$uFlWFSYCNFFo;hCre>)`D*95BU3(q`ZcF{#;-kjQcLt7h0ZOi_j6pcHzjti zkiDPw(>;kF&b`P=Q;u<6eYAPA>y$GgJM6xnGkt8eB4u`e-oyF%+^5(D?yjGuZct^g z#v-ci{DwpJ={-{(DYtsEopUh^I>o4dLDcg{df#@*%^r^AE5XJYDf0R*1OHa=*bpt2uh2o;mA(BX-cy=9kU>oR*oR zm%cgff%mfq2E_%NgL~%&)IFSU%Etbz^wbT`@I}r)ZL^C%U)^H%=%8}M#*1gZ|NL6V zpY&7u=c702pmU+q-Yd7|n%>B`UMGCE|NGNhyKkpIoc~__RdYt=-tTLog#Jkeek>H8 z+y8xw$J56aPn_1r%Q{j|8=g?wDH<|Km0oH!}%Y-bg!_zcm7*l zS+K&N&E_v$j~ux8Gw$JrCjzoxDyjCE2!ckbQmwZ`+hH6yrbl?WXbV%x$fk4jyID7UWe){I-EP z?Fo;v@}J_HGwtNkBj>)iJ|(mGLUh4J&i_2E`dK~#j;BhVzh7~-I^f51zTeX`7hgP^ zT3P+#%!UmQcX0i;xn-Ew)Wm-Kaii6_%b>Vh#<|c#+`H1I#OO=1_YRO!>f#>l+PRP zYOQax6%c%S`i|h@`L$bBg}+2O2v452S^3Zt=cr)I8E+4!cPHnYr6kW-ec6nFz}d?W zPX2IyqWIke%bjVW#g+EqSD&aWsyv+EF6s0_uSfscJJV&?jNx%H?K;=*IiEVaLk@CHB7PC)Xzj*h*ez$jyKDBAx|F53# zc*ptwOs?_86WzO8R9aV0{66Jc&Cc3uMmqZ+Xes}<5Lma^zbKXAvcnmZVRk<$aa>Lc_Y)*OoZugEH%FmH#jNwyfytzPb@x~ce z|Z3O&AMqJv;FOivnOf@|NE(Ccjl6J_QKM;B5&mGPLo_@wP?v&#hPXD|9(6^ zyszG1J4_f}Xnm2gD!@D<`d`@&-e99N+tWJ&NB51YhlpLIbv0$k?2uaQta@-K0?Liuiu&qf%q#+ zrv9u9k-vK8(7BF(m$V%sa&4d5c5mKO@#+f*LT*RLsFpxC^A&cYAu?3MOG`=)qxvjt63 z-|u*1VoJojsG=7>D^`3sAEIEP_IvX$#qEbuWHSp6+w))U-I(a4bU#nvrbXTR4{a)c zHhZ0WubTcP-2Qv&-fybYN=1AeQi>UZK0H=<$I{Y#+D1J#MPAdz_F=c-|JCBM_a>Na zKmW>cmzB3sc)Nz)*H>S%7JNAWr}2WIkdW1(7E|{*PoIC5tegAc{AI5XJwJ=jzf`O; zP1Alj|K;kqPnP$yBVJy5Zf6QASlu_i;t1*Fu@N;e)^u9qZ4$6g%6;pXH>%IO`M-GY z{J6Vu7DvA~SMhYO%?m_w&66J|2mE+`{@q^_vxfnk|Ig^NozdG}Q4ssbo}bBtUp$f*DlfiT!SSQYw(4qS*zbQK{O3z_%GX~DxM=%Hdey%Vul!frWqmRI zwI#Za`Rcs5zv4@+K-)0yUp204Ui=|v1Dk_D_;h2pcPk$(xH0KN=LUyt5t%EXCMWlm zgE42EZ7-+3^6cgLz329?2S-^q+pqRAylc5lo%8>kGa*xX9x6>r%iH&)ovrPz!Jp65 zcfPm0>w0Bdb=~8+y~^CxhuDh#>VNuk$o}x}6UNJ9XEzzYiM{thyzimtkvH%2jgb%$Z)R_9gXj%#&~LN~+yIEJ%?%aw`9W%GM&?Ir0x;ee5c;8>?>@&At1H`#+EW zxs*GsJzrTKUi4m?{4|H-{~eCycLm?fi!J6B zE{$2*H?K#)|Ht!rZ7ZMqeb{nTee2#i2TwT3Jj-_|(NLM=Si`x!=YWxg@rx55Qh5IJ zSo16to%e7dum1}VzU!5Zg>mkCYqEs@%?y(lEB<-;#9I9cCxk#%$=5|!895K>cdT+% ze)<0L+>RsbKb-%hd+yrH=oV|n{hcpUA3gTs%G|L(a7NKG_unN+iNPX# zz2T_MTh!xq_W!$CuSscI^scJkcp&OC+@cLvttt;X-FM3{yNh+%Q7co?R4I?mxLb4izf@5zW-x`lj5I8w z@7KLn*pS<@R`}me;ed&!mTlSe_>Fv{J68R{j=l=tj@1Aa`(^j(!NvDckbab^(4P%OzihNSDufl{G>Y3 zGxGG4_nV*GY5!bvw93n868D_K9aF=+wWB6~ja}{e<9Q{A*w(WhZHBqIGt?4lPi_0~ zId0p8%^%Kl*V}NJPPcz|*Y3Tx{ruF=wj7>6(tn*i9`dc%KB?)(kIE^z&!2~U3%J<* zYtQH7F#>WAw?3FUKl`SCU7m)DSD4KS`RAL2{}t&}JWW57aro8-_BO8{&l7oXNpenq zXc>FP_UR!-h;IlIqqp5O0W{T1J^Vz@K<-4eurqG+i*LGWePF(XfFsv!$ha}sw!qgr!)g=qR zI+`22wu+1rV`JMlv9j;Zq8F#mcUA}mNxQkJPD|>@dM~q0-JL&Z{@JjExGbAZkLOOX zl>i;!xA?or>K(P*oSGH2HMim)S;Bqw*Gz3|Ib`4JkR=xPpw-01-?8X2_fm?1Czh4IiTWT zucvPIzf$tZMKd?Ed)-#2`}i(ygVXwX?Hd#%a;iW0)IJk$ z$~E-yT50-)Lpt(mMoXL`@6*>Gn7z3?H+1WM+IFU<+|{Vx!fo^S8|wcLwtYB1-`4H& zhc!pbQ&JoQ@2~n3)SY~_XcNol{Jje%eq5<5{ZBGU^u6hij$C>! z&)Xf9C2;=om!PAQ=P_^T`?FYV5&ul??28VsKF{I*(H?Ly=fNzV*=u6mXU-M$4k?-A}#0%A*V&pQ+62E=kap+U}(wONl zxAq*qWM@7t7Bv0j!>jYQ*k0QAh|Ncl5_P*hDSB@+WvrSsgm<{yZ*DhjRhlcM*;aqz zXj1sGhgPXyj~rp`ei;}&ZFcvG+SKEd3ko*Wm0S|bnNj<1o%rQRY1ahAJlU*PCG+0j zb?@+howxtPvebnBZMtOJw)O3Wy^K$Lq#QRojU4M4i z3nHs$Z>`P!|4-;;xl>zP=agUHXPMXjHnr`I``Rhj!%Un^)eS@%C7 z<<9f-hwR-~E}pq;Df7p?@RTa^cPq{(_f1-P{c_N`5~`{!RO z>^GeLt^eZLlTD^uC$#-Z4|`qw{Y=8K$Sx_FKl4x5e=>I}DYIj;Ivm^9HtFTW&A*Pa z=k!cTdaZdn-?+j4xN_>l`SU}AV%}Y!I=lRO@23Cku3XB>e?Hstz7Ko#W)EAn+@q&O z|JYq;EqZcVbY+lj{f5o1Cr{bepSpT8a*}08-JfN-UmKjK?tghCc9XyG*V+3I>PqWu zTodOpWzPTR7mI>h>i5-hSM7?I`x4x<>BISYm!q!J-8qE5MgB+^Fl?W|RCD3s#5HH` zzx;DakXthH$8#ftfR{EKV_P{N7|q}mInv#!{$Awa{H@wr+YIu~L_44V_@QT(z~&?W zrs(`BzONI?VPEuc($ZyH68HUQJ-_0Igvh^{zoiyG$)5QyExtMZ=lQ#4g+?})nB@ZB z+*IZURk!Bri|$SS^tWiup-4e*Kb`vKiO<|iR=#+&<%YqV%^%M9?tXLTXLQ2*v)s~l zsR|m=cPs_}%?x(5bvrxTm)rP$`n>ywYv;rtS}62yCX35_A^sDSY=rGy!|wUpU(T^H z{kh;v!NuvB8cMJ7igM%E2nWxv77gs(yW!4#oed_T0YAdk!)z>K^EqF8CLYc_oz;=A z9)2X{$CcMFhgX!kU0rfF;N-Pnt%aH$G3kue23ub3O||C! ze<6#vT&*9s*%IGs$EHf`pSpUNri|8M`_HG>xJK)p z;X1$LbI1I{SMAiNhwaMjQLFG{-OsPB^~ZQM*Yowc?8?!de(l``z2Z3m z^V6S~7RK$~ywxh&@UYqC^hKLYc4n8nnW5A-^FW?mKj;0k)2%ji6-Vd9eGn)QNy^}l zQdcaF0SygY_6nI6_CCRE2DfcZ{cT3&x6w?SKb(JaX?xt0CQ+t{B*j(N#OFl(O#jEQ zJM`kwtBo6{vR_-UT6=!6CHMaxyXP(J{>u!d+8%mTKmKz4^uZSuU*C!S`}tywPtMcHcCqdU(O=eV+CI znU^K68c+MPU{SSwj->Rh7pLDz)GqUg|JZGK#>RV2YyH0B_@BQ|l~nY!)gQZZ;H##r zNpa?zy}I64HD*Q~oXN>%bv5~FQuyZUs!v7Vee4AtE&lj4tMG#w!;^&uKR4=iuhw12 zH!)4{-%P7HvF+WjH+<`s{3Z8szwqq+AHioo2ZVK<4qlM>Gq;~rbl>xh#auUc&aylA z)51V{tyIzM*PB0_R~P?h^FwN#@(dlriU(3fw`ZAyhBK5`sXeetIJ4oGu(?etn-!?} zC@vRNx=@yxm%Z@g6h+?@`Iv&Tq@&F~f|vXf{_Tj;I&-dgiNOTx=QUe16u!<}9whwA zZpwrwh2qOj&srqt_%3kMm!HnM$qE_y`LB=qcbqNzXMCiDSMHI|e{ z=S{|_(C0=g>aRcF^XA~^S7psE&IyxSXNH&Yg!iUM)c$r8`#00gV7H)(Uwea8uF7lo zMav7yw?8_V$GmM#KjUk*^oN21p!tflQr+FfmFqs$DsJNa+_j&-R_xzQj-zs)Ijj=r zDeG3B_;U=@Q19u?U-zt9PUgV8Cl$&5ZZ8!77)J)^hpjV8;@MUz7gN$49e93UOR)T-x7u zx1rwTw;L;8#5wKkDKRw%7VTTgzvB3<^dE+ww=P`Vzwg52o|V2oo_D4@sCgzljFU2Z zb+hlpQ?CDimIrS6cU|$#>Y~evyswN)BWA0#t6u9&i`2X2rC0y;Y@t!)kMt>9H?@c^ zepIXw^TUSye3bl@dqP*#7FXy$JHDaorq_@3XR+t*?)ugun4VvxXkPWX1myWx>E6y& z^S8E2>;L(@`Bn1Phv)CPM9jK5dtyB()VH3$7xOB>-%m09RdLDcs-nX^TNkNkYWg=t zRDavNdDDmUELSuf6nxBcj^|uHX13$a%Oh9Pt$E&ouOrrOf~ zH?6p1dWKPO-7T%!XBUsz>uC0-wp==7Z_oa6mu&On{?lteSw2W;tzhi zyCbHzzg=`bZfjxq)pFO?#p)ls_GwtH%arxy2cI+iP~#Ji!2hGp=il-ByZv~++-HAh zVfkHwe=}Dcthc?eIA!klqs#}oB&R&T(Y-KiapS4{lFS?DFDZjoETV1PH#y_=vT-pTN1M9t> zsV%d!KPn~ZO@Dd(|5~ik`SaO$FQ@p%Nmo~G6|r8G^ljzYb9Y)_ z%-B<*9QX3fBELs|G3O517puNlnR>jT)rw=yX3J%4=dYx%dg}GR_k`w`Ck>ph)9otP z=-GPgzYn_kK%1{8rcpj>D)0Y4s>Pp5Vv?^W2k+Aph&*0?{A&26%^%L+7l>T#Z#O4@ znSz=2;jiHm-uG`#Xt(1yy8YeW)=%93WjbfY@0@A5MDhPkVN+2))`+I%jhU5id38)T zTv2);`cLxDRu1o0yTxoZ{%k(-WrD|>qr&SZ#=cWN z`r-WaqhaOO9&TCL*CMOW_wW26d;L?B?agkf=P9gLE>WA~aM=F#L1V6jDc5(z-Cp=I z&C1D$`~M&9P{Es>ANIA>FZ0_|v3J?>H8)R0EEfMa(?z{Mc+VRh)3l8@EcVW0DYG{G z`ZK=mHItjzbd3#hg z3aY(6*_XfRL|c8?y}FH$#Us-m&Y!zo=}uFbMmUXW$Oo@ybYThWYgw*fyT_{FZz|DKJ9!e=a~0FyZvP~l zQ#xgy{gFQtw{aL9msVY$Xa3^NQLzJ(i8*idpEf12>^Wo~{^|OZ<=ShaW^Lc`tki0= zpU&^EOJAku)^!;Eb$U1TU-Z^FQ`5dFi#fE`r(HdB_HErY{ndSQJEcQRSfwvLZ*4Nz z7yi7ucwc#6UU=QZ`SqPTKlpyHS@C8135BKCUg+(v75n#drh$N9nA=DD|>T&=u+Jii_DH{tkprxfe|JL|X4J9w@`PG&vZGWj<; zhS3`zyaXK!{kXjd6wa<+kMUg(j&W_R{}=BWvfoLG`~MlyJdLzv5=OrJR$f+I5c%V| z=FN9IPKqZ?(N~C?e!p<(vF9QW=f}6i&TabXm%ZVmLyF?M*ZwE}IaJ$jU^o1_v$}M( zy~34%hZnzn+q?MP+cmqNxokYynQqtbJK>L__+8(1AI^UfN{<(ewmrS-j6&%|^=G?4 z<^SFygJ_=1ee-SFL0#$o z#E8m!@s}2r|4Y#p+JDGCzp&4BQ|P@HJ15jGdC*cH<~5_5qrzVH?nA%TiV7D#$=q$L zFRQ(vDQpsM6S?62hQ%V9I}~fp4t-KtvbktK|Ha(EPk%Hj>+~%h_8hXePOKDKl~OM+ zsr7LFSLe<0KOADuBJ|z*O_x+t6(W=eZKwoeCcg z3F}O*ecrHI>Ca}iKkSX$Cj2Vj=MvOXzmM}4cgF?|kIm=pqD6P>O=rAuY_qxEyhr7l z1uA~NIfXN?cIN7KJ$@JZ%IDus_S5@UUpx>YAF}o7Y33s@ST#knEEEinB3`<>CVS=ro{ z-t!+uI>fW}J3UjA{hjlEdY%0CMU%e?ln38*ED+@V_x)D4WyLbP^XJMp2$kt2@Y@CP z7^=^;$n7^dQuN~U(a$b=Z$D{G7gkq)W){;YF;Au9z_pJF&B`}*UQ4c0`m;Gm`{ge4 ztu7nZSr*RpJ8t-DR}ynf=1cEB&$P!sR`swXg71fX*2ydV?_1)Jro;Z*dmnFj#}+i- z@>2)V_n3-MwtSyl~ z<2~WdT}~a%Z{_Nclb=gZyB~gC)+?6dF@JijPDbtye zogXK@r-yd^}sruHulyu1Ak}6I;LQNpIA=D=x!wljFOt&%yFP zo6jyfQVMvm-=xp$S;hyYBUksE^sP^v zZ~DjivB@(7#>~n3<-7Hx{>{Fwu*~lNt_p@DCNrvgM0AhLd-hp;Kl_RwwhpNk0+pa< zz`BJ7f*;N{ZJMCFWTS7|zIkFLJ;{4ylSFMjYX6Czd1EEVAGiH=u~~hy`v-^GkIDBx zOFqj9+i-Yx&72z#62!|F9NfKC_GjUh%$!5}E0@_lS6;rzRn)kLDVEpz|O<9h8+{0IM6 z-{n-b_dn$FpO~q=<$lJ+s7qc|-`KkN-xgHPF;ZOgGWCx82FKd8&ZvryyQPxyxz?vY zSmtTpvxVdTADiQkGOpLC+>5kbHe!E6y57qVTA)Ia;M(|cL=p1v#J zwU3t9eajL2HiQ#H*6!EpCuZMlUCRGy z?cD3d2by70pZ-s)@>sLo#p@qeKlvHDY5wN7%daoL{^CdQC#Lul-e!M3Z=Wh_{_K1EBKFpLyBUWx<(K*uKb5PhD+gVfs%NBUBySV0RopD5Ht*^)srW6r zWiK_CHr%o-EczHW-`K8P&3nfD!laj*kFPR}j^$uYTDB14zRiMd zfj`pM_MADwyWZxes-sA&fvoL`GwCZdzRvu9$%ucJ{L*LttXS@TuZnmPwON<-x)Re` z5B+ybJ{&09AF=Apwt0sxv#4oI{Zz86u>YmG^}!ci#sys;&Tq4rC+g{7`ram@q-(xd zXiNP*>!rI*R+UBiY(LXH<5x}n%stA_zPBF|;rK6e#HzsZ_QR^KPgJy+ z=pos995hyBZMaGPV*yXxCodg6)#mq{wFRKDFJG7Gd#jT4_j7U7JO6mT{ZiNTZyE}p zJPz5$${ z@9ff&8^m;%QR`prmj#dK^G-T1f8_Je6`kJFdR7nTpWM7^@4e0w#@V|%&(@n6-gUXE zkWsVVr5Usze(O^8j?VDtV>70*M(*sJDFZqN{2A|og^3>-3gxZO+qPTo=+uqh{^`aF z6<=i=LDlUVlJ}o0EVJ8wbxW_;l!|Q%UOAr>7P@2C@PsA5 z8$|!j%&Pc&drhOLD*s%^7OA_}bhp{PXxS_{O+#{i<(b=(HmC1f$f=&!_q>q5ob6Xo zNTk#J{J%S z|GPuBeEa?Kn4NcQ&&Tupf3t8!mG0eciLx_Fx1O6fi$9z%9(I!F)DQbSsXE2K;tigccXcKh8`B0TU5#Xp3S#D`@})EuaUAJGcH8)J`a`MztE%V zm)54gs{);uJP3PPY?ARWt~tIfG%Q-)W#wJ3U%}41vwoBwvj6|`S<2lzzFMYAz7OZ` zpJuVQ;@f1~uKEApsQUE_onL*Yb;k>y|9{q5JnhweSILukqJH1ErFI{(&OdIelsF`* zdjGldMb4M|mS55LZRoucBYbh=hx1Gm>(+E+E{U1u-T&uU*6X`si$7R3FSqydcbogP z%=yRjOhb#Me$`8IU+-ys`e>i)&&3l}#r{R!470bJ7M}f4>6`&KONh+H=1=CUCU6-s zyT9OY|Kp?+-ZhuW^+$TtqRIAR+?E`faXV(77n}PyLFwnFADcez+O9NLVampRyKU>l zJ15x|Rp(tky1Vc8$D&P_s%AHx{VeU;>sjwT)%@9_+e&ghnLjp%*a@7peK_CK!djZ8 z^7EmoPgn(NrC)2d)jwMp=N*?8CI2i%tY_}geg+kv!@Hw@Jde@yNe*B6Bm3~-SH}54 zmo4+_HiiiPtNg}x&PL|BH*eot%|rI?rTeoo4!Rv_UXxcA==e5I@X~W`^@3>Ub7!rW z?d_g$M73ht|34q>FMo{73SaQ<$f5i*aj*Vt4=LS#{%-Ud{;aU7Wtsf9Mb5oX;^F%L zCx&aE!7SFqTz!t!%^y#x{eDw%ZN{xHR;|aYziLZ))W+RDz2bz@#wUr{_tq%dxb=q5 zTrD|m#ow)!F?k;jAMBd@e@$sezrAkkrf}zFZ*mQE}m+ zoi>l=-`t!yzqNkeufrYu73^OxsqQmMHORfFc?dk&{K{gc(x1%{5q1$9dX{myWi5yQ!nGzj#fQ;6KYfpCpR&59`D$*ZfodlYX?`&dAPtzc*j~W4*tI za~74{UmnS~`TX^xmsUUKSn=ijC1=;x`o4>W)BhO;U7Jw+c{y* z_V<&r`Y*{hANaoY=GuANXZ+f_x#a1An9#^w@w;PM>g!&&{L;Al_4dOlu0Nier^;VH zbxB#?O_%3?#jDc%-u(Kr?)Z#_^X#@Zf9(2je*YJXX?o1}6#f{0eiWD$ zxBlFlAj$Q~--}HGep*eDirkXVe&Xk|HA;Vq=X@-+5Q&!47gRfUPO@m4-S6oW>*u{? zVR0#l*(z5UlPLI4GO_p(+qqeNcl4$G+TWaSn9m~1o%GV!`T6ID>+X@=Gfu5uYaDg+ zbEeae^n=}cyPrfm=Iy$4D}Hi)%GEc2p1-|y?XO_o1?>fgo7kt9Er~d^?eqNIA6HIp zF0Z!#EF?a|X~Wb%la?v{F|OZpLE&Y4-yF%($17)9ckFDwQXSA1zji%`Uzzfof`dV< zif2XSzkrtKZC87367j{LeomNxner2%>XdD*^~*kdWj_r}id2KUx7TZ50aPf}Xy!(xug9u)ubL(wTI_Tia%nm0E5VN264IO}-beu7xh z%h-u6_0Jv^HNFV=RQ>$JC1$1FP0v5f|EV0m)8x|!AvGcQQ%*mg>l=RmvL=z`{Oajv zzUEpR{*`+D?VTfA(!*o+i?24%ds+Nu<+PHcnX6rYJWu!BWBu{1v7wM6@Ac=m?>()G zoo_0$ZqXt8{Icxx)t!H>-k(?GU3qum?rHCyzTQ2pZ0?$;J(E_Rua^pyTPk-aKKIC_ zT9a25|00f+n6FH&Z^W9|Cm`Sv!&Z}qE}es~2sDf+OB0^c^R)XubO zg)0g{&dOgRL$7@gS{h-U$mi!%yKQ&yf_d^*il#Rd>*Vhqvaip*(Y5oa{I}IsT_4V` zd+|3|-HF$0${pvD=UZ#mKD;wM!dmW>eY|zC(S2j}-&j{Il8QvFSgFCG{(x-kE#jTJSyZtBEiA&+jW-&-K6Niazh^@V+RU6)O+f z*Z1^n56YCWtyuHu*V@Fl`MP}zR~@o1ZayFW@uEW>&-XbMbtPO?0$zVsr1nM4xp6I6 zj@LS2-?i^iRULl66Lpz?gsnO=v%YLkhUmY@P`%{;#;4eIgylYjzSR2jS^jjr)Wz;{ z^=Wp$Wz+Y6>iPZj$ffkErv-`g?AY|HZ~t|QVP6sQa6bQS_LfEl`@VKzTLFuru%;Qm z&d9`u#(c6n+;%(I$^1R!f}=y815yZ&PM!}&V}Emu9s^qs%;hgA;9 zz0anvco#Lp-2LRc>w;|7zPrpT+?T((6aRI^(gnqFteNI1os#;gIW9505DW!63 z|Cc)N__K}m{HF79T+@G=Bv{U=*erGM|ApxyM;_+;7{=@8GbcQLuI;kjwo^LgkIJ*J zJSt_%lfS8dWYTZD{dnh<@nx=ZR13?b}5z^PFd3 zKX_B5%cZtY$WDHj&GCoFox&c@4|Q@rz28P<-rf|}T=ngXEiM{W9F)FyS^sOhEpJ@$ zuP2snRdu~3?LR{w&YypHpX$5`7lUNxD|A0`bNiA0ZpZrFu{@uz^e1o1Wql_a@^F6q zg*n+()qADRICL%royyg?zdky3sPbcaraX>*?z^Gi~_kac#?W=0vVHQ{?Z59cM2|IhlC!>zucB za|IVIwtKx!MBU+0_$^KIqieMbxZ#6@9Yh!w&D5*7~rb zSvSL4%3QYEbRIwG9M`jB1@lGTk{=0cZk*`(c!jTj27lhp&lh$77)S40+W7HA^nD#G zyFi_bg*pDEYd5cDGTJ)*Td}t3me}$j_PRJ3$*9))z8aqQi+bL0-g|zcv|`^nt|wZj zKYMICe9lSNdsSJr|EI%$RtvPWh`gO)ad7vci@lmIaaAlcKmX!BfBkCGPu|i4TLPsx z&kNfe{C@M^c7eIq*jI{AKe|R*F!IaynLA2F3tS>aHzdri$?cu=!fgJE#XCX^_VTY? zRrarV8*Ah4)0efw4+P&%@-zJNxp1$prNcSrr{rSAuF<s@W>Ud-T^g3p~C(z?6-yN~G?zx3uzdSyJ>^X|{rD^wMNe(|h4bI|x} zrHq)!i{sf3BesYr7KXgIxI5+5=C(ki$j#l31|_z8Pv1M}UDj3fqtKs8FRwK`tSRCL z@2iiGEAr>IJWG1AF+cr-PiAWlRulF4|mX}w1?SaK-tv{codYk8jdnKoxIXUO< zsng-p0#qbbUYf*i`Zj@U*L>-F65YQ(o(TN`I^a2n)p3TTz1*hP7xIoUoNN1VzW&K? zi8V2Q%LA%J|5+ZBI{L-eNKk>}{~r-yk(Dp`ZnmdXZE&o8_Uz?9fvd|)YA$Z$0$q&h z|MJJHpt;jC9yo{0zqIn;=4i?)!tte{R3Z`K|W(6+ip`=Ad@R<;Cok4?f-9@bA^Z8SJg~|H2=? zQ2V{eLG<6u=ht(Om)2QdnQZ&2VfC&(N1MOwvYW)cVG*O~ioSZaTSxaq)* zJxWJiY~Q($=e8-dNNxKrRa3ix>%UL-`ByF$)(;EYy_d_I#)z+7Zd1SK!D(Bsr{AkR zoPR!FwYO={e^Ie5CmTNhox}T9B+~TZ{K^8M^ODzHXU}OcyUaf`{up?B*=Lje%Rhx^ zolh~=@lX7!yDs!c`uslAz@oO;+P16TtggH|9vt#;er3*~wWW4*3-vtriO6sB`;mTb zLyPm#s*kx+U0V~m*Dkgz-X`_>@EyOl#a-vy%>&XNuS_kHoU`DM`bul0xQn-#hjL~Wn!@F(ufnuAv=_;39@-*e{F z!Yi&R@=7-^NPeg?xp-S7E7Shdvq=$gxhyKiH@;K`{7AP7eC;;>#L-f%{Tp9a|C(~J z?dkm3ee+(KM80m2Txb=1B66~Du$av=N9#B_?k8XB40k1OGx}rfX12F!L*?;b2Hd|l zwHS*3vs}g3((!qX50_$W-`kb8j}AW2k5E#~FTRw&?))M9`s_Jzn`OB~=T+J}OUbC3 zw8g4Ny5uGqf-d>cXZP46^+oUf3DJ`H_t!Gd?5`-V*r3$!8NTP=3yFPsj%#XU*S8dv z_x?O;w14Bo0MY zYJRT&f7TYBzoZ|P-`*JJOH<6nCCyZY zEXw{Bf2fq0&$jrE_|=f_5mVQd{rmhpQfG3ca<9MKsRz3@&a#WYrRw)R(Br&4| z3EHgt{wtwJti@<ziZ?-e_~ zBkbY)%kEJHJmbU9;2TE~s!8{Wo)|U`h{vay$Qq+_w)Zk95=s z=l?tbT4z`qSz4AM6Puv>{za|bI@O+@59bdZy83vY_q_Dgje9rk04-3T*ZusBS)MJu1 z@6HVF|23~{CSRG9eLr`X#KywYvtA#Q`?+gFcH*gs+OJZ{wE;iUWfRI0wpm<0dHAfu zfvajs_j60!nOC0A3b-zLVVB>W<$D*fW`2xS;R{$<_RrXL(yR+FnjL?7NQ-1!n_KTv zab;e4{{QP2lU_JJoUi;%`l#O}nW@Sux~Yxq2UiO&W?y-}zxU+VzIzHY-%RpUwEAiu zb=Fw_c;a*3qlb5&zGD~?`XgQPNZxMu7cbZ?w(Zb<$o?ht;ry$LsdJvz`24tOrv16t z;`VRRBYPZbzkP{5(`vWXa@%sQ|23lA-ke`vnq8dDeg5+K1NBG3yd*XnM(y}|n8o{g zrm0o*6j?FL;)nCozsP+Tc`-G|1B#$ex`ka7k6B&)FJ!NWfQ9X zUf!Co^zr4?9@fIzPQJ&VFO=n0zH-vLy*hqXTx)&b-;4XdD1**cUaIr|0)P9@tID6G z_kVfZFk2LK4ch$P$#qMn*9C;vybrRyw*18k`Rnn2JC06It`-WmpSJ&(;LbaT|M2$g zsef_&X_We(ViPxxg6sTwZ_i)-q6|vjD|Kup{_}PJ%W3_4jYmX&5E%kh@oU#{R>T|CVYbs!y)Hqr2UnKav=N(6GZ1B0A zxqQ~Ig?B=Kr2q76&7QvJ|8(_cp{`!e%B?8{I*Hu>*Z6$cYM>mdqn)#K+U5PlqN4vI z?I$#}WX^k}DEHlWnv$u?pUpY5J}zIX`O$lQ(#B@hn(fuLxwfp6*-H+;%l&-9uGL78 z_34o-&&~5|HdegKoXBLF@*_P}`Tmz5Ul~4^zGIR4cawR8xpcdP_B6jg9Y?kP6uabH z|Msy#d&>J6tJ9A(n+JZaaepjZUr_bIF6?7Vec#fyoZ_uB8SimDoDV*6c`N@qMe&Ty zJCA(3uiwyZ(oFJhEzM%YT0CL+kxk zJMRB;uKm3+ja$~G;P@)uhkKqKm)~(ny!218{`oVvmOG2Ct_WYlZ&zu1fQvtEvAA6Lna8qE(KtF~&MTVC?k{YLuc$0?x0p2NRiKO3)E{XXxoy}wnQ`|}$s17n`g z+Qa6d8RotI?9G6G8JpI4KIvcgq=+x`jpFmuUX$<37nR-IKH-?)k-K#}B6r5EacL-s ztV>QS2(^>dJ~hWyDuD6feEGZ8ol~D)e44PdRf+e#V=D7!yLT~P@?JL7JlV0tGrRNh z>`xZ!Cv8kmP~Mq-ZqZWnwZ)SJC1g&WOXgWC{BLG_QM-m<-a55DfGRF_>q3O^{Sal#5?b$ zn`BLT6s;c4pIqIxJo@aDtsN4VIzQA`)GdzC1fBOhd5?Q{%QJ;(GknHr$dBGhW&=QLx#O(TXwV;(^=uJ^ zt9vaE7e#$&E}MVpBf~<@|20$ES1kDU^Je#tH{q|%4%;8M@qP4k>20em(~RFdJJQ82 zFZQMGMU`!d8}s{`yY?lAzwY$?yHNVRj;8#lmK5QCk$Z3Wt~>m-`o6JyMUu^4R_QCx zYxl^{J7v8;ZQcGy>-(hT?zGgmC3@b}S+1IK?6pLE)H10>!3C!G`1Ss6@lh4&{3Vn2 z>avk+;@l?Qo9X`?0@t4L&{5lVm{;|>xxc!cUi#ju_aAFhn6KNGpAX=iSUA1F{)@n4 z$EW;B#`#IEMo;H_()23toc-ba{Gz`iOV=}+TL1qUyKX)AmfF3))0%(n$-S@dvD?pQ zfdt39Z(FW7NrjwVa#!N=RSPDA4UgjXTh(w8 zeY0D=TT~By4z00ZEfhCgv?{P&w&bkz0j}*LM*DAUO%Sk&t~>lLB=yz5v)1#^94)z# zCH!xveYr_RzFSb^yfY%I!SkOoeV&oHF8BG*V{U6Mh`Kq*{o7u$e!0&)afg#Nwi$92 z(|FD+?3xoXQ6k)|BDu!wgTiugCsF-==Bf>f|0^|?uW$GB$+Sudn>a^u=I-Dr_it3# zO*7A!@qd2pZcEiC9~U?{mz6So7l=E~UHmBNa>*NBk$*quos)=eY+Z7>``MbqQxE)= zJCZkFwBqPpUSUQy6_<@RA~yoXe1AO8-n{$fx({jF*rg?s_+;~U+IiLWxt^TIJmd9u zN1fk2*Yew3Cz(vLDVnWhl~}IG`>NQ#?ER%sJFmGq-}ZGT|9`Oe*<-#_dvltYYLv5z z|9rl)I7Lolk)*bovY)73!sos74xQ+|5$1CH3UA*Oiwj5B8)qM~-yFC)a`Bb^BBAGp z&)(*~zV^dC<+Eu&(ho&%)BgPJ+N%$nC!ajM>70*+#WR=bi?i0tf6#Q5V@N>lQr$pLv81UTuQ0?zMXcn&bj`CeTCV>`NHdGKUv$IVf!oloqB%#V*Xoh zYA?<&H+wk0vRJi3_P$k$TXc?28PI$QRN-xRG{5ZDI;~VFG%fZW z%M@?tAJ45LT)s}^zI)R%`+4h*lk018%lJ&MFWc6h_hvl{-{#w^{f{5Azr0PC(dI|S z0-wg&`VZ&dE&Z`sq1^k3Yq*l!lCGjpj~yP|e6^aN<=*`#yTfLGIDg#amAP10b#JxY zY}qy6*8M3f38<}%KYM(^!}*7Que!fifB&7eHzzv0{ypat+cD*6#a>%CuN^atBA*F; zwq3UOXU{vc`p4g0TY0_*33$)n?bs8tDgDYflcZTQsxoB1-puolt6${&?S;rr&KZ(? zhg|K>iks^Naqn#mJ=DPL#Q&_|woHWlvd?La+;eCA+EY9&No)D%d)tJk6&qx4ZCKjr zE?@oOMoay(q&xcx{A8?lD{cFD{9LWShneo2k74g?qjw(JZVnX8u;yM5oZO?c~pm8)%*p9!3M z_FVlp?w8M6!g=D}Sv;Rs!hPxbF3@pYR`F$T0xvy3oP8ql+f8q!byHU_iP;zRJi9e| z&jGWoQi~@4KeM}J8vA+fgGtk-N#9zn8q|`Y%a-m(GT^ ztHo)tV(qu$!uKy~>|z)91|9dTdjDI%b5E_)hi7PiKE0sf`%a-7-`>2MY^=X*os4Sm z{P28*%a^9)US3$Z_W0WBx&VjZb4@Sv?>#*7s`8?Q_u@M%UA|--Ivwh8;?LZ5U2$)k zMDOid<=p$qWOK^>$@iY*8r#REpZX@_liyU*rhW3VUHY_ll^4~*(+c`UMLFZobgom4 zskqMlE$PRfS?UVwTG?|xzUs($(z0P1$D&GGX74*D9LC|cQ%!#88fp$1XfNSazylbK|@_*@x`U-+b2``@u`@W8C+ZXC$<49}9eZ zBuf5^eCL}PmCeHM56!MHm^?X-l#voza+?$kf?+$n;w@s86r^5p>FPp~3sm6LWS4seRGU{U%zp%r zpC%kzWtj1RZ-$y&{4oLXt!qS;)7zWgf`(4+%xH~V;jpY$`uxhc9d7K`nS0NGb|F7* zw^cjQb}a8+#3uLj3&yv7f27AITrNHF&ueeY=ejZ$&kv4f=k}>eW&C^|t91L<)Uu^} zdHr>^Jel@=L+K&=^hFW-rg$Z@sjZH8y4zCU_T0VNXklgavWdm!89A@poXqZTxWMyY zMm*tQ{kghjifMmr^ZtLD%jEkbeTUSpt?gw7Hxe~?Tdgm4U4EGE`y>6+a_yZ5i+HC+bTQRvg2#zj&@W|JL7S1w#-wuXPon2OK?kX7M68X-JxysO(9qDPiq{t5}7)|q|W-Tet;{;9l#gE`v-=I}N(?-n(j#+SNU{r7TTt&A_n#4+8@q{EX*}#NtxO5zjZbX>0R6sa}8e|0EyFFVTD-{?ET6sHi#j+cy8Z z#o5!J_Ut_c{{nwlY>K{xope$Un4wp{aT5`1UYD?iu0x~G5Q_ln%& zd)_>!T>Emq9lrVbp76cpvQ1mJ2bG!ZIA8o>=VShOo#3eRnvd5%%8xyNiR)J5f`tdF zDjqiOH}P3uwC_a4WJLqXq6vn3Bo|-v*Vf@YD>0L&%4qh(^bHz|pL6mjd|1A(I&tc; z6Dn6GeF$*szno?3pP{;Ns#SHOsl87~xBuKj6O-18$b?*&Ek4cW^YObg>s;3dT4rfg zWcbGI@bi0~wf=6le}zWokq`T?atF^7&d$5WcvenCBjX>>rcL5%k zKi;8hmL+qt#xk>FL4I6CVO8=L4f$EwcH)*18+~q^Fq78xl65zzTx;lXvwgPItM4U6 z$JS35zb9{B1oEKIYMsh|hI5k|lFC*ujlcYIo}**iuT48XOjaxFiqAWi-uFPxbn~M4 z%P*I{-(&F9lC9;iuI?%JFnQ0KxSAcR&ij`IpILCUbZ*que8Z(4*DE|_TQyDUI}3kU z&HWQ!TB)~Pr+%iNp@U(f>$~DDTvm}5j4MhUiXDTqCn#3Rr7a1m2{fL)wC=Ec{gLwJ z+LGUrS1sqR`}Og8bCAmUHG=-3H7j1!p8hvi`{zk<-+W0+@9mwt`ppXQ zYg?QTR?UdGlE^xrc}kP??=Q2jv2Bt%al58fb^0b_5_sc9btIu$X59$+v@24 z**v~U@@qF+abEt-P#S-$>&Z{UsQYXhu8C#;ETatP9$A=YqrZ+z@- zZkIf==ezLoaP0H%_wOwW{vNrX)o7CVZt}>e^-ohXtW5EZ9 zM#~>P=Pz6Aw=vkumhmmq)z6pNgzt}0je*-T!|bwG44K{{cJ?QJm^mcQ>G+?&rKyxz zR_4VEhSkSTJ=4)5^II;&oQp-w!f};_vD3^ zf5)CbkFUtpePa19N+vt!nKJKOAdyAuU=+rI^VIDh|(&_A{_a8E5_1sVY^mDows-$hGOydBXM6vuMvn2f zP=>t!n>UMF#x_fDF27JQ!SJ7PgxU9}F$dD?HlJCYeKGQ%Ld%2}iFU&uoUzuQ-S!1k z9J(=2Q#<3$frJHITP{4?JW*eIUv8E8p*J(1%JOdNIXg{T`t9${U02(ymwj=m{l>v{ zK;lyQRXP5L^ZOqhUcJs-D8ltc@61nsx?3_b`L4w#-L2j%-=CwqL$UH*#s)`~bc45l zemn5plsMLVN^jA{x6yYEn=Tpdx6COqmp|zG>CfcDVMj$wpC4cF=jjGpxrqmkzIh%m zW43JGzB2tO&+p4@o3>41@y&w&4>lNnEwa;}^nAXI*|N6D`zDm%xA-%wGj&~{@za@3 z|McUI7wyS8#$ED!<-U;QZm&b9V*lx$4?B4F`QyE2fB$$M6EvN_|D;9~?}yv3s*)$# z)Mx(s7%(r!Q19+eLFR(bHFMW5ond8Bb4V{Qf6uFlLG>rT&-%V$-xi)l2fnOw@6VHD zzH;T*rA^$IW*xB-Sz^8Wa>k;y5&C^86XSG~zdJ_y+RwK7{wz>_+T7xc8?FacS@f@d z`Fuvyl`==eUD;ozpH+Y3RT+1p`H<@J6+dh2Qd!e-N+x{DnRIPMMdbTkA%EQ4_%cG) zG|#qvsr}UQd+X~HhWSzwd}XKR>YnvJc7*ru9%AxGqv>3Cnm+2hRvz+fQ&sDr_wrTAPW6R>7EwQTSzaQ9lOsI7;mvfpD&%U5} z`#A-;#6{aWo=F`1+~2V%Le%lQh((Oc_0w7VzVdgOiPri&DDVz{`P{ykzyHj7ccp)O z_&o3Gr=Fg+%=S!0WR^_S6{fQ(pIcY2@-%7{pY!eEJ(cs<7Oqb^b!fAGZnW9T;JZIH zIPDubF5LQh_GrGI_{FsyJ(ZPq3gOcCk0#Gv-#q)v=IaNYG`=nT`&{Za@9fv}$XwCv@>xn>pxE2^*D3#qn!xc7|cq0r9{KkX40b$uA6 zZz07krxB9!W0_;{)~YMhYRleFdEWLj=pg@%eUkhS(rbg)%(Y57^v?HDbI`ZPOMg`_ zeGu+(JnX^#mZ`gETL&J@5GV+X?(^O9LgB)%{Z3|ON6k-Y6-es|U8&#q%=O(Rrj@f5 zJHq?vgy+i4bFvpn|zkB>m?>g%h&Zxift2{R2<7w_XDS5}Y zy7&7Z{7<&7SZ*`f?WF9VL(e8{FDTsoq5O%Q;Ptyteg^;fc-Dt6@npm^k$(^DYRX=x z>rDRX7~<3ZNGtr?l-pw4n(}3K8ffG^Q+fa3;ioe%Z;AUxZAAeJ-WnTYC^sd&?44!o>%*-n(nrH@EdIse6kJ?+!tBG;sJ_R?+YglL>r^ubb6rU~ zH8JVLk5%pZn#?+0=8~J{D@MwHJ(btzHR=32=U%Dy9w6A(* zMtm>R`IQT%{yX&1@aLk+6ZbA``1f#I4+mF7#>K_nF3z{q-gYcL;cTBgZ&#h2NPSo% zSN?2nsk7~_&O)0cj&(ZqD9$h}T2R~eXy=drGl~LS;%0nWlP1okF>PUJ_lE_SmNFjK z42;R2!=>pH6nDuzZ1zp&uR2_bJkQy-x9?q1{>Gd8@YJ3~UoXaN5eU|j_hgAJjja6?!}VR{QBTrm6R(>$i&k`dL!_ zIR7z=dBRc0Yyp1#J>D*BKkjnAq_^UJ#_7f0g6>vJ=lh@Q+$qIbnL8=%W`EM-v(GP^ z231Eay7Dig(0IC4B!}Uh>Ap9#m{%p6O)I}IA+@XBz5Z04UB;antKJWBCk|}!No1KP zcmG6}tn7j*JS^q&?;mw*Tl8Q?^PgRRS6Mrq3J*$@s#0JTYuh9LY0(}zS-)ecikn_^ z`J8E;_3P%T*obeRqsv87uQ2q-p%(v*L%$uL0Z1O2@ zBCnlQyyBuZp-Kbp-pBKOZzVi_wt4sLy$_GpNI#g|`p~QVGrN7(AB{b`ZL+_=Tzro| z?!5Aw^gMRI{E#}46w!q#yB?c=6Yu{o5PCTKbz1%&(eAr_wp+4}%-{VaGD=V6t?aS= zrP(>IrD062)$Q*NKcBMtwe!3?A+Ou7@(8KKU&y(`QMo-eY37Tr>xNbdWejWhZZFJa zKl1oecIVk6ewE+!H}5^vu`PTnWAK6_bzaMF6!QBzaC$uujrJ2(lx*GID;V*jD}RZn zW9+|7aYcVFANIC1i?d?4SFb2J{69Z9tYCYQan|!|TKo4Vs@xF??bevLC4TGEDQ{v= zHE}LfTwa-xw`FSU){jeeUHWTLfA5gB+^Z{_^=2jumv_HAzPNeY^T<%=U4cINOB(zG zcicR`X7!$lNs3Okb*z$~r|)7}^XTza15LrVlKbp;T-aE&!|PB2OGp3zYai6wK1g3b z&@(f6_xTs?qGoK$3DsPx#x?t^qopp|3T$>X)-Ps_4!85*zLd`OegE?PN4G7R`{!8J zHO)6xc{47r_0MMBoz9l<*~eYsZPotQwFS=KioH!NgzCd;)n`oK(>3YY&ECm{l4n=s zTL*q$_ucyb{#6!>n}ZeyUuZA#T<afNT`TfDgVOd^#LN7e z)b#pfmLAXCr7W5)ZE_lOj?UJYv*tsO)9b|nMRw=kQPl zmF7v)wvfTM6Ve>qgUYIxcCr<=iwvGhwr<;) z=y@gNR)*!%TD^$KNYL zC9lr!y5)3Z`=y`HQ#=+}S45^KaeUk*aFc!h^hEm$eTOo?&I*+>O(@yccC%aal>EZn zj~d5{dmhX5)h}D7^gf{A39IZ`*80-MmILQk2%P7AUq0RHxc&TqMBC(DCR_TyvbVmF zSYFa7dj08TuNh}V<8ywTUSk-nd_cJQ?xhQ-_B}tkILp%_XwCl*&xPF#dU=aBzyGm1 zQ*r%=svX_aS%T-BzIJQh!}{c#k{&UE9CvSQobxW>uBd77Ja@rb-q1o#Ci@3>k_~=^ zE_m!78|%{Qqx$&gffE^3vRjX&Z^&hhKK`;*^SnE={YAa@X*q9HWa9+bcM$%CCW z>*$Hx3E~qTC+t!AQ*3>D&Po6EAD3-ERC!pZ{J>Ps*tynj2|nDZj~}h%Dv+!1aWLDp zL2uC^`|u3KD+iwL4xMo&MfJ;?3;J_d7P@}+o|ns|d;MsYu=r2O!uW=7J9O~9<-S2t9 zq%%z+HgNY9;}?E@|2t-Bo_}+ND{q3b#H5nKz3;B%Dy&bo+TkXY^5cX2fvv)6`Bq{2 zC+5zXD%U4I&A#JfyWv8oz{k^;PiFl&yV~L8f`zYVo{L(sL98N;JN-Lr(+0l9lWQ#( z8$6Ya)91djch0tbPfT6c{yx{fr=a}WR^wdluPV0>rJrNkr#Io2C0Fn~bFJ7ligVqg zesJBJ*rIS+aMChy)gKqm>TGdxUwh^G(HE+n-TYl2&gZu(GH}0Sd2Gd9{zaYZ`T0W< z`&&)7i%V|w;rQPpStEXqo9mpuP{hP`-pL=%m#^(QyWqnorN-8~pkt@)xt_Dx7Oc}3 zint-Waf#~pz#V4S_UxS;*i?GDI#K7L#vc0<4)roE6I$x)ijrcVubd=(ynD)pKZor1 zZ(OIpc*6PT-6H)g%Qn@E?F*P;8m}MZl+W@1PuP!$3OlaN4_w>aK?j-THy?^RZf$N8 zHld|{Uv_KNl6|(4_iA{$touEGJa>QCojdoXX?BFglgP$4_lM1mg(r-{T6Vd_*Erwr z)2lp~TJ&4bO3S&MtyIJ>@CJ9LR%}GX4W_WzOLj4aVW*6(o0iVs;+IqRd{>9wrfXim z&pnO&kzULB`1=w5D@(4d=#-jTziIZK4UeQR)X&#iAU6A{z`U~$c|9c_TkU<#t#NA0 zyt&V&$aRzk{CHlfek(~>a@Jji?)TlE^4HAub3WxbclTXQ=Z@K$(LHTN@SXjPr0pKBb={9sCVe>nL{}xhZc@M;mQ5xp&Oe@) zZjw^ZtBdtJ^-U?Y`{6R1_1&Uknx~sZ)~lTHK5Snu6;}JpxN4u;v=xybcU``Az~`(q zs}XPgWmesk=1(>m`N^qm_5s&-U0k?_tw*Mg-BV^?qRQ){NBjmqHm+EHF}vBdVPj)q zQ>us3>%_w;>{1sDs{AhZtQJ|u9d#`IhFq&nRLphBf0C<%^HU;Un&_^ddU@rX**4n+ zpWmAF;r!==#uHPY_j7ZbRiAG%F6l^S3O4?|)9069(Vbs2cbrkxiO=5pe)4PH!}ja9 z^cy@j*m!NVOkDO{&Q6n=R=NqE3H?ePd!EUZ`K7IG> zz4EslwPP4QZ*1ndDSfeK^DVu6xk(G#llit?&RoVh`MS*~o^F|XiC1%WKK9GxxVgY4 zc$YyyfIm0S)ja{F7lRhOadPKjzpCb)$8lQ8-Al(pOBXe5 zJa4#`=fBV4&SpmTlH><7wyayvF8+M;hx67?E35x{bZ6g~%r!q|?!&a`f(&0x< zE#F!FKcDxl_)sW5FZ9Pho1L7Be?I%&+#zS0eYHyD+t%nG=}}!De#N(17CrvD^YsIQ|`jolD`2aQ?~D@X~@=Rs|1Sg#KA(G*7Lb-0Y|JX~zEE1vkGK?|X8S zRczLt%3?Xw#>1ZRKK75>|IE0#vsiWe_vrT<894vf{NG^D<(PT&_w3Rs=@P2n`7g+> z|9XfBd)diNxyn4#c-gw=^M(1yrv8i4 z_it7eQ+PQ4e}ul&(L)*a%`MAj^PKv;uyp;D+dVh@qCY5B87VgLNdDb2y}iVBpM1u? zY1@O|&C)y{xIj%)dg}&51Yw$`cu?>#CHusj1&1AX&wej!HLs=q-r{LD z-||I0>)xyX;=!9wd)jQCe^|TW*R`<~S6sdNYmyCT)0LkJ`@iRY zSNXH~dcj5Un$=r*t#k^ROgR6~+2(#$r(xQq#r%R10{<%K1}e-i3VPqZ!`7j+v+vio z-AZ%clul0$_;BhdM^&>Jmzwi)O;-22#l}pn(lHO!{-wz=9=)U8rBOJS@wbxD4%a<> z^~)b^i%!(ZlzF$gV4q83_vRI5mHA6{>ONaMVJVNKrJi|Y53k$>$GLY+{m*?c`YEu# zo7LmT^Nr5CKe>NSC2Jh&xCImu}D>Ec9P|MR`gTbv_{ij{K$AI?usj9>42mhW<{K)A;JR6jyLK~aF7I-;AL-xreD3MoaZx(czjODkAG^276b3$= z|C2S{-Jbg~>uJwzhEY7?uO*`UW-9$LPEmALD>{Dvz5wv zZd>D&*p-!5HA|E;uGMjIJll81^205S%8F2jl*OlZna8)(^F2GyU)P@4VcB@{ajWY2 z7yQA(6YpI0gzJ^YeNOyTQ^j6fUnaCV zbE@y#vbi75YdIKc9DkwnR417Az?u__6Q1lfc)HVJMx3jn2Z*%>({2hn4+udtnA??i{B&GycT)pFe>0JuP zf14kw;aYzZA6lH7V$EzYy{z_^ASmE|JzTmjk8#nN3+Za`I(;_DmK5oj=7!4;Yni znt19I%wM0We5)zxL2J4EyZqD4<`OrZ_-ARJzZkQH!A|YjHHo899I1MLj1Bp}=PWb! zsh%RC==bDab>d=7R$ajNwkcj{rgkns3J_V(@H zgKzSzh;4U`Jf_KK7_+Oh`*yT;o^$&t(SMcM^^c#*cHrd zex6M3RXUct<+{eNmzzsM8n#$|GbKHDx`J8)yzTVptwI`#rGV#8=&gY-oe`Xk(ebK*szF_}>1?iuE zJw7Ki#q-GPmilJ_#)lVe^X%YFTFBSkxXIVBXVzhPo{v6%73X=U%P4Mot@3dG{#^2c`0)uPp~!$RveQ|IWvbv zPkL3w#>j~a-+$`cf7morquhS-yj_nc{#(%~ZLu*qp+;7O&HO?1^w-vo=N+W3TwZ#% z;{AdT=hdSYYc>8om8mCjZQtR{=FZ9kN50hbc>Z{9mYUJ9<`x@2%Y>uGnJnLh&gWJp zo-$6AJS}Z)XS`7Di(r;Y7h|{Hn19F+FCeaJD7&fL_$Y<^yRb)Xd`|DpaE0 zXFgM0yD?UyV%^e5v)f!NpV`gg-~QqJ>#bP}4<1_Z_I0(&^npAI zMV8KHPV??t?Oe}ov8mxkOV_0jH+BCQ$LeiZ<*J_f{{FKgSFdq+aQ*+YMK{64@R`pF zQQ^B{uR5igohs|1wwNR>G=A3X9`13Ei}!(v_c!6MF56sX*SyYX_^?mYF8-X=!}(hy z(jFz`toGiHKV$({D-AL*>C^z=RIUl}f)Hn~3T$A`?VrL&`o zJ&j+~B_~(p9_fAz2sB7EID&x z@w+_42;ACs+OM4HId2YxLkKubb^d#bYzwo3CnLtC@8wS2_LIt1Yrm?^jNH zrt`-*`(5j|iB1b2#Z=2+*$SX~yUHNlL1P&VYOpVG^%`~p( zP}*AkuUF^KXP&QxNw&w07*l&n=g#Nf^XYSBnZ4Bf*7~@&$CJ0p_xH} zS~bsG*S|@yt3TpY_`$g6d-MFAv69Ljm3BXqHIJW^&$iU7Yl|-U`1wrAt+Hl_2 zS^W9HSg7* zwJ^*T>74(zJ!kjjZ}W_o9?I@Mbkf}*e^R{mlD)|{Zq)RL-ZwYev|z=ZyiE&w`Hh)V zr+Zwgjt|~cP{$*X+1}YIW}5qc^%GU=OPbs+u6zOuSIes1RIfU4@3JwdOuUnKiGQ_K z*8ADN7JM%jnYMT0dFvY@o29zb`QJWSez*A3U&m%A+4!xO3RwKE9ShyM;jjPNC+~u; ztz!tiGU?uyOBXWQ!nzLqUVg74V`;Q9tK{+WUXxGG%5N_o{5;!j(NC`4BhLC~YTt1d zZ?f6At#6ay&O`FyYQ_y*4NVUx3KM>=kPnJBq>^*`+v_zp}X8Oc_uAW z&gGFWdo<1X@Q=6|pYB8+Uh>1(e+Fm!lv6V$^Pk40>o~O4FN-%iyiMPRf0M)GgoKu` z6RsX#G<5#@{0iuJvSyl^>*R&&g=X#9VI=-f^6te&$;`=zb?0Tb>-3A5-2azQ?|IMF z(C6EPH5J#T+v@w$tOcWd^Ek>gDvvn4UZ6i~=BG6mA6su)tG2VuU;EO;>YJbJ>$^Yw zxRCzIimmli4{KgWt`ED>%OA`kOp7&7KVa;C=;ij~xtsZM_rRNcoRh82EphHEs7P9P z-L9=J#_xw`MC^wP&-SQ2nqW6ApX*7|N8WiEQpxMng=)H=f0{S91k~j^A8;+Rz_ou) z%K85}HF^rE$GJ|_$W8sh`|n`$7nPYiXV`PRows3LvdfK=UOPnZ2~RxLUOQQP`f{7% zjOU(k6tHythl>Yecv{rHO7^7ra!k%l@R&a93SDPdid7Wpbs-Y z&AD?s(rU{B@A&zbCD&RosdNATqo41jF1x6C%JZKd)0gzkb<}QAF%oODoU?(gUn(V{ z=CFXdq?IM##tCsM=u4PIX&Fh1b#hac(3!v_6p&tgGsmgO{(TpZ*{7hTZDvnTtDPB6cjWd$=ZllLvUPft6kTHUG=vGoE7q zeik3`@;<$p^}geYL-w0@)}Jc5^5)-zSZx-^X_ndc;&0C_i3o0~{}*qp%4)vtxR0lM zl*WFMNX}{TUmm`kSZr!DNq2(NOVdS8B@a*P#^|1~P${ifeXAK``$MPx!|WxtE!r}M zr}zJLy>zcd`-e~EKebH%hg`ykCUwGjuPk+X5E$djr zzIyYA^PGCTD!PShkNx(WUb2s4O=Hx}cbmPZMMoAan%cecZ-kgTf3pntX-;UZ|F=2d+mdNv+gwZvdlo#I`ES)a zu}L46pBGCyw5|T8^b9TTwJpXhE341;zF1J0bucpNP?fgaozsWx|LZ$`T5MaE;HP#j zD=XpY#-seVibeeXJ5C6jfA^660Tz2!fe$clC zmGk9JvzW)&#Rw!F_@?0e>*hgr?O8X@g*Il*nwFZ7_sNtic;3pSl@bqE^0+az{%*>; z$f@~G@W&RRe>ZJ?WFuAj)4fEaZ`oQ&$Zn~SwK;S7yk*?70wKk@zb5IBPnj>|JZnp<-(Ehw`N3-Tz|9}db6HL>lM357ujISQ$9s-Rkw2cBzn^4x zI&q((PMu}izQif5^=%)IFR9-az!z`iclqB}8Pgtzhx0$@*`N8*=ohb8aQ3=5lmFj0 zL1O=ADjZzVS<|xRv{)K$uw|XU^*(PM7ki=AgCCbxKkN#Q zK3pgEZ{}~!sTV}%WeIO!Z;B6>Dru+$Ab9-*?=E>q~Hvc*A_xhDdo}UJ?bW2X^E@2+if7=g8Jd_HzJ?!!-Y!k7?wEjdce@?9At}hn|^abSE}P^KqgO_kSNrJ-x$LE@>JyC3m)D?C?Hh zAKV?}QWjZ2uDX!zs%!q*}> z(oC}pxMP_Q$0|pw=}qqC(A2K*RE;ok^vz97yYykksVrf$Mbi)2Pk&p>`>-W;LBWOz z*|%-Yj9TiS#l=45Ur^q7Xy#vA$Fn?J;sZB7nfaQ7J@MO)yEV%alpiv0R95>_tRa>r z^1!2Lb&Im6kVO}$tGulK?9OSo%=q(m9Xz(;`mQbe^j>duTX#<9&*y6&kMjApO?NxVDPJv)$hhxb)8ueGT{@- zKeJzN%1^&xSbRVH*bZ^YH9k@^-Z7`%{BWN4wCRb8vR60x{j(>x*6*`+H7m{Yo#hjp zQyF2j$L!(!WG=z8n@Y6&-nFi+iP@IEbp7))1T2>TW@^_DRocR)w_hgg(mL6Kacf%h?IW^9^jw=p( zJt@DhTYW`r`r4Gk_V(8V%0;xyXF4zbrMM&K$Mg28rEX6Hll(d^EGaH%{^Yau*GkXm zy25ncJdb&AKfHYK=kdMOIef=eC)O%@9I_A2E!3XsF19@<-OK;ha=S^@1c(nH& zi4al!eba4o`;PR3f4de${%-#8KjQGKO&?AkyCEq2@8`+O>e8GdPnhfeSaSdWW65!z zeTGVE@1ZHr&+iof<$O-%w?In3y#2f%His9?RZ;JR&`YPJ0d48d; zv!k8mAr^_csX=1@e%|hRrqVZ4c=qE%_Vs>?pD)o}VafDn+JDO_7E^wipKCc~`e*ZI zPksmIdB=Y{*LhgZUpW71e@(If%t^=pIzF7Qd02Al#4D@zikwb7SfRW2dBC$n_WMP} z7Vxs%5L+-Mg)=XQU$vNT#p=oK<#E|($}VMoI5Z_)ak;@71Ht1}sb`k)cLYvQ{QLDG zd!3tK65l+LzVs(gWj= zblr#Z;#aw@Jb(D?7N44&!Sy4O+g>PT{Yby=P^jj=<5=FV=6zG+Z9$2AG2isH)jB&K zr3Ply>=yTZI6w2<%LBEKR(`T_YOvuv`}QCA|2uoHU5QU$lD~gi53gOk)RgxNxw;rn z-d<$z^k&A}%agCadg97r;nS_4{HXNI>SG$$93ff>X%e%JY{n5=P=?~}kUtXlj^=zlSb)n`xm-<3CK|i4i`JLjs+(B6^8@$)KPOlD7ny~#9k+&MEWw`AXAY*-Pio=At*1?ImZpH_6_v z-|{}HWWpyIcZT#G8w>Y+xpdQU!j&0U4sdyYlioi^R6;u^YSQ-%-EAH%_5ZGY*}U~~ zde?{Z=a;3bntg9b<34Wse!;`}wz)d9`zCiG#Yo*(V?CTRFvv1XJ-Fss;&(Zn&OJ3dV=a|CzzsFDX-S5T03#QNDlkR!Z9^ZH7 z@_w(NzsrNq*Zoj@s`Kab`hy*HE#`_K2FI@an-;OJ9KIi_Exxd~;oVcua!`f*U#e$D zbNSi7mh7|7AH4be!6Wy&7-i1?Yi7y4dUY+}Tfs-+Us2E0*RQPbReEg6?k(b{C!K%m zbF+-OV%LZBjAS?kjI+fO>R?p`$Q(si5TuB@J! zZw~JIYr1>C|4P&M$Dg*Uo>y4?zEa-(ULxzK1#{W5)VUhEuRLmf8e_<0k!<$)%hx3K z)y%sO9{BCMSttD1=gA*)V=c3HecQzM_Cn$-*7>PoC(bbb%#1F3=T#hJBUXKUj>zf% zHv4i`uIqP^ST?a`#$~>lKJgU}6Dz0cy1wmW(?4XtdfH*`(&mOsCuU8O?s zO!%IL3wPZe|B2o4_{3iMqpkJ1XZ42p{1qaLB7{7zzTw|;oq4tWgZ2kqAI{G*$$p2)FvL!{R{p=PJbdtyEB&V8}Y?%dq$zbkk{UU?qNUH@4#D-)w< zrd$OLz#N%wAof&R%J15{pE~O#9FM-9l*?G(H)qiS7ooLrGd`W^nP}7=p2f@981nd; z(gQV??|am|S2F%RAfMy?HFQFx;JSpn8wB@oUn=VSuBb1UwlP}h-K^*Rv(i`p{E(^o z=kw+TS#|sJZF1hX9x88r%(Uq<7Z@nb8?Ua7x zaYZRWq2-wZSIymr;Pbf^kC>mCL4NbSor%RV-7%kT*P;K-WZ zt#)KqJnJ^Uu=3fDYYeic+1PVm+0S3uw`tLjHQP=^JlMkIZ)BkHTuj-cQteyaUa#qo zHC$9qo;vI%$lsQevEMo?bwvmJrcc%0^H{f>$nEaiWBcJp9>1OUJkRvMpBn0)ukbrA zdtdf;1xJvjRk4)O!*svyix2ke`(`-0&5oO{)-tbqYS)uD z?053!hqcweD~k)apLa&+%6sMbTOLKihd$XS|1wzofHU^^5w`SCp=LMR!nur?`j_C_TpOu-R9@#_!o%irc70{#Ml+qTBRZ$JjQ2ej z{W~*?XZxG<`GVQD6=qUaBI~Vrx}NU1u_`_*xTU^~CAgV=!;gUbbCo0a*=t;!VQ1am ze(ZB1f9bRX_N$kvW_@ZmufHL@Q{=FHwQr(dUDSlWx0-GB-=3}7eqm4R&FBv&JXbc} z=ZJb9JCjZLGjDHWV){dc#lHH&k5c4(BF@eI?kyTO>&Tq4Jzht-gXhh+;F$DLa-Q$O zUh_YjThsr0EXZdUe>i{sqYCc_#Q`z)*WaFA;KSefxS$Fhd@!RjZ?1!#V>JDK` zmRSv#rDeDL_?*wHwe+P)@s{Nm79`JkY#h$GRNrL(hx7B#omps7xoKCW$l7YRUrK+B zA3l6Nas7qd%{KDhZkq);9@Uin**y1z`n8z!NVPRc1t<_ z|9N|l&HvTP^Whu(zOh|q-D)?#(_F5<+A*sA-RT=ivL=5%yB||s8hJ-Crg+V^xF4Tp zO})M$`*x1F=k=KtPeS+fADZ%fx5I_kCo>-X7F3q_n10eWUVItzmc72`By^XoJ7e0g zsKke0#nLOQx3nj;wC_a-K<1Q(61lnRR8l?`0UTH?8X}p3-2>)9kM^IbzPEE zWs(a6n%zLR*U$Ave zt-`|#A1|HEjh7xO)ur;&Doz-$8$-h zb^ZBSpBF#7nf2}PgVc8*u_?+ox<8zszqssr%$hX&RbkU!hM)ba$P{Q%do4!Z)ckR= zi(gCqzo_DBhgML}^XJ-U-&R;go}E{)iR1sDtk&N4lQ%w=c8&ykpP(umv`|FS|FMGX8S@XGGKau6&ia zO(w4y-d1uQD%~x|&40N~A#mQ#F0R?fPLF?T8E=T+M<`E zWVU4;H<7%&WTMr~h$e-%C$&~=FiG?NerVHt@m3*`2_iGpB9k_(IPktk^N@Z0>R$e$ z+pQc9=U0dE{NM9Ot@&l@;cVf5Gu_N`dRmsQ5?HpFU3$HPC%5x_K7PH`H_xw+`uwYF z#+5fOugyJw$o~2wrdt!^?s&{Je$3*d!0`Fj@~I!rmj=!8`@Yri&#{SfX3w9O%yjm_ zW{Iwp0ar~b%ng7V2zY8}=wAP0`dYW@` z>%7*F{Ph1j_FSp?nG)$T$5-gQz8t$kiskJrrDdysRPtVT{*f-K7MClTyv*M!*X6cK zoTT@{R|l<572lh~BBHR6{f@%DDJLVHesaXB|JkhK``|Mp_q}YrJz2+C&h&rQzF{2L zk&xHe#F+kiO2X9_1=W!~hwQuE)z!W~-5R9%POWm1aQyDp`aY=}2fJpq3kgZ8|A=lm z*jm3#VPit)tdEhI_hOh1SMvNZzN~(4PD05`U#3{ImilQjB|l7UZv512y#DD?+oD?j z!adxwr+27cP=Ay6?bzZAO-}McJJ=+%Cp0c~E}E#`y~2zo^-LLtj?dxf?$xIn~{JKlyR${--;C_RnjMWqx`uUFZ1jx65-_ z*519=aHr4cLTcHT?FLuNP8C;7nfNwPMsiyG6v-vaCiFgRRi3LO|A}R*t`_ID%>5pj zDT^o1EVJP`lp0gy9^jbsn&bbOJwiSQKW}ASG2@23$iJVS#eCarqdwf(?E2$*hM(@2 zIQ!@hg;$9mc}>cr7H$`twe`V+OG@e{tVQ8}9Wtos4E$zK{R5qGJa_~;^4a+E@lRd4_by0gDejDkUvtDg;77VH>-m@bxu^CrYRN}z&g3%^G0}fk zByefZhm`rbR*$!SfADe z*-Us>uvOSPxpEWnhx4`fWgM=3qx_nIJHKq!-e%PZ_lGlt_n4S`U)>s^#`FKp*}qv2 zr}6%5zE|9F_v|4922HMwhot^lhFooK^`CtCp!cn-6BU+z_FnsLg}aRBkLMe>_FX-7 zKWWGRXZ3b(1ActAK7T5d=l`Bh{~GFEcKH0}PVBv_`fz@7=H=J9m%o-q-(@Ydlm1t^ ze0$1ukBVJy&WJ5p$P)JT(3JFRA6B~N-ah#6kJ}ZcKc7FdPYn2R#-pU9!Zk_a_96Sv zC+=w}Tr;SeeJ?z!ch1+1GTi@TrqhmIHvILw?o_H{4b?=vH47WeDK7{4WTzDu5kU4zVXG2&)Z7wzLT!XyQ-?-llP`I z)&75Tizhqt-h%SplF1t^I8P_P%FeKK}=tf==)SY4;InB)JS_Lg6Ef9AEU<@j&2Q}5a9!#})d^DRr>%6W~m z-^8`%fj(!>*R;FK4)F_}YG)C&s=i;=Zgu?l>QhS zPe1k~g=O;Rk4ZK6pC^NA*=sW^&m2yc)qIvTJ6CVg5e6pC|7Tu0*N9v1I=5|0=Bm`< z`AM@k@$3JYQ=C^@S~f{9{z%c@HD`P5x9W#g=k#&^KeKF~pL$$c(=Fw1s(*@0Wf)uk z`M>=va+0^}!}*I7*Bht4POtcK$bR$69SeIt{fVr$;5cNT9p>^jUd{2xhC}wR&+Xe8 z&2z@}Yvk_dg}ROPW{v%~?4MX4(oz1ld*N%djVGIvryN>gd+nX#Z_67Ya$9%T9=R@8 zv&`mx&Lgg`N4>rqbGZI^o?j#rJ^j-8K#MQMd9|rNi+a9q`OP!O*HB~1^YxbdbaNas(= z66)|e^=au0b>jnFQ$$QAXQlGl)$Dzys%LP+G3?RvxE)hpw=SJOb@Ao8J2OK+J3KsV zH~%Zo26xc{&aJQ7Mb#o!X?VXZ0^m)A#3RE!?*3d3w7^_+k6<+ftPoilTil zx3(*k>c6r39^IQZbNSnzLzB`EU+R5ZCF;X=HsRi-cPGLMQi?2Do zGX8v6--?~Kk>`e%{9Wdb^R~@-FeXx{ZC|+LhY-7(nOZrBwf2 z5w^g1p{Uq0rqU(BqW>)2x+h53eK@{^KkvuC2hnSV*7V-o(;{~B&es)(?CYm?F3rCv z{+)gGhx7Te&C;Lk-qc#^>(|uwJqT92ap;;jKd+|sdH$7~PjFs|lt~b;cv$@;#j*F^ zBI_ikgOwQ^X8+q6_A2nlS@^DB%6mHKx7(!rhOme8Xa4!Ob~4W-TRUq7(9x-(4G9z7 zwGUc7oPU2u!2Rr{-OndH)B5vyIYaHXM;be{{ul>4{h#r0rs&SyA;k~OYto)<4`b4M zuu9=}-KpDWeq25!B|GJBjf9S)T0u|AK1V zk1c|4ZvT97>zFF%7;(4^@#osVbp5=aa%JcNKS90^$>O9s^EWLEz@M-ci`EL$q ziuUgcv^YEc*R6Zmy*D2fUex+iY#Zin2jvDZ2O|Jh<#@%i?{?N8>F@ny6q zaQ^3c&w1@=({*tsch>VU9n8f~;!6J*t35B4<=M<`CcXXI9l_O30$PT3zdjz=#^Y`k zdN@;m8~;K1ncDwS17@nlHa&AS;aB})ZT|81f2fw=PGWAyy8>&%xu1z4zJL?HP;gT-mK>;y0Yd6+x6GS z`!)91+8^iAW|nfc-7l(k>BG;PQ+w73XDF5IzO6c;_v$|VV!6|6gZ}P{ebKi+q42() z(|5aIoBzg!OQef8@BiaqmHuynwP~n}{q#7yEBBLSs#oYgoNqt-YE|#`OuygXF8ne5 z7Ch}B_q`7cZ!h(?|1GR zrQE=W^K0*|&A*)awYP}1e9wle85OLTtR)}Y=%z{q3-7KI`zLv-Yp%=ph1>7e+9}q) zc{9%~h9$nWe%}e!;<+=g1#_kM&d^i7ZMSyTV{@HLyQJAgPOSXL;B25*I_-bu+ww0g z?~9LEEy)R6_dKrRyI{)l1?kH-JILOCYul-@s5!zSUah6x&HYK=yE~G>H+Bmw5w)4$ zC*gSNvtQl^2Bm|-HS_=eJyWxDsa41Vv;OP8)`F4M;YD^QogYsv672YNXv*{MIT5+G z7gt=IeCLQ$sll{P>Hlw>>$v$hZ=2|?^X8(Q=8|@~XPMK#t2Q$W^BwxLW&YCT)Av`s z?>Mw+{$=-G=F`U>Z;n?CY^{&m@5&&r`{Uw|te^9p&ELN_%@U1RacWONb=e1Ft{qVi zIode>|6x@tu!}C}$)3yG-}3eGg@zIA8R3-v*z1GRj}`W^(`k^Wws{<*ile z_NzZf@5$SGXuj@|Te^RYt-i!PKHyVd!?*j~XZw1WZT{Lax-GpW&+ETAR<1S-+fcBy zwSL{}^24S-r=~?0C_mYGbxox2!R3le3lcYmpI2XO8XSFN^Glw4RjVdkI2d|(ZLGZ| z=nPLLuM_!(|BgrsxnDcvDgMv$nZoCp_DvR=-yYcT#EIYbuZ&=xZy2N@xqs_&uKzub zo*Ts_gu|z^?5yJhb!^ryyD9$Tlh;`-=hlgj7DQgIR%JQdSGRIobK85vmR7s`JK>`L zDpxO?UHN|&SI(au8LwM@3(o6WuD5NzQ5)X_gW$4D+MhSbo!Q~b;yh#eA^X*8*NQ$& z<%rK;SUfw6=ls%`*7~$BK|8keTAdT%*6K-{S#QuI{BS;JPT28?8HqLe5w~{iaBI`n z{Zsrg?z4x?lyYr9A#UTv?*um~{xg@qDQ}TJtgqHeior@AAQxbRSyx%&`~7ae+3)7kPwetJzm7>BKUQqy?=_X(F>9Ce zw}X=Nrl+kIbQk*fb8_hXJ0ELUArmG==`QTNmLJcp@_*-&;0PM%uPstPBX`)oe#0wG z`8|)WAC&uK^F}RpI_JE~9?sLo{d3v{&F(Puhg^95=|#r3zD=U%S;JfF!*tKSliqLr zs-V2|La1K*+j90=p%xqN|1y;kVeci*FPVOJ-S2133+IDw^;DK%oBHAW|7@1OKiowB z&E%Z^zHe>6V9CvI*;%i9>;Ju(vo7bo&5BFi8^nXMqj(wgXFZ>hc@8=IOf3iT{xi#`-eNkWOr$Fut zd7l)&W=DE|wS08`kbV1y5U%qn+G~~`*(z%G#_HjG^Y}#b_{7q_w6pA&)h3v@FA94& z-}m(GqGMZKzGwJtJ0!&Tbf)dAyox2q4;_{aUc(==_E;I8yT`S?wyc>(GFO);SYFx2 z^?!}&EvqGxa%Sx8-V=kT^Pc|SW4FGq&F0&l4GsHFe~Xo91WkTwyL5d zk%y^_&z&CmE#0P-X}aqJ_y02%ZZ7glpEd}|yE8HuPuI|?R6CSeo4elZSLp1UzS7q| zYoAzP^Zdc*r9Y0XbNYJp&}`{0`|1^!EB1bD%2{YtX**qL@ecMQH)g(boH1Ye$s3Ws z2QD)#Yu7G*INzDE@9DzNebb{jRtEpi3%-=`%xji+Bb{I*xT*5*Zt?Gxs| zA1817+VS_@i#c&KpX;!^dh$0eF5;W<^P8)D#4c_LeK4crg2y3y_x7ltr}Nbk?!}7A zD4wsc@Gf|n$bUTVrQoMOmIj8B8S5&O7FAi)Ie$EAw0|Pw?JH@&rCPU6sGG2%-Rpzc z-(}}s{hVK0`f5+u>C{__hq5lFI{$dyU}odF;IH7;_Rxf%^X2DOU$awNeRpDY=#TVc zj`mNI@BhtU)b?;ZW?osh$@flypyVJ%zWwfUBNUIk++JT{D6J>vkuv3`!;HC4$9s7{ZP%<>W`~F zoL{}Zymosi7xUVsxz9brer-F*d-ME1WwE(Cjaz(Vnd(Z;oL-Z|A2(xDu!2@0zufyH zmt);t?i1HPrx*Hg{!UwQahc3_FB$yeSDdP7yf1ghpnk(`<_XDm2ZX0u-mYd^_P1$9 zRh#{a&+Mn3ns0sOWqa>>!rVvFXZX5i9t>RO?Vfw(JRkr1(?|OpW_~!o_j|Yf8Ux?0 zBK@9>_alFEv#?eso;2SX@y6Fx-H*8rPg3;gvd>?3r1IOut+}sP1U5eG zTDxJ5oKECpi%U1Yml??$Zt;GkE5A3IdtUo0uKzinkAJCb)`_0h-&3i2LFAdc#mnh0 z)0H33jON{v#JOQfPU6!zvGuP5qS-fpdR=;JMQ7r-IJ@1=JU7qJIlF74>p_p%4=1_J zHU(``inMoWG|_v-z5UeGj3blphCZBMpX!?ulCbpd!&MGH(z*6No0sR{w zsy?5JWaB=xa9ik)=Wo5ljpr_OP~@7!e&(Isn(wNKP^Ov2ou@Bn%=RC`iOH9R2swDXz zFX_<+O;0?{+?is%=FcCQg^Ca7e}40DdjxlF=If((E-?sj{r9nWmBqbx<_Al8M|<-; z+uK>9|12kQP7A%6H6?n=V)NuL9}b9F_qWxjO=2;d>B6;s{zj2}ze}+de<$oJe&#H& zv~~Ki8!dBVUbWQo)qS$jxVikg`0KX$PgWhWpFd|oDAzHIpg&hnWL5KUJ)QaH=k%JE zRJ}i&3hW@(!qR5Mx7pCg9%{~M;oZ}h!qO3nFD zpkf}UCYiEknfa9EJxxkKcTB0i&5&ZC{%4K5=s(Nwd;d@Wx!RJH?0BrIg1vs`p7ZIa z4C)Jn!}eFKeHzuaZ}*$sH!h3(i)6iAV}GRNzTYHUfmY4)y^Eh7))Q`apPaGbz}cM& z(uq&G{^v~JQTf57)nIRn)-}h6^HY2E`Rh-q`Wah({->dDGw<--|b#|^*)Q&ss&XKWl}=!OJp1=KJa3vyNI^$_d`>j=VWhP$#{=T zaQ;pEh~~P4g`EG-@ZQQ%+bC)!BDrTr-G|M$J$z$TIFEW>DCM}_vOlmx?dhdAx8M2x zNPlMXMCaeq*D}*@^Zbu_dwO=>3N~iL%7=HkCtJ%MnS8SD%$`>MvK3Q)YTfADeJR(d zUVwM~2KU7W6y{exzgqZ?dmn#Zz&w62D|1f ztFueKvS^;Up3JyHKit~TeY5ZSJ+G64 zs^+e2$vJUPpe6CE^Xq#|6a8A+jJsEI?oVCPy~6WIe^u27Ntq(|HA_Wm&b?<&?416w zZm#<{Pf+Wy>_;+?l)c9M@^I9Fc4JpJplPC7ek-I>n8;=lZK@vb>N*~O;XuRq>Z zUgfy?%$?=cBF)9KtcwyWR~<~(jpxy{PiuQ*bn``eeNC%q#)%hq&xwcs*tyrPU4iqz z%-oGl9~+)pJgoM=cCqM1`r{Kh(eGcYY$}luoo`$1Ed1~1vd>i)cP8!B%nPa9)Tj1m zv#U>A;);D%lj3enTQEKR=h=yOnx5Tkx89WUqPFDH{%%LXe?NP8n&z}>{a4Xd%v)sM6 zVRPe@{@%dsMLD@XVy>Ue+!(07J7Ht-)G33b~gU@M0v@u z`zDjc&xPH%a)tlw6NW=+Kj$B>wz~Ow;oO7`s{Z?Lw$v}{ESt4c?e)>{)tVNY+}W4T zul*u2^LxgFogeo_SD$b`b@p?}{t7Anxp^X!dgm!E^LXX5dm0~SMAYfW*%ob< zeBT;7&(!!*rP}tNPd#pZA|a`F-78&)9>ngY|cB*lx^VR-JhB{LKT+J-dXq-}t*@ zb(!D+m;TS@%(=n~I#t)+m^L$Qr`7JyQ*`zJe?D~9^-9*mCq~TC(ym`#vebP!v}ykD zpA1WL*1z?-Udz{!d#LE-b|y~GXrAJ*qNNu+j?3Q9Xsh?zC+yb1$h{~^mG$0RD>L@1 zCJO~5wijIfV`)A~rzl>@;QaNJ?|MJQ zJTE_U(U;%)E8w`>nY#x!m>*i(Z7Z@m;hNhqG1Kz(k({nOl8z>QiP4IwmHanzZsT^} zn-6><(lu?%w`(xjW{to&gkQz*pIxo=f2xhe8@fEwM%=6=#H~BvAbnozMt{7^SZCz zZ5wvUN$EHZm~FF5p(hmzs=sC0)g>srJm00mQQCbUY)P# zFjH+odJgxjt@A%QHoe{{V%pxp^}pt_y2Fk5*Qbq_nm?SMx~O*JzEerrUK(z^32QX- z6ZSm6@cY(U-GkBLJ3P;Pk6_N%$Oa9T|GVzm8sj1R;BMZZVwWp@CP_1QTvQCcpi}+$ zPaj{Sq@kaZOHDva{lCTgD)!vV<&)B_i;oumXPMK@@UP%<<}+Q^m>Dxp9FDa){r?Pu zTw~K7!@4c3D!$Wx%?O`;F!HnGOig|3x|DZa=ac{J`S0-_{P;Ndm`AkpCp4hY_96|FIuAfr!MI(Cm1+Jc5 zyEGqejr9-@)?R$y_c&J?HC=rnFO^(|zaj&krSsDLX;!Q_&+|0in$v=Ki+NNKoYQ(!?EH|9!THOs~1^tZlq9K=Ts+1J}oVk8%&$3*Y!A z^Q!x_L9XKa1?}mxKb-g3=5xNfBHJ{`H4q=l{pLlvn;eSee3VT z8`UWwareos^M&uObM&hGF!^6jzaT=#^2U)cF&Y|cpaa>@@K}()#|e&&RO@|J7OH2(j>mj#`w?fAd#(0XK{b@ z-^hC2_p^4^GMoG5Rzbo`m$g@RUcZ(Y;qhXx!Bfe+z7NxX*S%6R>~Vc)dT6?~Bzvdn z!}<5s-W>Y9#==FyJ#N~a&w{609?pNNxI{b6?L?>1g#OCHDX!6H<=e$YWB5pjCH`Mi1xDH+DIgCwAo2L(K;N^SL*|Zoik?)i~py?N)*9 zi~Ab;9#(5D=*Z#zzvhXq{4I|ypS2FHy`SCn;k=XThb1N}pSdJFle(vPyxZK+qMGNs zX5NiA%cL3#$}4u>@n5lLT}7gwwRqrRdtp;A8=m*l@dnEiTJKm{fAk8{*ZKR##7=Z) z+D`6Z4Y$MgpXV_(e*Db(NIUHuW2Utfv;K^VxpvJfoESp5*f(MR~%#wYLKw z+x?syo+z4=XrF%Gf@5pZvA6N!)|Ge6rOh7BU&+3Ba>-J~g7ET5I~Z>*O4H=KRGz!@ z*BQGf8jW4&G~(n_gd=bO)r*Psq-Oub6(vO!7GcdSQ}qXKeny!!}&Y6SF+qV6R=^! zp6ax)*_jDaiGQD&I49~P9I|iD+_H*YKT1d;XH)$y?x+8m1H748L>L$tI2ihp_&oQh zexA5Lf`MV(CzPYOGqRIlM{&Pd)%WJN?BjpkFLPq@^FI8q4{~i$S-yGZ>Tg!*@7|;c zIB|Hge6Y{_RDV3`dGV~DyOzJdzWM+E|KIIZ{QUlOYs6KTKKjG{(KL0hoTdI^i^9T3 zuYFF>H`Vcr`Ohq^dm}^s$muD+)ISR4ocX`-iIA%P|3(Y;!vFk7G&`>Ucd%jo_>KS3 z&slo^uAc5Jw+mR_U7tQ{-O44IlA0g&&wl%t_V~bk2GReYCRN84>zl6sclb<_ ztMdO&)T;C?j$6M)wPx0(1NT`KbNqVFU+VASm&`Z%WxqJuxQhE$<1ICVw@1V|18a^2 zCzNZcI5`W+dCWffO~y@!*H@uI%9oSZsQg7kUvo$3tSIt$)_+cPI+1U>-YK~B}X5@VVXPczx3`aD~&@)GmUFNP;Ra=Pko-C{I->6cB{LW*^h(zaEF z$!p$ZJG?r?phWjUv0m}%ldpO#RZrXH>lgjAcwZbHW@ols_56w>oh#43Jrw?ebIQ!= zSxarXGbRhq?yH~Hdi>zArf@IKkdWlkZvEa?_%yH*xOt)n-IGc#-|+WN@7JBop>?{d zzQ$^<#q7L4Cz<56&l%@_`;v0-#J%iQ>!gj|&A<9+qG;0^fvC7=mR}Q^fALKGTeV(BdVXTRpSSSl~NUp2?~Zq1SlVgB{rH(I0?&)$6ai@w;8 z2#dzl`TtZCt5b?UAN`s3EBcVy73HcAe-?V^b4K5sUEPy<-cMXESYi+dk-m~;=&XxSyx>@?70m)YD66gOv>c;=*Q=HeuD<2d;J`xsK z{_3Us)kyxGXVl+|oO^lsE@Q3T^rUAGe!h5D*8JJxIq$U3ue#=$*O(t&Y`C?sZ~mS+ zri-`FdUe2sk$GC?hHckNVxH#Dd2^y_lX`cL&hJxaEVE;p({HAWw7)udWKrJwqjDS1 zIduw9Fc21vg ztW@~;5{H}Dt{Kc-%w|#^HTyR2*<;*Cw*}?6+Sh$cEy_IcxU-M7Q0(LJ1$XE2?krm9 zprEJpFW{oG7vFClF~@J!93kfMzRd-XZ!o{~_io>L#=SgSE&Z!F?}6XSVZmjhOV^v% zhH*>gzwx!{Xlz{9Iceqj9P9L})7AWM=j2Y9)u*v@cHWicvnEN%F5UDwE=VJ2^8Y;- zbs5(?+s~gNbMV-nBg}_IR|fL_D4E&w;Im;}{M{MmKc#Ok_pRe)eQ`?cU~+Nozr+*9 zvGO|w%9&T5SMr#`5%RxXk-IkUO8Qx)Pm@J*=9tAK-#Db#mKSsR^bGfz-e%hcijE7j zDxc{PWpK<+-Sk8~w50g@ltSya_SG-u^zc@88ef%@TV(sA>PgYObjiu($0z+-aO_}q zQ+4DvAysX;nyHu5yVf6j@YQKg@QcU3=UQYcduHrr4P%&-E5Bj0+nSr_56Lx4*}hTN z;cvU}YOc{~yTvjrFBg~mNv-O5afB!Q{|fEcUmspSQ|*{6eE5pfW_O!Q>t+>w@Ttw? z;V?07E{#V(cE$`9m&I>uchC621ElzR?_^v$p-*gp+ zBdr$?wEjAC((TdXCuNWF(`S4M`hPaGB=ft(k@Ln!TQ!p}n)}{2c*C7J3Kt5tvJ5K&K_46W-hw)<(ZJJN3EIeiY-NN?Cn^#NuA|!lRPss`>xV|$>epVQ%g=sB(yCm z&wJ{$>!QO?>9BQwo~3tQdtYSxf4%2zY>n9y9{23nJw4&^x+`-vzAm{c zd9G~w|2I4iw~CaUZu=ZGSi0-eceRV1PZH+`?%cPUV}p3elOvzZ!*=m^?|QOy#kqN`tt0AVY^KRuWmb0Tl(|7hH~2#>+RouJUf^?-LAgaTi@uU?LqU0`6Vwu za~y149zCP}p2DX!mZy!?=l+Vhz5Z1ES6RD@<)`!itojpr{~7NT)g9XB*X$|Wb!E*` zzV`O*Y=&PYujTI2?hCnmFwtOj-(l$;r|Os4PBYVfHc{d#SLGs!qP+RxuZ;idMg2e4 zDfxNcG0$WJr%RQY>!erz>FtnL@-}tYRJ`g#!*%P_+NZC3ax^!cD>!XXF;nl>bfLoU zTD8ke6z{4ZGb`K>YajJ5{!A_|>3ZZib)o#;q}AFH(Q_*{H_1!7ZNB_`^BWJV+)L?a zZf=<8{C8`Ox#^+$zaM7l)SqB6%?;f2<)@+T9|ilvr|+iBf8Y6>T{G#!(b8n&`ol%f z{4ec3DA79o`vbMwYhMI%|L46s`+2$De)j5RsuN#5`E@kK?A(k1v8?Lp=buii53YOc z6gjW5UVSsChRpS|y9<8%v{$x>O-tuqz!rG_v5|Q z(}=G(bpNlB*Zjsg@5C$43oM_OOtp~@+np6(>~%71{id~C2Qx~9ve#;g9WOsSYxUIE zsZY-zKYZfNo2OM(k(Q?}J-#Ww|MKSFa=caA-j(HcabGGr-WddGpH`al>E{nYTMxd7 zY1b}Bgl$#j5YXjW^CR=em2JCg{a*A$JbAj`?p*enD1Nt8JGSqqy*3^@z`a{9?SNU> ze!X7q0|hoUOFB{o5=>H#`R)DeSTVsZZGTIAxyshglmgowHCH0imOu0>2q~Ub-IZ9n z!ce36?>w_#_bMM(Z*b68_&EFU?%xaMgxq6%sH(qyNhI%V!_QB*yw%&aIEpz?uD(M1 zd}I>nCb68{@SQ3V!uJmUG>m-Ec(?jP!u~}%v!bU>kJLNsmCmRosTbqnd}`mcDGMfT zxFFuKxx3)l_qq4KCpiDKQuZQuVw@KRpNpQDAh)I_ zQ@mu`vTXU|rt1o}@xS`asa@Om*UB$L$4742nu&tKlKEH}5SoXH~!2xb&s_lxYD0>wjOG{`Ao6 ztG_+WH-7nfOYrzwQJYh29}eE!C!Z`OvD43|cHb|C;%x8Ew5kLvhLdLNR`(veSo}l6 zX6bpKOY^etJ#%_;wrJh;MeNT5%OA$iiTGD+wan#F*t*yS(p!?&Y%O^E$06WF+2c7! zqwf7!dSlNuqaW-aug(l;GCj&u9W{na1 zX{5(IFMaz$TPRLa@c)U2%5$$gZ_CvcyQY%+hgx7*j;wq^Iom~Rq|`{KSn|3 z$5S4#F4_Dz|EPS|UZ$3UTQxqP8-$hxN@d+N)0170EWW~n{r5rRtA(!B+j#3md5`<_ zUa!^5&c5CCKi<0{Ufncv@%@e;y!#V3Wj$xR80)HIYI8TwY{mJ2iWAHe?W~gLu(JJM zby$9f(H!gkwSKRPUxn*_R6cS|@$p{AmK9xlcUo?gtUFOMq3}=Z8RL|D(piq~u3}CO z3v-<{SC_J+O~`bJm6mg2nb}`5^_8-#A7@*s;{0NP+@&EK*rFRGers*kzH}kSjek-e zU)*fgxPj49c~4Two707?g6^KnMN9uz2F%}G zBr)N6%3_s{=Y8j2?nt^=7BJucPr--xcf=)5sBSO4cdGKCwFi@Gd!EcXX_>pNYW?fa z#yzhU5->VY;r#1P=Ja;CuJBvE%*on|P2E4})UI2+X2X>ka}Lx`4OVu3{9$9jKgD|H z(1Vx0a@MFnpa1s71U6Nn;wVSXH(t?FU>6Bgb7Ynygh*XCIFubwcqisoO1$G$Mj zHa6~hRU-S#?wQD{$0DjpdH3=T)h$^pc58*|pIxgx&Iw=lH{?AamTpy)+!*_~yi|L} z%vz>hE6&f#F(`IfDZNWb*4{s=s*-?`rVhGOvx{)E7UQ8>h2F z%bRDYZWou9*kWGjV5Ik|IL^W1e;VUIgJlBh%k0iic)IaV+CpQQKDi}vrZ*ZF|DWcP z&H=itPue@~f6C(a&9#B^wY~4j)f4Nk;~`8}*wXbxp}p>3OO(-~8cx{@&-sN*`ZT>Aq1=pH|DqwC-(88n<4XR!67+ z(-jHLL-yZyU8D8s>? zYvwRNx6`#Xpj5VTa!Y+4bEB=C$J++Ql0|<1IhuQzb#F|to1a?VWL3;sbKE(6=bk5; zY->K8zxreEq9c2|?hCTMS?ICpyz!mOj&`bA>-4>)q#p;AMSReyU3TJBhKQuh)m81E zGCp1?sGWA{;QmeQlWZND7T+~J*k@7r$uDs01JRESOnIND2QVmYm$-ZC_J%FStJbf7 z#lJ=QJCFIn&eZwo6;FORho|!hpWAiG;*0Mp{f@w(WvjRDxlnR3cY*cAmr)0Aui+8+ zw6#T3;NQ;Yd)BkoOTY2@V0FKD?K~;3uF!Ip*dO*=79Kp5?fq`y;Q8N= zDfTG7KV?^STVU;MC&z<#IDHP;x0k*B@*(ZI-7l{x^$RTvlU^D>X8CkWzU9jEt6wdv zCj63-3%@USOrQM;q?T=RF)EjR$Kc6`1sqjx_cduH3`L6_O z9{DzZaow{j_{&b#Le59){5T(FE}dh}bFcCMXL-_6 zIjhA#cfJ&j68m+hda-hw;*%p+(vJotI{suxIuu&W>c-!8l_TlZ<~BYzua6TCU6`^t zuxH8z-iPx~8Xpm>*zL;xAzksn^@`m4ov-A0L+X_4BII1A?ESpg<>ajdxA&>F zmHOIy#J9XEi&*wx=C41et1GQ^61iIH`!=$7AIYg-edc1uDs3Ou?H{4r|P-8ML$ulXo+(LpGU-}aED;6F(-);|8vJr%KY-&h0FxBUW6}#lnuKN?uOATee&A&*s+o*QaJKzIZmZvie1d4vVemEnc7FZ+GN1HL>4* z&B*>(_2K-$S0|qciF9h2*~(c-{&Qt+t*_JG>S#P;XQaGpbvgHcou;x3uD$ZJKE~Rm zw0W6a_$+PSm{gPfB0#6X?&jjgQ`ZaAn(i)WZ<=Vx;dMAelZD@TNoDE!17YfxU)BE1 zsJT@5`iQ;S0=;mRhx2FlCh5JrWt)@qV`AumBQJE%O#g8H$xdCd#R2=y$Qv@<3isX; zZx_^3ZhfFj=W~v&d)SU`PIjWJbvT|?S=Iy|Fl#vFJ45g2nkSV3 zGiUB8kQSQP^WpsBt$(HNblkmZE3w!&&{lp)-S4JAp?{W-^1j_*JAHC$-;C40ce+_= zbN-jPdPu-2HnGOAe7#}$a^15B+uj)4-Yg9gzu(RHPEf|0eU)(V{OgwSFG7{POm-)YomR(O!RyFHd_R|D#j- ze?DJxPj(hqlJ62 z_xTbd9q+U)6&u3LjSkt*Uz3-zY>oC=f#zMZJk9s3Vk#}F!VG`4oWEf6XGO~iu8(_5 zX7w$6f59KL=JK%j8NK(phLzS#>X!c`zr0Xv;D%v%;rPVcC#oR`%-Ub8EGMnls|tN5n! z?Hl8Y-`TcSYyK&YtPc8=Gk3vd@jrn#_+}_c$x5v`E9&_pedz;>a(A)b$lI$l7aN`4 zwo{4o|DUNvvvWj^yxxJ5SKGFydAHQAJ~`am&GhB`$M7cJqs{-Gic5=s5y+8IeEu;Z z*<2%yD|o`gr-fTwo~0Q6-}&T7*2BGDZZ1pv*wvQIa#zgra>8}4UW3`wx}tZ=v1=aY z)ya&N`KaA;q{Mbwfktbuhh^lVi}Myo|48rS`^PV~a?Ov`DrZvnt>S&ck=0Uv&FgrM zw$FUdP@ZQm)t1>M@0i?CxjS>Y#LFW4XQJ_c{SVon4wUVXHe6p~cy+S>r%kfDOAMn= z{+#~y#av5O9wvFsL-y{=Wn5|=*|S&d|8Yu2xjlM{&VR{k&m9WR|M>T$e%r(^c3GX1 z?%uBmUSJpbH88pGuE4*aQD=lc)}Kz@b7_I{^q>-}x5t>=&D zJk|Hl*G4`}cT6c(kofRZDJ${wO|Kv60&y|_Ee$=+mz<5y{P^JJ+t1PZo19;K(h2hR zIPBZ_;rtPXmE8-E*W@2yJ}hNWDZ5i&ap#Yu&fhhD+84#1U3XpI7N73?D0%D0&1~`3 zeo`fC@|Mn@Zy0hq*14O}W>Lz`^c8{2?4=g(GCufyQt^%>O<_EI^(UStU9#zS+gmY< z)jmjB@?T`-?Rkf8)O^j@p!ofCug@RFYb)M_x)ffv;O98nnQZ%Xn@iFC-sdk)o(SOl z|3_wy)koIesGJZL#r_^!%&y!~VYUddhHU zOPgJN==lzAwrk7WmiORD zo8iN6eIA=RD$FlGujQy>v%7fII{X=b$cCbChq7ld9k=I>Fvyi|+IDF3#7`Fu&RF}e zPjFrwyy85^#XcuNj$yU-DJy-OK6eFFH>oA1!{!BlmUcUXg#2oAugw=17*P?2){2G)_S9 z*-d|ekAF90n%5^61V_%_a?CbEWqP`D?e=P;KgLme@@gAhrdeG$!L8DOPH_2_mKVJ&ZKiQ1GIn4FUZ?5=T||J?7GP<^~>D3XEW}9H$m@- zv25ou#oIP=mXe3<^Eo6QJe{{i>Bq$RnJFGTrE|sQo7?K^UgWKKec8_aUuFHR=l;jD zk~gR`zd!P6zP?^wud_ZQDHK?_Yhfi0n0o-(7iLzwtm+GOOc{=jLKI znV)42c$-Z4)f18QQ&sRwV&>e_l72q5^A-womnOe&;aK8g&QW~4^i^%ymA%tUbghm> zEPmN`dd?{(%?qN5GTry{lAfBs_-5C3rRc_nsCM490f7(aJ06$F__tbJxj5-Zx_`@^ zu=|B(38= zD!qPk>w!48?o02Oc074iWOu0kSkC^IK=D9b+Z(43x|Kf-_nLh2MCz6Emt=EiwA8B| zl<278yJ6F$9dvU_oZX!#Z0E0}ha99> zq`8}~q}(U>ko{ptGwu+B49SkSi&r)TUBI){a^+SKo2THc7@08y`)bS@~YXb?Nc2ZLRk2DvtIa z4_vV3*PimK{r4Om&ga*ydE~BFF{wi9_p$SfbENHl_dQej^SN+p?(_bY0pZ zyS=!m?ES$tTOSv`uoa%Se7}1~t$Dz&GkIx?-h?#2`Mb<)O-=pJJGy_2iv^<+l_vfy zh8Mz=lS&w<*Q4se%s`wD&H< z#Eh%FJdZR^^Bh{%a$Mt&agB1Z>;qGd=evu4Tt5D^@8Rlc4{pBM{QXL%5Hb zXvzhP@J`uZC{Xs|c78&wKHKZ?uz;OwWaj#1yN3~8@_sY3!Ju#zvUkEFDs>DXU?^1t=9%`l1}V2xcTy~?w`+Xk`ta+hCDL= z;oiaaYw5BpQsT$&ig5ftBNpzNkma)E)58fY)uxM*AI=w?lsrf0z1h!$``^p>AF{9i zc4Kn=EH?Y~3Y`D{toanKD=5qT|BwFO1l@VP;>RAXo8;EEbn~(&jOXG6^3v7CLrCY?BPs7b%|0HfuquAm zw-7!1Q*?u|E}w=dhP8NT6Tc%5@ul|sQ4 z!Oea?wf~l8`afND@YuihiJ5ojI82LM#J=+Uev`Mk6HmWwQ`&ews94o)QB1(PBQI}m zJQA6wS0};a`8@cy&iV%DujhVlJ|f66E%RFcg&8w7WUMsIc<+DiI(&DtWX7$B!PPx8 zt0n%_@clkh*79P>-~ZQNe7iIKZFKr#j+5zI=l1-(V{2SDai2w@;nV-YIjatan$-W2 zzQyq_&dK>?$)UqDxc{GdHCa4yf z#eSmQ^Z%#sU-;G=pwgNuO26_j(5MDOFotSJ@{;!-{(K}%Q=-gW6XK}*X-42 z7G`$)z{uRT@AK8psq2%C{L|BoJ~tS;*LR9-HDHXCCV@U3qi-aP~o;k`Gh+rY2wA^x^#X8Y7!aH7@hMe63k%$^Bm^+cI*& zj_XtI{G6Tm$khDTp%}A2pPzm{o_KA)T=?19d*^?w<2QR^pDxF0xc1>mfmW}W1RI;C z9|e}|=a!sgU)tWi&u6;QB9UE!6@jy2b{-6MG5vP5Xy(oDhtm$*3p@JOzG*vNtF~t6 z-7^ax-~4d?vZZZvtljrN-JSdVmM!}J;)hPC^i9xc&FAjw#_WH7y4w}P_Pv|9F8$>B z#sZ>LBK;nrC{?Z_C+RFmc)~F2N#+Wy!sBV0CRd?5L@=+qqBr9!<{&oAg59Hw(HsoX^u{#=^JM@$~xM3_xF8QZS(8-bE;HJ!uCdQg7fcSj?^R5s~5dm z8{;aZk)hv~{UzC9(}(lc{2i8Svb-Eyrk-Av9nACk^2QJ6d(>k9ENgwP9dW30h0ZiD5An=$EY0hBb#Z-W}|S`zIC0EZuyrIqJjRcj{Sb59d2>xE{yn zcHDjY+eNQLs!V6}98MPb7g@mY&%?Cz-|y!CPY!$icwV?gb=r?bTl8FB-Iy`ybFFaX zkMvb4f|632bIz@pxA6(PXzZetZ3XX-f0bAh|8xBZu9o^b>EemMPp#jo6JK-kkiETl z$F8!2Jh@-4NL|}`?%`+Ye?K?69Xnf6=wJ?Cyd=vCIpO;@ zeig@$dmZ^-G+n2*Ojd5);hXJYgj(q&%E|GkJq(XP)y*vxL*Xq&Cdkd*+aR``5^X z+FO&hygB!D=c(^=*4NCMvGP3kn)7e$1vHPk>|Vxqsjj?wbt+3!Ne}VcwTMhV*S5wa%K0PjlRED zeQw0hUS{Dp*TPk=3o^5H;%K*PHh7 zp63tQ^WR@~F!5-}>7CK}^ETXm;~O7)>X3bLsQIpGdw)Kezt#1U=a1*{p_{iQZxys} zeX-*Fo2ZthmiOz9Rp-Au*!G9F5aSq?rU9#fsF+Zda*%!YJwQGMoNyRSCvRv-Y{DPmag1#j)<@&#LOut&a zX|ei8u8-4iT%6NduVzuTm&0c9B^|GSMo+ri|M*X z$NPlC>`;B3S4+0ac}JPX86VD{7yO%j!79##`@hU#4Yu4wrAuEIA6W6;(WmyG$yWc9 zKC|A)N&I}8 zS84j^*nVSmZ-LhR+{*d?5BJ2cY=?@vRsMYbHKS%q<&Bw>HqPbs+R1MC zb*IIW{JS52DVqx~+%ot7o6cG3dCLxMXjHWj-<#{G^LtOyoP{YLt{({M-Vky@=-k1B zY}Kj_iH&N%Ws(y2wbbv^J5*ccTyagxtH1PM!NlZkMt?T{K7C#O-7NXP(_8D838pN2 z{B4&; zY|EjfcXQMh@7_A^Q17b=FZjxRCslg1RDV*6ne=(-IfWA!FGuvOedlucWXvw%;Q8VC z5yww2viX^O*!K4Y_pT4;wO7?^3E0kfxKvF-ClB6Pe7U1K`win+dP&(5+YwF)J7Da*>K2Sf8WB%E&F+r*K~0HulX%5z4pj=js8^G z!}j$}#{>HINB^IA6SOr{$r#>H8feLc9LNmTZ4G-?sDA-UT|HKf>&E&Zo_P z7t{FRJeN@9rJl&rlh(^F?G^a@I>+UQ{-5F^vrU@==k!)vTDYX2FgvgN@1UQKYwnfj z58fW++q`fO_wt6hMXb`()*IjZmvmgvqHN!Zxw(Iv=W_gSt^X%-wRtY<8y&-F&i_33 zra5u^k$>Z|&+o@`|3FsjkacqfazSI-U!Ug8+Wvdua;q?Xxlay0KhmG|Z;3D1)SC9I zeBC=~7*^8eY-PHHt{F*7skZ-7dU&zjfa~Ui#Q+7 z|1T8zVXym1ueY;KM9ntwNY?$9=k6nX$o_wp$gRK~Qo9BFg?aa=q%Zq$U;1l~dzrYC z-v9Wyf^R!GJ$^jjZ>9W$&y45)ANTZz_pRPfC;k@tC)pcu;QJ@>`+a6-4%ye29lI@& z<8$4ru-nk$w?s@0&$sEVpS%@8(~Hkm{gjwf%cIA_X7N!dc|(2w!RxCg3zr)ko%H^5 z(obhC*Z)76>+EiJK4p72zj^!q8#|XO{{E`C%D+rW$M#J9K3CP^uW1W!+&y^Aa;IT^ z$E(S6ElZkz)pWn=SIN>z;rRb&XH&U>_71;kvUlRXMQ&yZUzwr1v%j0|(`6GE8;w7o zmuD$0x>vE~(+vaTH#R;uI=9~A?Qi6q_g#N7li}i~m0#sF583C(Ol3Q`zBGB)7rxJ@582!Q z{k@zc(#k(>u2adT^Y0dIytQ3*<=uV!>m7ciAM>A_&pu~TZpZ8z#%+WBj{5au( z$fX5pv9k*fiC z8hv4*wEvx#s?!#k1RU!B-JNgWq`>|E&y$(Q4c6Fv*U!8d%`K(rwam`G^3ETdZi}?8 zP5yzKK1uiYC9IprHNC=L%$c9bFSewu-b`VFS4^yY$p#i5ru){QWZ$WXK~7Z$M?5my&oQYG0|B5UH+6;M|@ss zYM1JKxES8{=Ir~+XUhH=um7;xIo)%eT$_V`8PopX+j1tl$WB}D%-MV0rttODxfmC$<{=*&M!{{nc^iIa8W=Um5e7pMP=Yum)wR@!-UrQX9wBbKSi2FcBw8ipDJS$>@K-8yXncoo_0^wnaPuG&bzrQ zI?JV9OWU^4F#M4As_?v|ODRkEqUJ>WdXu5}cgIbiqc^A4omhCUG-)mWr_+bYrrfvF4gZ^Inesch076@H>$GXg+^a-1p1+ z_jL~0zdqElZT@Sv_enR8HeFj`RlM}~qo2=}{%kJ)dj8l-+jimL`6rdVb}Uk{v-y2E zrp3~t0OYTQ?^lhqN z^;n-b=iuf?2Lq1VTOEDw=zM15)ywiy>h2e$XWXg(7yP(n_0fW)&-3@2`W;@AI+Nr0 z%-54L`J(5=ZhyI8vHWy_AEwbq`6ezg)7v!fccxwaPMeM^YJ$_-KAeB@^OMJnYz-cd zLrp<*bSwC3|DA4%yI%OSD?;$!&-irF3rlwXk7=oYma^~l8Jo(xRt2*=KI}`+J-~lA zAue<|*O{)GHz~7153bKWq<-zrMqAe(>2G^K%Kq#)5^QPw@wQQqm0((F($DkL=l;0# za$Rmr<%5+gOFq`RbxacF|CT9Tx9;Vxs7Z4jd7Yk}%KRxN`?c~tXWaH}5B?q5aW2s4 z>(7;M3Y7$0m#w{Uyn}Ud(vNh#`yU<@-d}c1QelDhA3L}0Q~Xx52%h+{XVb5}ydv|J z>$(^IZ@+u{!uN~wpGU~#o?+jj?$-6;{MGWE1!b2O`m@(KyJQ!hnDn^F`&;LszQ{H2 zRX@i#UwyUBZ^41pACEA9D3|N}9q(CC?|%MRsdI<+$J=X;s87s$vS9!7yK6JcZ6^ik zSiMTDv~js!vG*P4i4W(0d-yjkTTpe?Na0t3y>rQ-ZY!rCx$tY%dAf0(ChwY!cM7w| zeMw)rVY|)=er4S#ryp9PcHO>S2Yya)}(rmQ-u~WOik8FYXi+9gyd&`NfZjf)2 zpRq0G^{FS9c6fijyLGz;r^=Va&?H;erAw!?%+RlTsP&{ZjMKPgDUgbYMOA*f>&v!rhv^yofOn=kCH(Pf<`4qcJz0Nywp6d1cs=tez1^-F9 zte% zBp&~=sj{z0+w{-##piDc{r@I#ac*VG{?=7Dex85NGPC;m{QEyS!$J0jyjxh`)zf{3 z{d`c<#t+feT_4ULSLC=ZTb1)=Az$_c)kA27K2{T{UZN84R^KHFS~l2<&cH9XY0~PC8Id^DQiBvaxU{MGl-b-P3J*T zcL=ZkFRk9_;8L^upQ|5Ez%SzX#DwcF3^PFF~_USEX9A$#Fvi-V;6_q2T~vC#A{ zTNIo!|F?E>&}LoM>xtf*inRS=n+^?Dc z>`i7vwnlcTD}UUjU52%#Ugen~iwb&X>|J}w&RR)*`rjIP)0md}KB0O1FCRS3d7gQc zMdi=u$un*<>^^OAKzLtqjQMVHpRbCWqP-4o-o$hA$>|AmtPMBGe`F}nek@hZcTqEb`C&bWEp{CVCFincnze%t zVZHcb{iP6xjZ8{kG9KpNSt@$|_S(K33;Lh@%K7n}H_zn!x*I%E-b{7sJ`7wO^W%R! zzkIo+wtl1Vk(A@xkBL8=|NCRsoQ@NIO9V?*7YK9rKe?_x*QZul;^Ibyvsn+n&okCP zWZ%uPEHu64jJ{GW|7oGm3qG8;Qcn4)pj6Y-`%X2lX>-GJn@*NR&m*Uw``pQKYIpRH z=ev)btO)ac96CAwfM(gh&nY&mZ=F^twm-vta#6~w&8z0_x#jt@SXnJDcjr3Wj;ZUD zeYn;)+kg6ZBVbj<0r6SgAI_(gxJ#HkcP>`?>U_$zLh1d=lDh)`cDkNyRqvj?Ez__e zom(!aML2l=>^mn9EoE9g%iCUryWGIYkJn7;zYkL!qvP4#KXb1gxVbfNnO*plnwJiX z+Evn&b<_=?`|WW(ImbHU(?^X;voa^w*7{{CFMI-I?|(^FSoiQ~K6qurs>L0Ca^F8( zaMs%%HM90KZc{U` z>+oBD(sTn$A=fG$Hc*%ANT zwolrZHRJ8?)6KKCf1Y1la>Si?;yIyzKl1{9#vYcm)u{D*&wJ|P>^Nr^hwhi3+fN+3 zG0!wc@%e}Ou_?EoFPwL!|LSwc+iW6t@7(w9aWVr{LIM}dJ1={O|1r9m^xS^>eO0IM zFMA(zovQt}+3U;Ww%5$-k3DW%uQ2U${oCf_yq^tPZhS5J@MuNia$Bo?>q`3Bxp|hU z$vt$l4?FTFWS!EV&2FbYm^@E4?lr|4Ut%(Yxf+R+%oN zEuZyoEU?qRb2DB0LPf5)V|dPt1wB*CV=X^EocpPyI`8t)%--mgP0v4jzRBzR;UA_| z@4e9D(|q}LH;bjjjxZh(yvY6kPgvGg6>IP7esix+EZH{M!i7yzTyE+HoywVpRV@8c z6|ee)wfAp~VAv*C>AIkCX12l{>4IXNHQzQL?EY}Rr}4+rJwnkrymKm9`maAQKPdWe z{^DKs*#)Aa|14MiUe);4B3R~oY)d^~Z7@6DUVt^ePA`tytZQ#YAwhMFD8 z_1`bA-Sd3V@1_^1PPIy!GMrn?KJFmvz+ZvGVgII7P@FiN4msZomD+kt@f- z_Zx5I_+Rt8WcIs`U2i)ciobg;(e-e?zO`$Q>4|5u$xodV7e0G&@WS(Nj~O2S_yPw}0XI6u%^!bUq?~*6^`W@f?RN$KMIQ0B52@-kVGJ$5cB5SIVz9*JLmu01f4pp@ zwX3l?Q%vp9<(C}aHl4Klo!Vt%$|HQrRrQgxQ){v75owJ-#oy(3Pp>)8!W*{r&hc+z z59e3z&cCtKUo0Z~$-b8Qe@Tgzn;OpR?K-O*mz-F+A>e^u18dwhsfUw3oG)MTznS%# z)J?gE^Y2H@u#Z?E%4_y!50m!Kv_vVJYmw_V9mrMWeOdf_HtRL1iyJ?jH|Kua%qqV_ za0&PSGy3^rWh>GpndDbKJR`aTw89275nl1^kbQUSuY*mqA0U{N#jfH;*OtNI30Uv(QiHf2ChF z&)N^C<{v&I_{R0e^Y-somwdQ-r;3klnw;fl+b=)$YAdI_Q`V?avHt(la!$o&&eEF; znS=g4nE6YFcc=G!`K9)5T@UBmyK^lwo+f8L<>#`6o7(N_r{0TOdjE(!&+3zts>@#{ ztMD>e=^ZRS(tPFi`b(>)*0s!8dOqib^G*3}c}XufCaC-=Ryn?6Qv6c!w3odRI`@-) zT}YnV=Xvt`R?&y^>vtZ`&wBms=Z>#GH}**`P5Q!{mMgO&vZY>cIxAaXmdZJ$Wbm-o z{&PR9WV+T?f>uu&AOBO4fc+auRrgdp!lb_(c1gxEyd3q%iCM8>=WAQb5S$OKXRTSmqf>YO7U0{28JY{}ud!69FN@?~d z%#W_t*=S|mcw5`fEhedT*gjm~Qrg7}CF{iEckxY}ufC%nlzq=+^M5_u(=MjI=+=i~ zO;b=Q`t$M8!v>nSd&4f;8LL+1x_^q+-@58>kLO$#J=>hMGj@l+-f``$i^Nafhx0`{ z4o^6|`Ds^uV%WsTYuGOxDn0z+d|}~*4M(2_Riu7dU3_T0@V`h~(|*-ePt*4mnYJ)1 zPP@zdKPSxNNc_b#sqXi)HOl^dcJGY2^lj?0WA~Hx{_gqXwqx>@w|n}INgB09yUa@e zaeh_N#z}d-)`@jLZ?eC+DX&`0+wq*`-r{QMtr}q^Nv}RXe{rlNaK32^cjAxq8ST&e zk0*b;CU#|RMft_2vV|uX2bSx;)_C}h;`XwPKR&GQNR%3pp?XX;$qy6tRd>ip~STvyhF)bTxc`H>!a zQsriI>*G$A4-=LCe2!JM`80p)jzp6`#=^4drR?>_svvSF0{ywp+vV|4)vD z)z{6_JW9F#%Ut`kHj#JP8T;d0heW^qoKfGQf7oH&9fk)-t~_7g=DR+~w6%gq`_JZ_ z+nWm=3k|!U*EF|($UoUO zzc{F+ew%meTlROh`?61lb*s;P(&=|zE7ZGg{ZZ>yKU*Kh)hYL6RA2vl&~kBKq4(6Q zM(!uCq{n~!ku@VLalh-yP3QZyIyIVu*7~2G-~1!j_9*|Z2i5D|WF82T0?kj_@*leO z+m3HbTkEJynP^9fFew<@o&{&?9=JLvbv3nG_p#Fjj^J#M(ycFG)!FOjMb zw!XP@Cg0`sQSN&Q%Qg$2zQ17dt-22~;u3j&KDFz9CQte@@t%;?>ztJ==Qr&voW@km zy}9--e-)eUm&3x`Wrr5|Tr-JV5cHJ$n8~|_d7p|G7N=kOIfXTyJI@`JMJst@ODeqCp_TG}%C$GamB?Z2mefBm9L#N9^pow0SEM49M6%ept+_6E0~ z-t173P&;n8+*ER2{7u=oeRKWT{pLuU6gR4-)|ubn_|xXbK7FpuoySveu|HE~yzNvn z`;D8Xad?GbXkCx9wq@0aopu(b@%5?K*cZyWP3YL3@Hlh+`o|lTFITwSTIZJ5)3(jE zJa|4o|9pO%Q^)dN9{Rqg^u(fMd%4Ktrk^7GZzbs#Y2KXT{&Jq$tJ}3Rb435`tZr*R z82%(VqeQ9tQMLnH(_(kIPJYSR?vrGfnKFcj{&>E4N=PLme^u{U>u{RK0fV|?yRS*BpovGTl4e*dz_pM|fEZZIfS=IB1ReKym>`JOVrHn3jm zob6ATt1pSlO>7_rMf4}~Z$EL%6 z{ud9tJ7RxrPqfG*j&HN_|5vs;{$F!&a-C^az`tWpB@e`#Ub*eQ>X7~ZsV5>IEN)Z2 zF~QD$bHmM!`KCWKi$i~;m;brvol+q_zjg`7{~GfbmZ36kXQXOa7d|^JU16S4JtZS| zM=#IU7rTRBMN2AmWW zh&eMI2l6XGZ6x$2z$h!J%qSw3qDf61rbvtYI zj%lX<+vIaKbjzK8o6WV}Y*xFFQ@l(0)GF2D(;sJS4v#yQQe9E|diwh1A*rWAZuw20 zBJCG;Ph*P3#*12}v1)IQTuB#P^Cx#Ba|8d<&-%FsF5Z(>=c{k7K4etlc4-0Anz$2o zN8>UbJ9n;aD7U%U-@MXaj`eAP$vpMPyA+EtFUb$H|hBoW> zuGt-XO)7XcsM&T#-SzQ~zY{K9unSiY+t;VP^Y$&Db(804d{IqA;<#V;y z6!nhkcPXZ^_0{s4wNRe;MYl>yuB_emq+BTXWg+lm#BW<;*`e z?hXC%eEEzW@w@6hjx*oW`ty1D3cIC`qdT*;?OncV&dpfx;r#qXzozuHUjm(P99Zj> zUc6TLpJmuTXRbYu!lys4a<-L@2TfERm)LOUbHtv7th~Az8AZ>RtW3)<{nqxZV#Ce8 z#tr8W+26N%Sn&Nk+pn@Ex3-;Uv)dJQ`~1g-_}wwB^?kN4Q@6g}XJ5Uc*f9|yj{H_TfSa;-p@Xwc} zM_0A$2Vb-NbpGy|6$`Dxi&J(U4c)xvb=$-F#b!x07t*RXP4#`YA;7e%!0i9er%o4c zZDtcZH1Sz}omHynzngq^foe|n_vWvzwY%GO>*x76t
x0x&XRdq5ZpUrdBsZV}< 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 L!vtd%1_lNIG?Kg; literal 0 HcmV?d00001 From faa3fd48aefb6b9386852b23eb433bafb413755b Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Mon, 15 Aug 2016 22:57:26 +0200 Subject: [PATCH 08/19] Minor changes to felix keymap --- keyboards/s60-x/keymaps/felix/Makefile | 8 ++--- keyboards/s60-x/keymaps/felix/config.h | 14 ++++++++ keyboards/s60-x/keymaps/felix/keymap.c | 49 +++++++++++++++++++------- 3 files changed, 54 insertions(+), 17 deletions(-) create mode 100644 keyboards/s60-x/keymaps/felix/config.h diff --git a/keyboards/s60-x/keymaps/felix/Makefile b/keyboards/s60-x/keymaps/felix/Makefile index 251e4631d3..6a078bcc3f 100644 --- a/keyboards/s60-x/keymaps/felix/Makefile +++ b/keyboards/s60-x/keymaps/felix/Makefile @@ -2,12 +2,12 @@ # 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 = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) +CONSOLE_ENABLE = yes # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 diff --git a/keyboards/s60-x/keymaps/felix/config.h b/keyboards/s60-x/keymaps/felix/config.h new file mode 100644 index 0000000000..6c01d579f8 --- /dev/null +++ b/keyboards/s60-x/keymaps/felix/config.h @@ -0,0 +1,14 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// keymap needs oneshot functionality +#undef NO_ACTION_ONESHOT + +#undef IS_COMMAND +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +#endif \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/felix/keymap.c b/keyboards/s60-x/keymaps/felix/keymap.c index 9c620527b0..6e40d4839f 100644 --- a/keyboards/s60-x/keymaps/felix/keymap.c +++ b/keyboards/s60-x/keymaps/felix/keymap.c @@ -20,6 +20,26 @@ along with this program. If not, see . #define _______ KC_TRNS #define XXXXXXX KC_NO +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 1 + +//Special keycodes for better readability +//SpaceFN +//OneShot LeftShift +//GamingMode Lock (disables SpaceFn and OneShot LShift) +//Function +#define KC_SPACEFN KC_FN0 +#define KC_OSLS KC_FN3 +#define KC_GMLK KC_FN1 +#define KC_FUNC KC_FN2 + +enum function_codes { + F_SPACEFN = 0, + F_OSLS = 3, + F_GMLK = 1, + F_FUNC = 2 +}; + enum layer_names { DEFAULT, GAMING, @@ -52,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return | * |-----------------------------------------------------------| - * |Shift | Y| X| C| V| B| N| M| ,| .| /| Up |RSft| + * |Shift OS| Y| X| C| V| B| N| M| ,| .| /| Up |RSft| * |-----------------------------------------------------------| * |Fn2 |Gui |Alt | SpaceFn |Alt |Left|Down|Right| * `-----------------------------------------------------------' @@ -61,8 +81,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_DEL, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ 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_NUHS, KC_ENT, \ - KC_LSFT, KC_NUBS, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_RSFT, \ - KC_FN2, KC_LGUI, KC_LALT, KC_FN0, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + KC_OSLS, KC_NUBS, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_RSFT, \ + KC_FUNC, KC_LGUI, KC_LALT, KC_SPACEFN, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), /* Layout 1: Gaming Layer, SpaceFn disabled * ,-----------------------------------------------------------. @@ -72,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| * | | | | | | | | | | | | | | * |-----------------------------------------------------------| - * | | | | | | | | | | | | |Fn1 | + * |SFTnonOS| | | | | | | | | | | |Fn1 | * |-----------------------------------------------------------| * | | NOP| | Space | | | | | * `-----------------------------------------------------------' @@ -81,8 +102,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_FN1, \ - _______, XXXXXXX, _______, KC_SPC, _______, _______, _______, _______), + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GMLK, \ + _______, XXXXXXX, _______, KC_SPC, _______, _______, _______, _______ + ), /* Layout 2: Function Layer * ,-----------------------------------------------------------. @@ -92,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| * | | Δ | ί | |Vl-|Mut|Vl+| | | | | |PEnt | * |-----------------------------------------------------------| - * | | | | | |Cal| | | | |Pau |PUp |Fn1 | + * | CpsLck | | | | |Cal| | | | |Pau |PUp |Fn1 | * |-----------------------------------------------------------| * | | | | | |Home|PDn |End | * `-----------------------------------------------------------' @@ -101,17 +123,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_INS, RESET, \ _______, _______, KC_C_WM, KC_C_EM, KC_MPRV, KC_MPLY, KC_MNXT, KC_C_UM, KC_C_IM, KC_C_OM, _______, KC_PSCR, KC_SLCK, KC_PAUS, \ _______, KC_C_AM, KC_C_SM, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_PENT, \ - _______, KC_C_YM, _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_FN1, \ - _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END), + KC_CAPS, KC_C_YM, _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_GMLK, \ + _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), }; /* * Fn action definition */ const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), /* SpaceFn layout 1 */ - [1] = ACTION_LAYER_TOGGLE(1), /* Disable SpaceFn */ - [2] = ACTION_LAYER_MOMENTARY(2) /* SpaceFn layout 1 */ + [F_SPACEFN] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), // SpaceFn layout 1 + [F_GMLK] = ACTION_LAYER_TOGGLE(1), // Disable SpaceFn and Oneshot Shift + [F_FUNC] = ACTION_LAYER_MOMENTARY(2), // SpaceFn layout 1 + [F_OSLS] = ACTION_MODS_ONESHOT(MOD_LSFT) // Oneshot Leftshift }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) @@ -119,7 +143,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; - void matrix_init_user(void) { } From 07924511f33599267209b1f0d1ebddf400f7987d Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 18 Aug 2016 10:01:46 +0200 Subject: [PATCH 09/19] Small changes, renamed keymap Added MicMute Revived all dead keys Removed OS Shift --- .../keymaps/{felix => ansi_qwertz}/Makefile | 0 .../keymaps/{felix => ansi_qwertz}/config.h | 0 keyboards/s60-x/keymaps/ansi_qwertz/keymap.c | 236 ++++++++++++++++++ keyboards/s60-x/keymaps/felix/keymap.c | 213 ---------------- 4 files changed, 236 insertions(+), 213 deletions(-) rename keyboards/s60-x/keymaps/{felix => ansi_qwertz}/Makefile (100%) rename keyboards/s60-x/keymaps/{felix => ansi_qwertz}/config.h (100%) create mode 100644 keyboards/s60-x/keymaps/ansi_qwertz/keymap.c delete mode 100644 keyboards/s60-x/keymaps/felix/keymap.c diff --git a/keyboards/s60-x/keymaps/felix/Makefile b/keyboards/s60-x/keymaps/ansi_qwertz/Makefile similarity index 100% rename from keyboards/s60-x/keymaps/felix/Makefile rename to keyboards/s60-x/keymaps/ansi_qwertz/Makefile diff --git a/keyboards/s60-x/keymaps/felix/config.h b/keyboards/s60-x/keymaps/ansi_qwertz/config.h similarity index 100% rename from keyboards/s60-x/keymaps/felix/config.h rename to keyboards/s60-x/keymaps/ansi_qwertz/config.h diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c b/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c new file mode 100644 index 0000000000..9f59f12fa8 --- /dev/null +++ b/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c @@ -0,0 +1,236 @@ +/* +Copyright 2016 Julien Pecqueur +Copyright 2016 Felix Uhl + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "s60-x.h" + +//make keymap a little easier to read +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 1 + +//uncomment to activate dead keys +//#define DONT_REVIVE_DEADKEYS 1 + +//Function keycodes for better readability +//SpaceFN +//OneShot LeftShift +//GamingMode Lock (disables SpaceFn and OneShot LShift) +//Function +//Mute microphone +#define KC_SPACEFN KC_FN0 +#define KC_OSLS KC_FN3 +#define KC_GMLK KC_FN1 +#define KC_FUNC KC_FN2 +#define MICMUTE RCTL(KC_LCTL) + +enum function_codes { + F_SPACEFN = 0, + F_OSLS = 3, + F_GMLK = 1, + F_FUNC = 2 +}; + +enum layer_names { + DEFAULT, + GAMING, + FUNCTION +}; + +enum languages { + GERMAN +}; + +#define LANGUAGE GERMAN + +enum custom_keycodes { + KC_CM_A = SAFE_RANGE, +// KC_CM_B, + KC_CM_C, +// KC_CM_D, + KC_CM_E, +// KC_CM_F, + KC_CM_G, +// KC_CM_H, + KC_CM_I, +// KC_CM_J, + KC_CM_K, + KC_CM_L, + KC_CM_M, + KC_CM_N, + KC_CM_O, + KC_CM_P, +// KC_CM_Q, + KC_CM_R, + KC_CM_S, +// KC_CM_T, + KC_CM_U, +// KC_CM_V, + KC_CM_W, +// KC_CM_X, +// KC_CM_Y, + KC_CM_Z +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layout 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|Del| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Z| U| I| O| P| [| ]|BckSp| + * |-----------------------------------------------------------| + * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Y| X| C| V| B| N| M| ,| .| /| Up |RSft| + * |-----------------------------------------------------------| + * |Fn2 |Gui |Alt | SpaceFn |Alt |Left|Down|Right| + * `-----------------------------------------------------------' + */ + [DEFAULT] = KEYMAP( + 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_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + 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_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_RSFT, \ + KC_FUNC, KC_LGUI, KC_LALT, KC_SPACEFN, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Layout 1: Gaming Layer, SpaceFn disabled + * ,-----------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | |Fn1 | + * |-----------------------------------------------------------| + * | |RSft| | Space | | | | | + * `-----------------------------------------------------------' + */ + [GAMING] = KEYMAP( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GMLK, \ + _______, KC_RSFT, _______, KC_SPC, _______, _______, _______, _______ + ), + + /* Layout 2: Function Layer + * MicMute requires special software to be installed. Check readme.md for more information + * ,-----------------------------------------------------------. + * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|RES| + * |-----------------------------------------------------------| + * | | | | |Prv|Ply|Nxt| ά | | Φ | |Prt|Slk|Pau | + * |-----------------------------------------------------------| + * | | Δ | ί | |Vl-|Mut|Vl+| | | | | |PEnt | + * |-----------------------------------------------------------| + * | | | | |MicMut|Cal| | | | |Pau |PUp |Fn1 | + * |-----------------------------------------------------------| + * | | | | | |Home|PDn |End | + * `-----------------------------------------------------------' + */ + [FUNCTION] = KEYMAP( + 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_INS, RESET, \ + _______, _______, KC_CM_W, KC_CM_E, KC_MPRV, KC_MPLY, KC_MNXT, KC_CM_U, KC_CM_I, KC_CM_O, KC_CM_P KC_PSCR, KC_SLCK, KC_PAUS, \ + _______, KC_CM_A, KC_CM_S, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_CM_K, KC_CM_L, _______, _______, _______, KC_PENT, \ + _______, _______, KC_CM_Y, _______, KC_CM_C, MICMUTE, KC_CALC, KC_CM_N, KC_CM_M, _______, _______, _______, _______, KC_PGUP, KC_GMLK, \ + _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), +}; + +/* +* Fn action definition +*/ +const uint16_t PROGMEM fn_actions[] = { + [F_SPACEFN] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), // SpaceFn layout 1 + [F_GMLK] = ACTION_LAYER_TOGGLE(1), // Disable SpaceFn and Oneshot Shift + [F_FUNC] = ACTION_LAYER_MOMENTARY(2), // SpaceFn layout 1 + [F_OSLS] = ACTION_MODS_ONESHOT(MOD_LSFT) // Oneshot Leftshift +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + return MACRO_NONE; +}; + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_german(uint16_t keycode, keyrecord_t *record) { + uint16_t send_code = 0; + if (record->event.pressed) { + switch (keycode) { + case KC_C_AM: + send_code = KC_Q; + break; + case KC_C_OM: + send_code = KC_P; + break; + case KC_C_UM: + send_code = KC_Y; + break; + case KC_C_SM: + send_code = KC_S; + break; + } + + if (send_code == 0) { + return true; + } + else { + register_code(KC_RALT); + register_code(send_code); + unregister_code(send_code); + unregister_code(KC_RALT); + return false; + } + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + //revive dead keys +#ifndef DONT_REVIVE_DEADKEYS + bool shift_active = keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_LSFT)); + bool altgr_active = keyboard_report->mods & (MOD_BIT(KC_RALT)); + if ((keycode == KC_QUOT && !altgr_active) || + keycode == KC_GRV || + (keycode == KC_6 && shift_active)) + { + if (record->event.pressed) { + register_code(keycode); + unregister_code(keycode); + register_code(KC_SPACE); + unregister_code(KC_SPACE); + } + return false; + } +#endif +#if LANGUAGE == GERMAN + return process_german(keycode, record); +#else + return true; +#endif +} + +void led_set_user(uint8_t usb_led) { + +} \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/felix/keymap.c b/keyboards/s60-x/keymaps/felix/keymap.c deleted file mode 100644 index 6e40d4839f..0000000000 --- a/keyboards/s60-x/keymaps/felix/keymap.c +++ /dev/null @@ -1,213 +0,0 @@ -/* -Copyright 2016 Julien Pecqueur -Copyright 2016 Felix Uhl - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "s60-x.h" - -//make keymap a little easier to read -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -#define ONESHOT_TAP_TOGGLE 2 -#define ONESHOT_TIMEOUT 1 - -//Special keycodes for better readability -//SpaceFN -//OneShot LeftShift -//GamingMode Lock (disables SpaceFn and OneShot LShift) -//Function -#define KC_SPACEFN KC_FN0 -#define KC_OSLS KC_FN3 -#define KC_GMLK KC_FN1 -#define KC_FUNC KC_FN2 - -enum function_codes { - F_SPACEFN = 0, - F_OSLS = 3, - F_GMLK = 1, - F_FUNC = 2 -}; - -enum layer_names { - DEFAULT, - GAMING, - FUNCTION -}; - -enum languages { - GERMAN -}; - -#define LANGUAGE GERMAN - -enum custom_keycodes { - KC_C_AM = SAFE_RANGE, - KC_C_EM, - KC_C_IM, - KC_C_OM, - KC_C_UM, - KC_C_SM, - KC_C_YM, - KC_C_WM -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Layout 0: Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|Del| - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Z| U| I| O| P| [| ]|BckSp| - * |-----------------------------------------------------------| - * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return | - * |-----------------------------------------------------------| - * |Shift OS| Y| X| C| V| B| N| M| ,| .| /| Up |RSft| - * |-----------------------------------------------------------| - * |Fn2 |Gui |Alt | SpaceFn |Alt |Left|Down|Right| - * `-----------------------------------------------------------' - */ - [DEFAULT] = KEYMAP( - 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_DEL, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ - 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_NUHS, KC_ENT, \ - KC_OSLS, KC_NUBS, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_RSFT, \ - KC_FUNC, KC_LGUI, KC_LALT, KC_SPACEFN, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT - ), - - /* Layout 1: Gaming Layer, SpaceFn disabled - * ,-----------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | | | | | | | | | | | | - * |-----------------------------------------------------------| - * |SFTnonOS| | | | | | | | | | | |Fn1 | - * |-----------------------------------------------------------| - * | | NOP| | Space | | | | | - * `-----------------------------------------------------------' - */ - [GAMING] = KEYMAP( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GMLK, \ - _______, XXXXXXX, _______, KC_SPC, _______, _______, _______, _______ - ), - - /* Layout 2: Function Layer - * ,-----------------------------------------------------------. - * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|RES| - * |-----------------------------------------------------------| - * | | | | |Prv|Ply|Nxt| ά | | Φ | |Prt|Slk|Pau | - * |-----------------------------------------------------------| - * | | Δ | ί | |Vl-|Mut|Vl+| | | | | |PEnt | - * |-----------------------------------------------------------| - * | CpsLck | | | | |Cal| | | | |Pau |PUp |Fn1 | - * |-----------------------------------------------------------| - * | | | | | |Home|PDn |End | - * `-----------------------------------------------------------' - */ - [FUNCTION] = KEYMAP( - 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_INS, RESET, \ - _______, _______, KC_C_WM, KC_C_EM, KC_MPRV, KC_MPLY, KC_MNXT, KC_C_UM, KC_C_IM, KC_C_OM, _______, KC_PSCR, KC_SLCK, KC_PAUS, \ - _______, KC_C_AM, KC_C_SM, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_PENT, \ - KC_CAPS, KC_C_YM, _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_GMLK, \ - _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END - ), -}; - -/* -* Fn action definition -*/ -const uint16_t PROGMEM fn_actions[] = { - [F_SPACEFN] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), // SpaceFn layout 1 - [F_GMLK] = ACTION_LAYER_TOGGLE(1), // Disable SpaceFn and Oneshot Shift - [F_FUNC] = ACTION_LAYER_MOMENTARY(2), // SpaceFn layout 1 - [F_OSLS] = ACTION_MODS_ONESHOT(MOD_LSFT) // Oneshot Leftshift -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - return MACRO_NONE; -}; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_german(uint16_t keycode, keyrecord_t *record) { - uint16_t send_code = 0; - switch (keycode) { - case KC_C_AM: - if (record->event.pressed) { - send_code = KC_Q; - } - break; - - case KC_C_OM: - if (record->event.pressed) { - send_code = KC_P; - } - break; - - case KC_C_UM: - if (record->event.pressed) { - send_code = KC_Y; - } - break; - - case KC_C_SM: - if (record->event.pressed) { - send_code = KC_S; - } - break; - } - - if (send_code == 0) { - return true; - } - else { - register_code(KC_RALT); - register_code(send_code); - unregister_code(send_code); - unregister_code(KC_RALT); - return false; - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (keycode == KC_QUOT) { - if (record->event.pressed) { - register_code(KC_QUOT); - unregister_code(KC_QUOT); - register_code(KC_SPACE); - unregister_code(KC_SPACE); - } - return false; - } -#if LANGUAGE == GERMAN - return process_german(keycode, record); -#else - return true; -#endif -} - -void led_set_user(uint8_t usb_led) { - -} \ No newline at end of file From 2618260b34acade9e3239e6116a94bcfc726c00a Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 18 Aug 2016 10:37:32 +0200 Subject: [PATCH 10/19] Documentation overhaul. --- .../docs/KB_US-International-Alternative.png | Bin 0 -> 54748 bytes .../docs/KB_US-International-Alternative.svg | 1046 ++++++++++++++++ ...-Alternative.svg.2016_08_18_09_06_36.0.svg | 1049 +++++++++++++++++ .../ansi_qwertz/docs/KB_US-International.png | Bin 0 -> 54041 bytes .../ansi_qwertz/docs/KB_US-International.svg | 935 +++++++++++++++ .../keymaps/ansi_qwertz/docs/base_layer.PNG | Bin 0 -> 29411 bytes .../ansi_qwertz/docs/function_layer.PNG | Bin 0 -> 25567 bytes .../keymaps/ansi_qwertz/docs/gaming_layer.PNG | Bin 0 -> 17895 bytes keyboards/s60-x/keymaps/ansi_qwertz/readme.md | 108 ++ keyboards/s60-x/keymaps/felix/readme.md | 9 - 10 files changed, 3138 insertions(+), 9 deletions(-) create mode 100644 keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png create mode 100644 keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg create mode 100644 keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg create mode 100644 keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.png create mode 100644 keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg create mode 100644 keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNG create mode 100644 keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNG create mode 100644 keyboards/s60-x/keymaps/ansi_qwertz/docs/gaming_layer.PNG create mode 100644 keyboards/s60-x/keymaps/ansi_qwertz/readme.md delete mode 100644 keyboards/s60-x/keymaps/felix/readme.md diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png new file mode 100644 index 0000000000000000000000000000000000000000..168780c824cdbb7b5b9e9dbc248f2db140c6fc0e GIT binary patch literal 54748 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%0A;aO(*h@ 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%0DxzJ!Rmlpc-pL(IQCl)5u6q)r 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shift + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ˝ + Β― + Λ› + ˘ + o + . + Λ‡ + Λ™ + + + diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg new file mode 100644 index 0000000000..2304b2a4c3 --- /dev/null +++ b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg @@ -0,0 +1,1049 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shift + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ˝ + Β― + Λ› + ˘ + o + . + Λ‡ + Λ™ + + + diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.png b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.png new file mode 100644 index 0000000000000000000000000000000000000000..875eb3652f6a60d56e4d345b4de60a88bb3d772a GIT binary patch literal 54041 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 R0s{jBgQu&X%Q~loCIGPH?#loG literal 0 HcmV?d00001 diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg new file mode 100644 index 0000000000..1ca6a9c872 --- /dev/null +++ b/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg @@ -0,0 +1,935 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shift + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNG b/keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c730c2d65a8d2cf9129e2b6fe7726a094740971b GIT binary patch literal 29411 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 JS?83{1OPXGyaNCL literal 0 HcmV?d00001 diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNG b/keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNG new file mode 100644 index 0000000000000000000000000000000000000000..fae2439cab4d442c8b8d47d8ea53397e6e5c9c49 GIT binary patch literal 25567 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 T@P1DQ1_lOCS3j3^P6 Date: Thu, 18 Aug 2016 11:11:42 +0200 Subject: [PATCH 11/19] Fixed pictures and links --- keyboards/s60-x/keymaps/ansi_qwertz/readme.md | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md index 050040e23c..f46c28795b 100644 --- a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md +++ b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md @@ -17,9 +17,9 @@ It currently relies on the US-International keyboard layout, which can be instal ###Languages -The US-International Layout is currently required for the support of non-english languages. This keymap swaps Y and Z to provide the familiar QWERTZ position for characters. -All diacritic characters are input by either holding the Spacebar or the Fn key and pressing the corresponding key. For languages that aren't yet supported explicitly, -one can also use AltGr to input the characters as intended by the US-Intl layout or the dead keys, if they're kept from being [revived](#Revive-Dead-Keys). +The US-International Layout is currently required for the support of non-english languages. This keymap swaps Y and Z to provide the familiar QWERTZ position for characters when using that layout. +All diacritic characters are input by either holding `Space` or `Fn` and pressing the corresponding key. For languages that aren't yet supported explicitly, +one can also use AltGr to input the characters as intended by the US-Intl layout or the dead keys, if they're kept from being [revived](readme.md#Revive-Dead-Keys). The illustration below shows the "US International" layout available in the Language settings of Windows, Linux and Mac OS. @@ -36,17 +36,15 @@ which contains more dead keys to input pretty much every diacritic character in ####Implicitly Supported Languages -This list only applys to Windows. Linux systems support all languages, see above. - -This list might be incomplete! Please add your language if you find it's supported. +This list only applies to Windows. Linux systems support all languages, see above. This list might be incomplete! Please add your language if you find it's supported. * French ###SpaceFN -SpaceFN basically means that Space acts as a normal spacebar when tapped, but acts as a layer-key when held down. +SpaceFN basically means that `Space` acts as a normal spacebar when tapped, but acts as a layer-key when held down. This means that you can't hold space to output multiple spaces consecutively and that space only registers once released. -The advantage is that the spacebar is easier to reach than any other Fn-key could be. +The advantage is that the spacebar is easier to reach than any other `Fn`-key could be. ###"Gaming Mode" @@ -75,7 +73,7 @@ and check whether your microphone is selected under "Devices". ###Revive Dead Keys Some diacritics that are commonly used are dead keys on the international layouts, for example `` ` ``, `'`, or `"`. -The dead keys on the regular international layout (shown in red [here](#Languages)) are revived with this keymap by automatically inserting a space if one of those characters is typed. +The dead keys on the regular international layout (shown in red [here](readme.md#Languages)) are revived with this keymap by automatically inserting a space if one of those characters is typed. If you don't want this to be the case, uncomment the following line in `keymap.c` prior to compiling: ``` @@ -86,22 +84,22 @@ If you don't want this to be the case, uncomment the following line in `keymap.c ###Base Layer -The base layer is shown here for ANSI keys and an HHKB-style right shift. +The base layer is shown here for ANSI keysm, HHKB-style right shift and split backspace. If you use a 2U backspace key there, `Del` will not be available. Again, the Y and Z keys are swapped, so you get the QWERTZ-positions of Y and Z when using the US-International layout. -![base_layer](docs/base_layer.png) +![base_layer](docs/base_layer.PNG) ###Gaming layer -To turn this layer on, please use the combination Fn+RShift, not Space+Rshift. If you do the latter, the Function layer +To turn this layer on, please use the combination `Fn+RShift`, not `Space+RShift`. If you do the latter, the Function layer will become stuck. You can press `Fn` once to unstick it if this happens to you. A solution is being worked on. -![gaming_layer](docs/gaming_layer.png) +![gaming_layer](docs/gaming_layer.PNG) ###Function Layer -This is the function layer for German diacritics. It can be accessed via the Fn-key or by holding space on the base layer. +This is the function layer for German diacritics. It can be accessed via the `Fn` or by holding `Space` on the base layer. -![function_layer](docs/function_layer.png) +![function_layer](docs/function_layer.PNG) From c5f13e5836563dc546edea1f14ea74dc3b94fa3f Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 18 Aug 2016 11:16:10 +0200 Subject: [PATCH 12/19] Fixed links again --- keyboards/s60-x/keymaps/ansi_qwertz/readme.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md index f46c28795b..0938e49c81 100644 --- a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md +++ b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md @@ -1,5 +1,7 @@ # ANSI_QWERTZ +[Click here to go to the layers directly.](readme.md#layers) + This keymap was specifically designed to support keycaps with ANSI layout and legends, while retaining the possibility of inputting characters with diacritics that are normally not used in the english language. @@ -19,7 +21,7 @@ It currently relies on the US-International keyboard layout, which can be instal The US-International Layout is currently required for the support of non-english languages. This keymap swaps Y and Z to provide the familiar QWERTZ position for characters when using that layout. All diacritic characters are input by either holding `Space` or `Fn` and pressing the corresponding key. For languages that aren't yet supported explicitly, -one can also use AltGr to input the characters as intended by the US-Intl layout or the dead keys, if they're kept from being [revived](readme.md#Revive-Dead-Keys). +one can also use AltGr to input the characters as intended by the US-Intl layout or the dead keys, if they're kept from being [revived](readme.md#revive-dead-keys). The illustration below shows the "US International" layout available in the Language settings of Windows, Linux and Mac OS. @@ -55,7 +57,7 @@ It also turns the GUI-key (aka Win-key aka Super-key) into Right Shift, so it ca ###Mute Microphone The function layer has a "Mute Microphone"-key. As this is not an existing media key and you can't normally set a shortcut to this function, -you need to set this up in software before using it, see below. This key is bound to `Right Control` + `Left Control`, a keycombination that +you need to set this up in software before using it, see below. This key is bound to `RCtrl+LCtrl`, a keycombination that no other program in existence uses for anything, at least to my knowledge. It also can't be pressed with this keymap in any other way. ####Linux @@ -73,7 +75,7 @@ and check whether your microphone is selected under "Devices". ###Revive Dead Keys Some diacritics that are commonly used are dead keys on the international layouts, for example `` ` ``, `'`, or `"`. -The dead keys on the regular international layout (shown in red [here](readme.md#Languages)) are revived with this keymap by automatically inserting a space if one of those characters is typed. +The dead keys on the regular international layout (shown in red [here](readme.md#languages)) are revived with this keymap by automatically inserting a space if one of those characters is typed. If you don't want this to be the case, uncomment the following line in `keymap.c` prior to compiling: ``` From 738151d12a6fe947096b974b34e70a8ab62f953c Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 18 Aug 2016 11:38:04 +0200 Subject: [PATCH 13/19] Minor documentation changes --- keyboards/s60-x/keymaps/ansi_qwertz/readme.md | 42 +++++++------------ keyboards/s60-x/readme.md | 7 ++++ 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md index 0938e49c81..50651896fd 100644 --- a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md +++ b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md @@ -1,27 +1,26 @@ # ANSI_QWERTZ -[Click here to go to the layers directly.](readme.md#layers) +[Click here to go to the layers directly.](readme.md#1.0-layers) This keymap was specifically designed to support keycaps with ANSI layout and legends, while retaining the possibility of inputting characters with diacritics that are normally not used in the english language. It currently relies on the US-International keyboard layout, which can be installed in any current operating system without the use of third party hardware. -##Features - +##0. Features * Input of letters with diacritics on familiar QWERTZ layout * Support for ANSI-legend keycaps * Option to "revive" all dead keys +* Dedicated arrow cluster * SpaceFN for easy access to Function keys and diacritic input * Locking "Gaming Mode" that disables SpaceFN and allows to bind GUI key in Games * Reset key binding, no need to press hardware reset button to program * Microphone Mute key (requires 3rd-party software, see below) -###Languages - +###0.0 Languages The US-International Layout is currently required for the support of non-english languages. This keymap swaps Y and Z to provide the familiar QWERTZ position for characters when using that layout. All diacritic characters are input by either holding `Space` or `Fn` and pressing the corresponding key. For languages that aren't yet supported explicitly, -one can also use AltGr to input the characters as intended by the US-Intl layout or the dead keys, if they're kept from being [revived](readme.md#revive-dead-keys). +one can also use AltGr to input the characters as intended by the US-Intl layout or the dead keys, if they're kept from being [revived](readme.md#0.4-revive-dead-keys). The illustration below shows the "US International" layout available in the Language settings of Windows, Linux and Mac OS. @@ -32,73 +31,60 @@ which contains more dead keys to input pretty much every diacritic character in ![KB_US-International-Alternative](docs/KB_US-International-Alternative.png) -####Explicitly Supported Languages - +####0.0.0 Explicitly Supported Languages * German -####Implicitly Supported Languages - +####0.0.1 Implicitly Supported Languages This list only applies to Windows. Linux systems support all languages, see above. This list might be incomplete! Please add your language if you find it's supported. * French -###SpaceFN - +###0.1 SpaceFN SpaceFN basically means that `Space` acts as a normal spacebar when tapped, but acts as a layer-key when held down. This means that you can't hold space to output multiple spaces consecutively and that space only registers once released. The advantage is that the spacebar is easier to reach than any other `Fn`-key could be. -###"Gaming Mode" - +###0.2 "Gaming Mode" To alleviate the problems SpaceFN would cause when gaming, the Gaming Mode is pretty much a layer that can be turned on by pressing Fn+RShift. This will turn the double-role Spacebar into a normal one, so the Fn-layer (and thus function and media keys) can only be accessed with the Fn-key. It also turns the GUI-key (aka Win-key aka Super-key) into Right Shift, so it can be bound in Games. This is especially useful when playing with ESDF instead of WASD. -###Mute Microphone - +###0.3 Mute Microphone The function layer has a "Mute Microphone"-key. As this is not an existing media key and you can't normally set a shortcut to this function, you need to set this up in software before using it, see below. This key is bound to `RCtrl+LCtrl`, a keycombination that no other program in existence uses for anything, at least to my knowledge. It also can't be pressed with this keymap in any other way. -####Linux - +####0.3.0 Linux Follow [these instructions](http://askubuntu.com/a/13364). -#####Windows (Requires 3rd Party Software) - +#####0.3.1 Windows (Requires 3rd Party Software) *DISCLAIMER: I take no responsibility for any potential harm caused by third party applications!* You'll need a utility called "MicMute". It is available on [Sourceforge](https://sourceforge.net/projects/micmute/). After installing and running the tool, you only need to use the "Setup Shortcut" option to bind the key to muting the microphone and check whether your microphone is selected under "Devices". -###Revive Dead Keys - +###0.4 Revive Dead Keys Some diacritics that are commonly used are dead keys on the international layouts, for example `` ` ``, `'`, or `"`. -The dead keys on the regular international layout (shown in red [here](readme.md#languages)) are revived with this keymap by automatically inserting a space if one of those characters is typed. +The dead keys on the regular international layout (shown in red [here](readme.md#0.1-languages)) are revived with this keymap by automatically inserting a space if one of those characters is typed. If you don't want this to be the case, uncomment the following line in `keymap.c` prior to compiling: - ``` //#define DONT_REVIVE_DEADKEYS 1 ``` ##Layers - ###Base Layer - The base layer is shown here for ANSI keysm, HHKB-style right shift and split backspace. If you use a 2U backspace key there, `Del` will not be available. Again, the Y and Z keys are swapped, so you get the QWERTZ-positions of Y and Z when using the US-International layout. ![base_layer](docs/base_layer.PNG) ###Gaming layer - To turn this layer on, please use the combination `Fn+RShift`, not `Space+RShift`. If you do the latter, the Function layer will become stuck. You can press `Fn` once to unstick it if this happens to you. A solution is being worked on. ![gaming_layer](docs/gaming_layer.PNG) ###Function Layer - This is the function layer for German diacritics. It can be accessed via the `Fn` or by holding `Space` on the base layer. ![function_layer](docs/function_layer.PNG) diff --git a/keyboards/s60-x/readme.md b/keyboards/s60-x/readme.md index 4bba4b68fa..0c4dc10f80 100644 --- a/keyboards/s60-x/readme.md +++ b/keyboards/s60-x/readme.md @@ -251,3 +251,10 @@ The custom keymap is where I tested all the switches, not being concerned with a β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€ β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Alt β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ + +### 9. [ANSI_QWERTZ](keymap/ansi_qwertz/keymap.c) + +This keymap was designed for inputting characters with diacritics with ANSI keycaps. +It provides toggleable SpaceFn functionality, a dedicated arrow cluster and a microphone mute key on the function layer as well as a bootloader reset key. + +For more info, [check here](keymap/ansi_qwertz). \ No newline at end of file From d34c0a2fc1f4da162a06afa76d98e57d864da22c Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 18 Aug 2016 11:40:05 +0200 Subject: [PATCH 14/19] Fixed dead link --- keyboards/s60-x/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/s60-x/readme.md b/keyboards/s60-x/readme.md index 0c4dc10f80..4bf0930e70 100644 --- a/keyboards/s60-x/readme.md +++ b/keyboards/s60-x/readme.md @@ -257,4 +257,4 @@ The custom keymap is where I tested all the switches, not being concerned with a This keymap was designed for inputting characters with diacritics with ANSI keycaps. It provides toggleable SpaceFn functionality, a dedicated arrow cluster and a microphone mute key on the function layer as well as a bootloader reset key. -For more info, [check here](keymap/ansi_qwertz). \ No newline at end of file +For more info, [check here](keymap/ansi_qwertz/readme.md). From aa71ebfbba49727bed275ba07d09f74917a2a6ca Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 18 Aug 2016 11:41:52 +0200 Subject: [PATCH 15/19] Fixed links again Note to self: check before commiting. --- keyboards/s60-x/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/s60-x/readme.md b/keyboards/s60-x/readme.md index 4bf0930e70..099d586991 100644 --- a/keyboards/s60-x/readme.md +++ b/keyboards/s60-x/readme.md @@ -252,9 +252,9 @@ The custom keymap is where I tested all the switches, not being concerned with a β”‚Ctrl β”‚ Gui β”‚ Alt β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚Spaceβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ Alt β”‚ Gui β”‚ App β”‚Ctrl β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”˜ -### 9. [ANSI_QWERTZ](keymap/ansi_qwertz/keymap.c) +### 9. [ANSI_QWERTZ](keymaps/ansi_qwertz/keymap.c) This keymap was designed for inputting characters with diacritics with ANSI keycaps. It provides toggleable SpaceFn functionality, a dedicated arrow cluster and a microphone mute key on the function layer as well as a bootloader reset key. -For more info, [check here](keymap/ansi_qwertz/readme.md). +For more info, [check here](keymaps/ansi_qwertz/readme.md). From 406ae1a2eb8ee6e90c2585c522d4fbf26d94e363 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 18 Aug 2016 11:43:32 +0200 Subject: [PATCH 16/19] More link fixing --- keyboards/s60-x/keymaps/ansi_qwertz/readme.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md index 50651896fd..47e4049c38 100644 --- a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md +++ b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md @@ -1,13 +1,13 @@ # ANSI_QWERTZ -[Click here to go to the layers directly.](readme.md#1.0-layers) +[Click here to go to the layers directly.](readme.md#1-layers) This keymap was specifically designed to support keycaps with ANSI layout and legends, while retaining the possibility of inputting characters with diacritics that are normally not used in the english language. It currently relies on the US-International keyboard layout, which can be installed in any current operating system without the use of third party hardware. -##0. Features +##0 Features * Input of letters with diacritics on familiar QWERTZ layout * Support for ANSI-legend keycaps * Option to "revive" all dead keys @@ -72,19 +72,19 @@ If you don't want this to be the case, uncomment the following line in `keymap.c //#define DONT_REVIVE_DEADKEYS 1 ``` -##Layers -###Base Layer +##1 Layers +###1.0 Base Layer The base layer is shown here for ANSI keysm, HHKB-style right shift and split backspace. If you use a 2U backspace key there, `Del` will not be available. Again, the Y and Z keys are swapped, so you get the QWERTZ-positions of Y and Z when using the US-International layout. ![base_layer](docs/base_layer.PNG) -###Gaming layer +###1.1 Gaming layer To turn this layer on, please use the combination `Fn+RShift`, not `Space+RShift`. If you do the latter, the Function layer will become stuck. You can press `Fn` once to unstick it if this happens to you. A solution is being worked on. ![gaming_layer](docs/gaming_layer.PNG) -###Function Layer +###1.2 Function Layer This is the function layer for German diacritics. It can be accessed via the `Fn` or by holding `Space` on the base layer. ![function_layer](docs/function_layer.PNG) From a72dc6da70923aa6f5127e719529e9631bce20f0 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 18 Aug 2016 11:45:56 +0200 Subject: [PATCH 17/19] Final link fix --- keyboards/s60-x/keymaps/ansi_qwertz/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md index 47e4049c38..2ed1af1e06 100644 --- a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md +++ b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md @@ -20,7 +20,7 @@ It currently relies on the US-International keyboard layout, which can be instal ###0.0 Languages The US-International Layout is currently required for the support of non-english languages. This keymap swaps Y and Z to provide the familiar QWERTZ position for characters when using that layout. All diacritic characters are input by either holding `Space` or `Fn` and pressing the corresponding key. For languages that aren't yet supported explicitly, -one can also use AltGr to input the characters as intended by the US-Intl layout or the dead keys, if they're kept from being [revived](readme.md#0.4-revive-dead-keys). +one can also use AltGr to input the characters as intended by the US-Intl layout or the dead keys, if they're kept from being [revived](readme.md#04-revive-dead-keys). The illustration below shows the "US International" layout available in the Language settings of Windows, Linux and Mac OS. @@ -66,7 +66,7 @@ and check whether your microphone is selected under "Devices". ###0.4 Revive Dead Keys Some diacritics that are commonly used are dead keys on the international layouts, for example `` ` ``, `'`, or `"`. -The dead keys on the regular international layout (shown in red [here](readme.md#0.1-languages)) are revived with this keymap by automatically inserting a space if one of those characters is typed. +The dead keys on the regular international layout (shown in red [here](readme.md#00-languages)) are revived with this keymap by automatically inserting a space if one of those characters is typed. If you don't want this to be the case, uncomment the following line in `keymap.c` prior to compiling: ``` //#define DONT_REVIVE_DEADKEYS 1 From 73f13c8f26f7f3777cec9d3036628a7dd6021ee9 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 18 Aug 2016 11:56:44 +0200 Subject: [PATCH 18/19] Bugfixes --- keyboards/s60-x/keymaps/ansi_qwertz/keymap.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c b/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c index 9f59f12fa8..317a245bef 100644 --- a/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c +++ b/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c @@ -82,7 +82,7 @@ enum custom_keycodes { // KC_CM_V, KC_CM_W, // KC_CM_X, -// KC_CM_Y, + KC_CM_Y, KC_CM_Z }; @@ -145,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [FUNCTION] = KEYMAP( 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_INS, RESET, \ - _______, _______, KC_CM_W, KC_CM_E, KC_MPRV, KC_MPLY, KC_MNXT, KC_CM_U, KC_CM_I, KC_CM_O, KC_CM_P KC_PSCR, KC_SLCK, KC_PAUS, \ + _______, _______, KC_CM_W, KC_CM_E, KC_MPRV, KC_MPLY, KC_MNXT, KC_CM_U, KC_CM_I, KC_CM_O, KC_CM_P, KC_PSCR, KC_SLCK, KC_PAUS, \ _______, KC_CM_A, KC_CM_S, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, KC_CM_K, KC_CM_L, _______, _______, _______, KC_PENT, \ _______, _______, KC_CM_Y, _______, KC_CM_C, MICMUTE, KC_CALC, KC_CM_N, KC_CM_M, _______, _______, _______, _______, KC_PGUP, KC_GMLK, \ _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END @@ -179,16 +179,16 @@ bool process_german(uint16_t keycode, keyrecord_t *record) { uint16_t send_code = 0; if (record->event.pressed) { switch (keycode) { - case KC_C_AM: + case KC_CM_A: send_code = KC_Q; break; - case KC_C_OM: + case KC_CM_O: send_code = KC_P; break; - case KC_C_UM: + case KC_CM_U: send_code = KC_Y; break; - case KC_C_SM: + case KC_CM_S: send_code = KC_S; break; } @@ -204,6 +204,7 @@ bool process_german(uint16_t keycode, keyrecord_t *record) { return false; } } + return true; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { From dbfb27326bce824ea922410ab02f9f7f54a639ba Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 18 Aug 2016 12:15:10 +0200 Subject: [PATCH 19/19] Added info to docs --- keyboards/s60-x/keymaps/ansi_qwertz/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md index 2ed1af1e06..b220106121 100644 --- a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md +++ b/keyboards/s60-x/keymaps/ansi_qwertz/readme.md @@ -27,7 +27,7 @@ The illustration below shows the "US International" layout available in the Lang ![KB_US-International](docs/KB_US-International.png) Not all languages are supported by this layout. Linux also offers the "US International Alternative" layout, -which contains more dead keys to input pretty much every diacritic character in a language using latin letters. +which contains more dead keys to input pretty much every diacritic character in a language using latin letters. More information can be found [here](http://web.archive.org/web/20160818101234/http://dry.sailingissues.com/us-international-keyboard-layout.html). ![KB_US-International-Alternative](docs/KB_US-International-Alternative.png)