@ -0,0 +1,70 @@ |
|||||||
|
|
||||||
|
# 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
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= no # 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)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870)
|
||||||
|
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150)
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
AUDIO_ENABLE ?= no
|
||||||
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../Makefile
|
||||||
|
endif |
@ -0,0 +1,30 @@ |
|||||||
|
#include "amj60.h" |
||||||
|
#include "led.h" |
||||||
|
|
||||||
|
void matrix_init_kb(void) { |
||||||
|
// put your keyboard start-up code here
|
||||||
|
// runs once when the firmware starts up
|
||||||
|
matrix_init_user(); |
||||||
|
led_init_ports(); |
||||||
|
}; |
||||||
|
|
||||||
|
void matrix_scan_kb(void) { |
||||||
|
// put your looping keyboard code here
|
||||||
|
// runs every cycle (a lot)
|
||||||
|
matrix_scan_user(); |
||||||
|
}; |
||||||
|
|
||||||
|
void led_init_ports(void) { |
||||||
|
// * Set our LED pins as output
|
||||||
|
DDRB |= (1<<2); |
||||||
|
} |
||||||
|
|
||||||
|
void led_set_kb(uint8_t usb_led) { |
||||||
|
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { |
||||||
|
// Turn capslock on
|
||||||
|
PORTB &= ~(1<<2); |
||||||
|
} else { |
||||||
|
// Turn capslock off
|
||||||
|
PORTB |= (1<<2); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,153 @@ |
|||||||
|
#ifndef AMJ60_H |
||||||
|
#define AMJ60_H |
||||||
|
|
||||||
|
#include "quantum.h" |
||||||
|
|
||||||
|
// readability
|
||||||
|
#define XXX KC_NO |
||||||
|
|
||||||
|
/* AMJ60 layout to the best of my knowledge matrix layout
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49| |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c | 3d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
#define KEYMAP( \ |
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, 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, \
|
||||||
|
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
||||||
|
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, 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}, \
|
||||||
|
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
|
||||||
|
} |
||||||
|
|
||||||
|
/*
|
||||||
|
* ANSI |
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
#define KEYMAP_ANSI( \ |
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
|
||||||
|
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
|
||||||
|
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
||||||
|
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
|
||||||
|
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
|
||||||
|
{k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \
|
||||||
|
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
|
||||||
|
} |
||||||
|
|
||||||
|
/* AMJ60 HHKB matrix layout
|
||||||
|
* ,------------------------------------------------------------. |
||||||
|
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49 | |
||||||
|
* |------------------------------------------------------------| |
||||||
|
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | |
||||||
|
* |------------------------------------------------------------| |
||||||
|
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d | |
||||||
|
* |------------------------------------------------------------| |
||||||
|
* | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c | |
||||||
|
* |------------------------------------------------------------| |
||||||
|
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | |
||||||
|
* `------------------------------------------------------------' |
||||||
|
*/ |
||||||
|
|
||||||
|
#define KEYMAP_HHKB( \ |
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
|
||||||
|
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
|
||||||
|
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
||||||
|
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
|
||||||
|
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
|
||||||
|
{k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
|
||||||
|
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
|
||||||
|
} |
||||||
|
|
||||||
|
/* ISO
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
#define KEYMAP_ISO( \ |
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, 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, k3d, \
|
||||||
|
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
||||||
|
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, 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, XXX}, \
|
||||||
|
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
|
||||||
|
} |
||||||
|
/* ISO w/ split right shift key matrix layout
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
#define KEYMAP_ISO_SPLITRSHIFT( \ |
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
|
||||||
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, 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, k3d, k3c, \
|
||||||
|
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
|
||||||
|
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, 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}, \
|
||||||
|
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
|
||||||
|
} |
||||||
|
|
||||||
|
void matrix_init_user(void); |
||||||
|
void matrix_scan_user(void); |
||||||
|
|
||||||
|
#endif |
@ -0,0 +1,94 @@ |
|||||||
|
/*
|
||||||
|
Copyright 2012 Jun Wako <wakojun@gmail.com> |
||||||
|
|
||||||
|
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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef CONFIG_H |
||||||
|
#define CONFIG_H |
||||||
|
|
||||||
|
#include "config_common.h" |
||||||
|
|
||||||
|
/* USB Device descriptor parameter */ |
||||||
|
#define VENDOR_ID 0xFEED |
||||||
|
#define PRODUCT_ID 0x6066 |
||||||
|
#define DEVICE_VER 0x0001 |
||||||
|
#define MANUFACTURER Han Chen |
||||||
|
#define PRODUCT AMJ60 |
||||||
|
#define DESCRIPTION qmk port of AMJ60 PCB |
||||||
|
|
||||||
|
/* key matrix size */ |
||||||
|
#define MATRIX_ROWS 5 |
||||||
|
#define MATRIX_COLS 14 |
||||||
|
|
||||||
|
// ROWS: Top to bottom, COLS: Left to right
|
||||||
|
|
||||||
|
#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5} |
||||||
|
#define MATRIX_COL_PINS { F1, F0, E6, C7, C6, B0, D4, B1, B7, B5, B4, D7, D6, B3} |
||||||
|
#define UNUSED_PINS |
||||||
|
|
||||||
|
#define BACKLIGHT_PIN B6 |
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */ |
||||||
|
#define DIODE_DIRECTION COL2ROW |
||||||
|
|
||||||
|
/* define if matrix has ghost */ |
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */ |
||||||
|
#define DEBOUNCING_DELAY 5 |
||||||
|
|
||||||
|
/* 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 |
||||||
|
|
||||||
|
/* key combination for command */ |
||||||
|
#define IS_COMMAND() ( \ |
||||||
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
|
) |
||||||
|
|
||||||
|
/* Backlight configuration
|
||||||
|
*/ |
||||||
|
#define BACKLIGHT_LEVELS 4 |
||||||
|
|
||||||
|
/* Underlight configuration
|
||||||
|
*/ |
||||||
|
|
||||||
|
#define RGB_DI_PIN E2 |
||||||
|
#define RGBLIGHT_TIMER |
||||||
|
#define RGBLED_NUM 8 // Number of LEDs
|
||||||
|
#define RGBLIGHT_HUE_STEP 10 |
||||||
|
#define RGBLIGHT_SAT_STEP 17 |
||||||
|
#define RGBLIGHT_VAL_STEP 17 |
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 |
@ -0,0 +1,23 @@ |
|||||||
|
# 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 = no # 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.
|
||||||
|
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../../Makefile
|
||||||
|
endif |
@ -0,0 +1,42 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# adjust for cpu |
||||||
|
# -j 16 gave best result on a hyperthreaded quad core core i7 |
||||||
|
|
||||||
|
LIMIT=10 |
||||||
|
THREADS="-j 16" |
||||||
|
KMAP=iso_split_rshift |
||||||
|
|
||||||
|
echo "We need sudo later" |
||||||
|
sudo ls 2>&1 /dev/null |
||||||
|
|
||||||
|
function wait_bootloader { |
||||||
|
echo "Waiting for Bootloader..." |
||||||
|
local STARTTIME=$(date +"%s") |
||||||
|
local REMIND=0 |
||||||
|
local EXEC=dfu-programmer |
||||||
|
local TARGET=atmega32u4 |
||||||
|
while true |
||||||
|
do |
||||||
|
sudo $EXEC $TARGET get > /dev/null 2>&1 |
||||||
|
[ $? -eq 0 ] && break |
||||||
|
ENDTIME=$(date +"%s") |
||||||
|
DURATION=$(($ENDTIME-$STARTTIME)) |
||||||
|
if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ] |
||||||
|
then |
||||||
|
echo "Did you forget to press the reset button?" |
||||||
|
REMIND=1 |
||||||
|
fi |
||||||
|
sleep 1 |
||||||
|
done |
||||||
|
} |
||||||
|
make clean |
||||||
|
make KEYMAP=${KMAP} ${THREADS} |
||||||
|
if [[ $? -eq 0 ]] |
||||||
|
then |
||||||
|
echo "please trigger flashing!" |
||||||
|
wait_bootloader |
||||||
|
sudo make KEYMAP=${KMAP} dfu ${THREADS} |
||||||
|
else |
||||||
|
echo "make failed" |
||||||
|
exit 77 |
||||||
|
fi |
@ -0,0 +1,147 @@ |
|||||||
|
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
|
||||||
|
// this is the style you want to emulate.
|
||||||
|
|
||||||
|
#include "amj60.h" |
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||||
|
// entirely and just use numbers.
|
||||||
|
#define _DEF 0 |
||||||
|
#define _SPC 1 |
||||||
|
#define _TAB 2 |
||||||
|
#define _SFX 3 |
||||||
|
|
||||||
|
// dual-role shortcuts
|
||||||
|
#define TABDUAL LT(_TAB, KC_TAB) |
||||||
|
#define CAPSDUAL CTL_T(KC_ESC) |
||||||
|
#define SPACEDUAL LT(_SPC, KC_SPACE) |
||||||
|
#define ENTERDUAL CTL_T(KC_ENT) |
||||||
|
// arrow cluster duality bottom right corner
|
||||||
|
#define ARRLEFT ALT_T(KC_LEFT) |
||||||
|
#define ARRDOWN GUI_T(KC_DOWN) |
||||||
|
#define ARRUP SFT_T(KC_UP) |
||||||
|
#define ARRRIGHT CTL_T(KC_RIGHT) |
||||||
|
// german brackets
|
||||||
|
#define GER_CUR_L RALT(KC_7) // [
|
||||||
|
#define GER_CUR_R RALT(KC_0) // ]
|
||||||
|
#define GER_PAR_L LSFT(KC_8) // (
|
||||||
|
#define GER_PAR_R LSFT(KC_9) // )
|
||||||
|
#define GER_ANG_L KC_NUBS // <
|
||||||
|
#define GER_ANG_R LSFT(KC_NUBS) // >
|
||||||
|
#define GER_BRC_L RALT(KC_8) // [
|
||||||
|
#define GER_BRC_R RALT(KC_9) // ]
|
||||||
|
|
||||||
|
// increase readability
|
||||||
|
#define _______ KC_TRNS |
||||||
|
#define XXXXXXX KC_NO |
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
/* Keymap _DEF: Default Layer
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* |Grv| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | Tab is Fn1 |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| Return | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Sft | < | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn2| RShift is UP |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl| Gui Menu, RCtrl is
|
||||||
|
* `-----------------------------------------------------------' LEFT DWN RIGHT |
||||||
|
*/ |
||||||
|
[_DEF] = KEYMAP_ISO_SPLITRSHIFT( |
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
|
||||||
|
TABDUAL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||||
|
CAPSDUAL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, ENTERDUAL, \
|
||||||
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, ARRUP, TG(_SFX), \
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, SPACEDUAL, KC_RALT, ARRLEFT, ARRDOWN, ARRRIGHT), |
||||||
|
|
||||||
|
/* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete| |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | |Paus| Up| [ | ] | | | | ( | ) | | | | | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | | | < | > | |M0 | | | | | Vol+ | | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | | |Alt |Prev|Vol-|Next| |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_SPC] = KEYMAP_ISO_SPLITRSHIFT( |
||||||
|
KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
||||||
|
_______, KC_PAUS, KC_UP, GER_BRC_L, GER_BRC_R, _______, _______, GER_PAR_L, GER_PAR_R, _______, _______, _______, _______, _______, \
|
||||||
|
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_MPLY, \
|
||||||
|
_______, _______, _______, _______, GER_ANG_L, GER_ANG_R, KC_SPACE, M(0), _______, _______, _______, _______, KC_VOLU, _______, \
|
||||||
|
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT), |
||||||
|
|
||||||
|
/* Keymap 2: Tab Layer w/ vim pageup, modified with Tab (by holding tab)
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* |WAKE| | | | | | | | | | | | |Insert| TAB+GRC = WAKE |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | | | | | | | { | } | | | | | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | | | | |Pos1|PgDn|PgUp|End| | |Retrn | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | | | | | |AF2| | | | | PgUp | | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | | |Alt |Pos1|PgDn|End | |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_TAB] = KEYMAP_ISO_SPLITRSHIFT( |
||||||
|
KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, GER_CUR_L, GER_CUR_R, _______, _______, _______, _______, _______, \
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, KC_ENT, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, M(1), _______, _______, _______, _______, KC_PGUP, _______, \
|
||||||
|
_______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END), |
||||||
|
|
||||||
|
/* Keymap 3: Split right shift Numpad toggle Layer (by tapping the split rshift key)
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* |RSET| | | | | | | 7| 8| 9| | | |Backsp | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | | | | | | 4 | 5 | 6 | | | | \ | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | L | L | | | | | 1 | 2 | 3 | | | Return | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | L | L | L | L | L | L | | 0 | | /| Up | | All "L"s represent |
||||||
|
* |-----------------------------------------------------------| LED controlling |
||||||
|
* |Ctrl|Win |Alt | |Alt |Left|Down|Right| |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_SFX] = KEYMAP_ISO_SPLITRSHIFT( |
||||||
|
RESET, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, KC_BSPC, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, KC_BSLS, \
|
||||||
|
_______, F(2), F(3), _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, XXXXXXX, KC_ENT, \
|
||||||
|
_______, F(4), F(5), F(6), F(7), F(8), F(9), _______, _______, KC_0, _______, KC_SLSH, KC_UP, _______, \
|
||||||
|
_______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT), |
||||||
|
}; |
||||||
|
|
||||||
|
enum function_id { |
||||||
|
LAUNCH, |
||||||
|
RGBLED_TOGGLE, |
||||||
|
}; |
||||||
|
|
||||||
|
const uint16_t PROGMEM fn_actions[] = { |
||||||
|
[1] = ACTION_FUNCTION(LAUNCH), |
||||||
|
[10] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ENT), |
||||||
|
}; |
||||||
|
|
||||||
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) |
||||||
|
{ |
||||||
|
// MACRODOWN only works in this function
|
||||||
|
switch(id) { |
||||||
|
case 0: |
||||||
|
return (record->event.pressed ?
|
||||||
|
MACRO( D(RALT), T(SPC), U(RALT), END ) |
||||||
|
:MACRO( END )); |
||||||
|
break; |
||||||
|
case 1: |
||||||
|
return (record->event.pressed ?
|
||||||
|
MACRO( D(LALT), T(F2), U(LALT), END ) |
||||||
|
:MACRO( END )); |
||||||
|
break; |
||||||
|
} |
||||||
|
return MACRO_NONE; |
||||||
|
}; |
@ -0,0 +1,30 @@ |
|||||||
|
toneman77's custom spacefn Layout |
||||||
|
===================== |
||||||
|
|
||||||
|
##Quantum MK Firmware |
||||||
|
For the full Quantum feature list, see the parent readme.md. |
||||||
|
|
||||||
|
# Features |
||||||
|
* heavily modified ISO (!) layout with split right shift key |
||||||
|
* spaceFn |
||||||
|
* Dual-Role keys: |
||||||
|
* |
||||||
|
| Original key | when tapped | when held | |
||||||
|
| ---------------- | ------------- | ------------- | |
||||||
|
| Space | Space | layer change | |
||||||
|
| Caps lock | Escape | Control | |
||||||
|
| Tab | Tab | layer change | |
||||||
|
| Enter | Enter | Control | |
||||||
|
|
||||||
|
* vim-style arrow keys on hjkl (spacefn layer) |
||||||
|
* corresponding Home/PgDn/PgUp/End on hjkl (tab layer) |
||||||
|
* bonus arrow keys in the bottom right corner on Alt/Win/Menu/rCtrl/Shift |
||||||
|
* more bonus arrow keys on wasd (spacefn layer) |
||||||
|
* media keys prev/next/play/vol+/vol- (spacefn layer) |
||||||
|
* firmware bootloader button |
||||||
|
* additional brackets that only work in german layout due to horrible placement |
||||||
|
in the default qwertz layout |
||||||
|
|
||||||
|
|
||||||
|
### Additional Credits |
||||||
|
* visualization of the layers [here](http://www.keyboard-layout-editor.com/#/gists/aba4e4396459ede85bc66a22cee88e48) (without the LED keys) |
@ -0,0 +1,4 @@ |
|||||||
|
#!/bin/bash |
||||||
|
git checkout amj60 # gets you on branch amj60 |
||||||
|
git fetch origin # gets you up to date with origin |
||||||
|
git merge origin/master |
@ -0,0 +1,57 @@ |
|||||||
|
AMJ60 keyboard firmware |
||||||
|
====================== |
||||||
|
DIY/Assembled compact 60% keyboard. |
||||||
|
|
||||||
|
## Quantum MK Firmware |
||||||
|
|
||||||
|
For the full Quantum feature list, see [the parent readme.md](/readme.md). |
||||||
|
|
||||||
|
## Building |
||||||
|
|
||||||
|
Download or clone the whole firmware and navigate to the keyboards/amj60 |
||||||
|
folder. Once your dev env is setup, you'll be able to type `make` to generate |
||||||
|
your .hex - you can then use `make dfu` to program your PCB once you hit the |
||||||
|
reset button. |
||||||
|
|
||||||
|
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 file |
||||||
|
named `<name>.c` in the keymaps folder, and see keymap document (you can find |
||||||
|
in top readme.md) and existent keymap files. |
||||||
|
|
||||||
|
To build the firmware binary hex file with a keymap just do `make` with |
||||||
|
`KEYMAP` option like: |
||||||
|
`` |
||||||
|
$ make KEYMAP=[default|jack|<name>] |
||||||
|
`` |
||||||
|
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` |
||||||
|
folder. |
||||||
|
|
||||||
|
## Variations |
||||||
|
KEYMAP macros for the following layouts are available: |
||||||
|
|
||||||
|
* default, for all the available, possible keys |
||||||
|
* ANSI, for 60% ANSI keyboard |
||||||
|
* ISO |
||||||
|
* ISO w/ split right shift key |
||||||
|
* HHKB |
||||||
|
|
||||||
|
Remark: all but "ISO w/ split right shift key" are untested and were done to the best of my knowledge. |
||||||
|
|
||||||
|
### Original tmk firmware |
||||||
|
The original firmware that was used to port to qmk can be found [here](https://github.com/AMJKeyboard/AMJ60). |
||||||
|
|
||||||
|
## Further information |
||||||
|
Since information and documentation for this board are sparse, (at least for non-chinese speaking ppl) here is everything that could be found |
||||||
|
|
||||||
|
* [geekhack discussion](https://geekhack.org/index.php?topic=53070.0) |
||||||
|
* [chinese discussion](https://www.v2ex.com/t/161887) |
||||||
|
* Board has [dedicated pinouts](https://i.imgur.com/D0sWhyh.jpg?1) for a bluetooth module |
||||||
|
* has pins for external power [picture](https://i.imgur.com/00VrtIp.jpg?1). |
||||||
|
* most information comes from [reddit](https://www.reddit.com/r/MechanicalKeyboards/comments/32oonr/gh60_pcb_for_your_custom_keyboard/) |
@ -0,0 +1,17 @@ |
|||||||
|
# Workman dead with spacefn (kc60 @ QMK) |
||||||
|
|
||||||
|
## Layout reference |
||||||
|
 |
||||||
|
|
||||||
|
## Build |
||||||
|
|
||||||
|
To build this keymap, simply run `make KEYMAP=workman-dead`. |
||||||
|
|
||||||
|
## Notes |
||||||
|
|
||||||
|
* the default layout is `workman` (try it out, it's awesome!), but it can be changed to `qwerty` with the `rebel` key (the function layer won't change though) |
||||||
|
* `comma` acts as a dead key, that means tapping/holding it will activate the **oneshot** `dead key` layer (marked red in the reference) |
||||||
|
* hold `space` to access the `function` layer (marked blue in the reference) |
||||||
|
* hold `tab` to activate the mouse layer |
||||||
|
* the `function` layer contains mostly osx specific shortcuts |
||||||
|
* on the right side of the bottom row `alt` and `super` are switched compared to a standard layout |
After Width: | Height: | Size: 114 KiB |
@ -0,0 +1,183 @@ |
|||||||
|
#include "kc60.h" |
||||||
|
|
||||||
|
#define _WM 0 |
||||||
|
#define _QW 1 |
||||||
|
#define _DK 2 |
||||||
|
#define _FUN 3 |
||||||
|
#define _MS 4 |
||||||
|
|
||||||
|
#define _______ KC_NO |
||||||
|
#define XXXXXXX KC_TRNS |
||||||
|
|
||||||
|
#define _DK_ACT 0 |
||||||
|
#define _DK_REL 1 |
||||||
|
#define _KC_COMS 2 |
||||||
|
#define _KC_CENT 3 |
||||||
|
|
||||||
|
#define DK_ACT M(_DK_ACT) // activate dead key layer
|
||||||
|
#define DK_REL M(_DK_REL) // release dead key layer
|
||||||
|
#define KC_COMS M(_KC_COMS) // comma + space
|
||||||
|
#define KC_CENT M(_KC_CENT) // comma + enter
|
||||||
|
#define KC_TABM LT(_MS, KC_TAB) // press for tab, hold for mouse layer
|
||||||
|
#define KC_SPFN LT(_FUN, KC_SPC) // press for space, hold for function layer (aka spacefn)
|
||||||
|
#define KC_DFQW DF(_QW) // set default layer to qwerty
|
||||||
|
#define KC_DFWM DF(_WM) // set default layer to workman
|
||||||
|
#define KC_CMDQ LGUI(KC_Q) // command + q
|
||||||
|
#define KC_CMDD LGUI(KC_D) // command + d
|
||||||
|
#define KC_CMDA LGUI(KC_A) // command + a
|
||||||
|
#define KC_CMDS LGUI(KC_S) // command + s
|
||||||
|
#define KC_CMDZ LGUI(KC_Z) // command + z
|
||||||
|
#define KC_CMDX LGUI(KC_X) // command + x
|
||||||
|
#define KC_CMDC LGUI(KC_C) // command + c
|
||||||
|
#define KC_CMDV LGUI(KC_V) // command + v
|
||||||
|
#define KC_CSTB S(RCTL(KC_TAB)) // shift + control + tab
|
||||||
|
#define KC_C_TB RCTL(KC_TAB) // control + tab
|
||||||
|
#define KC_C_LF RCTL(KC_LEFT) // control + left
|
||||||
|
#define KC_C_RT RCTL(KC_RGHT) // control + right
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
|
||||||
|
// Workman
|
||||||
|
/*
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Bsp | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Tab/M| Q| D| R| W| B| J| F| U| P| ;| [| ]| \ | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Ctrl | A| S| H| T| G| Y| N| E| O| I| '| Return | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Shift | Z| X| M| C| V| K| L| ,| .| /| Shift | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Ctrl | Alt | GUI | Space/FN | Alt | GUI | Ctrl | qwerty | |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_WM] = KEYMAP( /* Workman */ |
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
|
||||||
|
KC_TABM, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||||
|
KC_LCTL, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, _______, KC_ENT, \
|
||||||
|
KC_LSFT, _______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, DK_ACT, KC_DOT, KC_SLSH, _______, KC_RSFT, \
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPFN, KC_RALT, KC_RGUI, KC_RCTL, KC_DFQW), |
||||||
|
|
||||||
|
// QWERTY
|
||||||
|
/*
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Bsp | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Tab/M| 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 | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Ctrl | Alt | GUI | Space/FN | Alt | GUI | Ctrl | workman | |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_QW] = KEYMAP( /* QWERTY */ |
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
|
||||||
|
KC_TABM, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||||
|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, _______, KC_ENT, \
|
||||||
|
KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DK_ACT, KC_DOT, KC_SLSH, _______, KC_RSFT, \
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPFN, KC_RALT, KC_RGUI, KC_RCTL, KC_DOWN), |
||||||
|
|
||||||
|
// dead key layer
|
||||||
|
/*
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* | | | | | | | | | | | | | | Bsp | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | %| &| ?| +| @| $| _| [| ]| !| ~| ^| | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | #| (| =| 0| {| }| 1| *| )| -| `| Return | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | 6| 7| 8| 9| || \| 2| 3| 4| 5| | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Ctrl | Alt | GUI | , | Alt | GUI | Ctrl | | |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_DK] = KEYMAP( /* dead key layer */ |
||||||
|
XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, \
|
||||||
|
XXXXXXX, KC_PERC, KC_AMPR, KC_QUES, KC_PLUS, KC_AT, KC_DLR, KC_UNDS, KC_LBRC, KC_RBRC, KC_EXLM, KC_TILD, KC_CIRC, _______, \
|
||||||
|
_______, KC_HASH, KC_LPRN, KC_EQL, KC_0, KC_LCBR, KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, KC_GRV, _______, KC_CENT, \
|
||||||
|
_______, _______, KC_6, KC_7, KC_8, KC_9, KC_PIPE, KC_BSLS, KC_2, DK_REL, KC_4, KC_5, _______, _______, \
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_COMS, KC_RALT, KC_RGUI, KC_RCTL, _______), |
||||||
|
|
||||||
|
// function layer
|
||||||
|
/*
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* | | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|Del | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Esc | Cq| Cd|cstb|ctb| | |pgd| up|pgu| | | |ins | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Shift | Ca| Cs|clt|crt| | | lt| dw| rt|home|end| Bsp | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Shift | Cz| Cx| | Cc| Cv| V-| V+|mute| | | | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* |Ctrl | Alt | GUI | | Alt | GUI | Ctrl | Reset | |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_FUN] = KEYMAP( /* function layer */ |
||||||
|
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
||||||
|
KC_ESC, KC_CMDQ, KC_CMDD, KC_CSTB, KC_C_TB, _______, _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_INS, \
|
||||||
|
KC_LSFT, KC_CMDA, KC_CMDS, KC_C_LF, KC_C_RT, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END, _______, KC_BSPC, \
|
||||||
|
KC_LSFT, _______, KC_CMDZ, KC_CMDX, _______, KC_CMDC, KC_CMDV, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, \
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_RALT, KC_RGUI, KC_RCTL, RESET), |
||||||
|
|
||||||
|
// mouse layer
|
||||||
|
/*
|
||||||
|
* ,-----------------------------------------------------------. |
||||||
|
* | | | | | | | | | | | | | | | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | |fast|med|slow| | | | | up| | | | | | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | | | | | | lt| dw| rt| rc| | | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | | | | | | | | | | | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | | lc | | | | | |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_MS] = KEYMAP( /* mouse layer */ |
||||||
|
XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
|
XXXXXXX, KC_ACL2, KC_ACL1, KC_ACL0, _______, _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN2, _______, _______, _______, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
|
_______, _______, _______, KC_BTN1, _______, _______, _______, _______), |
||||||
|
}; |
||||||
|
|
||||||
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) |
||||||
|
{ |
||||||
|
switch(id) { |
||||||
|
case _KC_COMS: |
||||||
|
if (record->event.pressed) { |
||||||
|
return MACRO(T(COMM), T(SPC), END); // comma + space
|
||||||
|
} |
||||||
|
break; |
||||||
|
case _KC_CENT: |
||||||
|
if (record->event.pressed) { |
||||||
|
return MACRO(T(COMM), T(ENT), END); // comma + enter
|
||||||
|
} |
||||||
|
break; |
||||||
|
case _DK_ACT: |
||||||
|
if (record->event.pressed) { |
||||||
|
if (keyboard_report->mods & MOD_BIT(KC_LSFT) || keyboard_report->mods & MOD_BIT(KC_RSFT)) { // act as comma when shift is pressed (eg <)
|
||||||
|
register_code(KC_COMM); |
||||||
|
} else { // activate oneshot dead key layer otherwise
|
||||||
|
layer_on(_DK); |
||||||
|
set_oneshot_layer(_DK, ONESHOT_START); |
||||||
|
} |
||||||
|
} else { // make sure to deactive dead key layer on key release
|
||||||
|
clear_oneshot_layer_state(ONESHOT_PRESSED); |
||||||
|
unregister_code(KC_COMM); |
||||||
|
} |
||||||
|
break; |
||||||
|
case _DK_REL: |
||||||
|
if (record->event.pressed) { // act as 3 on keypress
|
||||||
|
register_code(KC_3); |
||||||
|
} else { // make sure to deactive dead key layer on key release
|
||||||
|
clear_oneshot_layer_state(ONESHOT_PRESSED); |
||||||
|
unregister_code(KC_3); |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
return MACRO_NONE; |
||||||
|
}; |
@ -0,0 +1,314 @@ |
|||||||
|
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
|
||||||
|
// this is the style you want to emulate.
|
||||||
|
|
||||||
|
#include "planck.h" |
||||||
|
#include "action_layer.h" |
||||||
|
#ifdef AUDIO_ENABLE |
||||||
|
#include "audio.h" |
||||||
|
#endif |
||||||
|
#include "eeconfig.h" |
||||||
|
|
||||||
|
extern keymap_config_t keymap_config; |
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||||
|
// entirely and just use numbers.
|
||||||
|
#define _QWERTY 0 |
||||||
|
#define _COLEMAK 1 |
||||||
|
#define _DVORAK 2 |
||||||
|
#define _LOWER 3 |
||||||
|
#define _RAISE 4 |
||||||
|
#define _PLOVER 5 |
||||||
|
#define _ADJUST 16 |
||||||
|
|
||||||
|
enum planck_keycodes { |
||||||
|
QWERTY = SAFE_RANGE, |
||||||
|
COLEMAK, |
||||||
|
DVORAK, |
||||||
|
PLOVER, |
||||||
|
LOWER, |
||||||
|
RAISE, |
||||||
|
BACKLIT, |
||||||
|
EXT_PLV |
||||||
|
}; |
||||||
|
|
||||||
|
// Fillers to make layering more clear
|
||||||
|
#define _______ KC_TRNS |
||||||
|
#define XXXXXXX KC_NO |
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
|
||||||
|
/* Qwerty
|
||||||
|
* ,-----------------------------------------------------------------------------------. |
||||||
|
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | |
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------| |
||||||
|
* | Esc | A | S | D | F | G | H | J | K | L | ; | " | |
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------| |
||||||
|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | |
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------| |
||||||
|
* | Ctrl | GUI | | Alt |Lower | Space |Raise |AltGr | [ | ] | \ | |
||||||
|
* `-----------------------------------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_QWERTY] = { |
||||||
|
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, |
||||||
|
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, |
||||||
|
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, |
||||||
|
{KC_LCTL, KC_LGUI, _______, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_RALT, KC_LBRC, KC_RBRC, KC_BSLS} |
||||||
|
}, |
||||||
|
|
||||||
|
/* Colemak
|
||||||
|
* ,-----------------------------------------------------------------------------------. |
||||||
|
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | |
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------| |
||||||
|
* | Esc | A | R | S | T | D | H | N | E | I | O | " | |
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------| |
||||||
|
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | |
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------| |
||||||
|
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | |
||||||
|
* `-----------------------------------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_COLEMAK] = { |
||||||
|
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, |
||||||
|
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, |
||||||
|
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, |
||||||
|
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} |
||||||
|
}, |
||||||
|
|
||||||
|
/* Dvorak
|
||||||
|
* ,-----------------------------------------------------------------------------------. |
||||||
|
* | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | |
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------| |
||||||
|
* | Esc | A | O | E | U | I | D | H | T | N | S | / | |
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------| |
||||||
|
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | |
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------| |
||||||
|
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | |
||||||
|
* `-----------------------------------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_DVORAK] = { |
||||||
|
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, |
||||||
|
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, |
||||||
|
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, |
||||||
|
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} |
||||||
|
}, |
||||||
|
|
||||||
|
/* Lower
|
||||||
|
* ,-----------------------------------------------------------------------------------. |
||||||
|
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | |
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------| |
||||||
|
* | | | | | | | Home | PgDwn| PgUp | End | | | |
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------| |
||||||
|
* | | | | | | | | | | | |Insert| |
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------| |
||||||
|
* | Brite| | | | | | | | | | Del | |
||||||
|
* `-----------------------------------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_LOWER] = { |
||||||
|
{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_HOME,KC_PGDN,KC_PGUP,KC_END,_______,_______}, |
||||||
|
{_______, _______, _______, _______, _______, _______, _______,_______,_______,_______, _______, KC_INS}, |
||||||
|
{BACKLIT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL} |
||||||
|
}, |
||||||
|
|
||||||
|
/* Raise
|
||||||
|
* ,-----------------------------------------------------------------------------------. |
||||||
|
* | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | - | = | |
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------| |
||||||
|
* | | | | | | | Left | Down | Up | Right| | ` | |
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------| |
||||||
|
* | | | | | | Mute | Vol+ | Vol- | | | |Insert| |
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------| |
||||||
|
* | | | | | | | | Prev | Play | Next | Del | |
||||||
|
* `-----------------------------------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_RAISE] = { |
||||||
|
{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_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_GRV}, |
||||||
|
{_______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, KC_INS}, |
||||||
|
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL} |
||||||
|
}, |
||||||
|
|
||||||
|
/* Plover layer (http://opensteno.org)
|
||||||
|
* ,-----------------------------------------------------------------------------------. |
||||||
|
* | # | # | # | # | # | # | # | # | # | # | # | # | |
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------| |
||||||
|
* | | S | T | P | H | * | * | F | P | L | T | D | |
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------| |
||||||
|
* |TogOut| S | K | W | R | * | * | R | B | G | S | Z | |
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------| |
||||||
|
* | Exit | | | A | O | | E | U | | | | |
||||||
|
* `-----------------------------------------------------------------------------------' |
||||||
|
*/ |
||||||
|
|
||||||
|
[_PLOVER] = { |
||||||
|
{KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, |
||||||
|
{XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, |
||||||
|
{XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, |
||||||
|
{EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} |
||||||
|
}, |
||||||
|
|
||||||
|
/* Adjust (Lower + Raise)
|
||||||
|
* ,-----------------------------------------------------------------------------------. |
||||||
|
* | | Reset| | | | | | | | | | Del | |
||||||
|
* |------+------+------+------+------+-------------+------+------+------+------+------| |
||||||
|
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | |
||||||
|
* |------+------+------+------+------+------|------+------+------+------+------+------| |
||||||
|
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | |
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------| |
||||||
|
* | | | | | | | | | | | | |
||||||
|
* `-----------------------------------------------------------------------------------' |
||||||
|
*/ |
||||||
|
[_ADJUST] = { |
||||||
|
{_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, |
||||||
|
{_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, |
||||||
|
{_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, |
||||||
|
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
}; |
||||||
|
|
||||||
|
#ifdef AUDIO_ENABLE |
||||||
|
|
||||||
|
float tone_startup[][2] = SONG(STARTUP_SOUND); |
||||||
|
float tone_qwerty[][2] = SONG(QWERTY_SOUND); |
||||||
|
float tone_dvorak[][2] = SONG(DVORAK_SOUND); |
||||||
|
float tone_colemak[][2] = SONG(COLEMAK_SOUND); |
||||||
|
float tone_plover[][2] = SONG(PLOVER_SOUND); |
||||||
|
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); |
||||||
|
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); |
||||||
|
|
||||||
|
float tone_goodbye[][2] = SONG(GOODBYE_SOUND); |
||||||
|
#endif |
||||||
|
|
||||||
|
|
||||||
|
void persistant_default_layer_set(uint16_t default_layer) { |
||||||
|
eeconfig_update_default_layer(default_layer); |
||||||
|
default_layer_set(default_layer); |
||||||
|
} |
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
||||||
|
switch (keycode) { |
||||||
|
case QWERTY: |
||||||
|
if (record->event.pressed) { |
||||||
|
#ifdef AUDIO_ENABLE |
||||||
|
PLAY_NOTE_ARRAY(tone_qwerty, false, 0); |
||||||
|
#endif |
||||||
|
persistant_default_layer_set(1UL<<_QWERTY); |
||||||
|
} |
||||||
|
return false; |
||||||
|
break; |
||||||
|
case COLEMAK: |
||||||
|
if (record->event.pressed) { |
||||||
|
#ifdef AUDIO_ENABLE |
||||||
|
PLAY_NOTE_ARRAY(tone_colemak, false, 0); |
||||||
|
#endif |
||||||
|
persistant_default_layer_set(1UL<<_COLEMAK); |
||||||
|
} |
||||||
|
return false; |
||||||
|
break; |
||||||
|
case DVORAK: |
||||||
|
if (record->event.pressed) { |
||||||
|
#ifdef AUDIO_ENABLE |
||||||
|
PLAY_NOTE_ARRAY(tone_dvorak, false, 0); |
||||||
|
#endif |
||||||
|
persistant_default_layer_set(1UL<<_DVORAK); |
||||||
|
} |
||||||
|
return false; |
||||||
|
break; |
||||||
|
case LOWER: |
||||||
|
if (record->event.pressed) { |
||||||
|
layer_on(_LOWER); |
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST); |
||||||
|
} else { |
||||||
|
layer_off(_LOWER); |
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST); |
||||||
|
} |
||||||
|
return false; |
||||||
|
break; |
||||||
|
case RAISE: |
||||||
|
if (record->event.pressed) { |
||||||
|
layer_on(_RAISE); |
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST); |
||||||
|
} else { |
||||||
|
layer_off(_RAISE); |
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST); |
||||||
|
} |
||||||
|
return false; |
||||||
|
break; |
||||||
|
case BACKLIT: |
||||||
|
if (record->event.pressed) { |
||||||
|
register_code(KC_RSFT); |
||||||
|
#ifdef BACKLIGHT_ENABLE |
||||||
|
backlight_step(); |
||||||
|
#endif |
||||||
|
} else { |
||||||
|
unregister_code(KC_RSFT); |
||||||
|
} |
||||||
|
return false; |
||||||
|
break; |
||||||
|
case PLOVER: |
||||||
|
if (record->event.pressed) { |
||||||
|
#ifdef AUDIO_ENABLE |
||||||
|
stop_all_notes(); |
||||||
|
PLAY_NOTE_ARRAY(tone_plover, false, 0); |
||||||
|
#endif |
||||||
|
layer_off(_RAISE); |
||||||
|
layer_off(_LOWER); |
||||||
|
layer_off(_ADJUST); |
||||||
|
layer_on(_PLOVER); |
||||||
|
if (!eeconfig_is_enabled()) { |
||||||
|
eeconfig_init(); |
||||||
|
} |
||||||
|
keymap_config.raw = eeconfig_read_keymap(); |
||||||
|
keymap_config.nkro = 1; |
||||||
|
eeconfig_update_keymap(keymap_config.raw); |
||||||
|
} |
||||||
|
return false; |
||||||
|
break; |
||||||
|
case EXT_PLV: |
||||||
|
if (record->event.pressed) { |
||||||
|
#ifdef AUDIO_ENABLE |
||||||
|
PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); |
||||||
|
#endif |
||||||
|
layer_off(_PLOVER); |
||||||
|
} |
||||||
|
return false; |
||||||
|
break; |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
void matrix_init_user(void) { |
||||||
|
#ifdef AUDIO_ENABLE |
||||||
|
startup_user(); |
||||||
|
#endif |
||||||
|
} |
||||||
|
|
||||||
|
#ifdef AUDIO_ENABLE |
||||||
|
|
||||||
|
void startup_user() |
||||||
|
{ |
||||||
|
_delay_ms(20); // gets rid of tick
|
||||||
|
PLAY_NOTE_ARRAY(tone_startup, false, 0); |
||||||
|
} |
||||||
|
|
||||||
|
void shutdown_user() |
||||||
|
{ |
||||||
|
PLAY_NOTE_ARRAY(tone_goodbye, false, 0); |
||||||
|
_delay_ms(150); |
||||||
|
stop_all_notes(); |
||||||
|
} |
||||||
|
|
||||||
|
void music_on_user(void) |
||||||
|
{ |
||||||
|
music_scale_user(); |
||||||
|
} |
||||||
|
|
||||||
|
void music_scale_user(void) |
||||||
|
{ |
||||||
|
PLAY_NOTE_ARRAY(music_scale, false, 0); |
||||||
|
} |
||||||
|
|
||||||
|
#endif |
@ -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 ?= 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
|
||||||
|
# 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 |
||||||
|
|
||||||
|
|
@ -0,0 +1,164 @@ |
|||||||
|
/*
|
||||||
|
Copyright 2012 Jun Wako <wakojun@gmail.com> |
||||||
|
Copyright 2016 Julien Pecqueur <julien@peclu.net> |
||||||
|
Copyright 2016 Felix Uhl <ifreilicht@gmail.com> |
||||||
|
|
||||||
|
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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#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 { F0 } |
||||||
|
|
||||||
|
/* 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 |
@ -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 = no # 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 |
@ -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 |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 213 KiB |
After Width: | Height: | Size: 213 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 206 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 18 KiB |
@ -0,0 +1,237 @@ |
|||||||
|
/*
|
||||||
|
Copyright 2016 Julien Pecqueur <julien@peclu.net> |
||||||
|
Copyright 2016 Felix Uhl <ifreilicht@gmail.com> |
||||||
|
|
||||||
|
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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#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_CM_A: |
||||||
|
send_code = KC_Q; |
||||||
|
break; |
||||||
|
case KC_CM_O: |
||||||
|
send_code = KC_P; |
||||||
|
break; |
||||||
|
case KC_CM_U: |
||||||
|
send_code = KC_Y; |
||||||
|
break; |
||||||
|
case KC_CM_S: |
||||||
|
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; |
||||||
|
} |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
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) { |
||||||
|
|
||||||
|
} |
@ -0,0 +1,94 @@ |
|||||||
|
# ANSI_QWERTZ |
||||||
|
|
||||||
|
[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 |
||||||
|
* 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) |
||||||
|
|
||||||
|
###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#04-revive-dead-keys). |
||||||
|
|
||||||
|
The illustration below shows the "US International" layout available in the Language settings of Windows, Linux and Mac OS. |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
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. More information can be found [here](http://web.archive.org/web/20160818101234/http://dry.sailingissues.com/us-international-keyboard-layout.html). |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
####0.0.0 Explicitly Supported Languages |
||||||
|
* German |
||||||
|
|
||||||
|
####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 |
||||||
|
|
||||||
|
###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. |
||||||
|
|
||||||
|
###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. |
||||||
|
|
||||||
|
###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. |
||||||
|
|
||||||
|
####0.3.0 Linux |
||||||
|
Follow [these instructions](http://askubuntu.com/a/13364). |
||||||
|
|
||||||
|
#####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". |
||||||
|
|
||||||
|
###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#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 |
||||||
|
``` |
||||||
|
|
||||||
|
##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. |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
###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. |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
###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. |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,28 @@ |
|||||||
|
#include "s60-x.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 uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
/* 0: ANSI qwerty */ |
||||||
|
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, \
|
||||||
|
LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL), |
||||||
|
}; |
||||||
|
const uint16_t PROGMEM fn_actions[] = {}; |
||||||
|
|
@ -0,0 +1,48 @@ |
|||||||
|
#include "s60-x.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 │ ; │ ' │▒▒▒▒▒│ENTER│█████│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
/* 0: ANSI qwerty */ |
||||||
|
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, \
|
||||||
|
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│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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
|
||||||
|
}; |
@ -0,0 +1,182 @@ |
|||||||
|
#include "s60-x.h" |
||||||
|
|
||||||
|
/*
|
||||||
|
* Hasu |
||||||
|
*/ |
||||||
|
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│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ 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 │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
|
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 │ │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 |
||||||
|
|
||||||
|
*/ |
||||||
|
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), |
||||||
|
}; |
||||||
|
|
||||||
|
/*
|
||||||
|
* 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), |
||||||
|
}; |
@ -0,0 +1,52 @@ |
|||||||
|
#include "s60-x.h" |
||||||
|
|
||||||
|
/*
|
||||||
|
* HHKB Layout |
||||||
|
*/ |
||||||
|
const uint16_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 │▒▒▒▒▒│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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), |
||||||
|
/* 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 │▒▒▒▒▒│ │ │ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│▒▒▒▒▒│ │ │█████│█████│█████│ │█████│█████│█████│▒▒▒▒▒│ │ │▒▒▒▒▒│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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), |
||||||
|
}; |
||||||
|
|
||||||
|
/*
|
||||||
|
* Fn action definition |
||||||
|
*/ |
||||||
|
const uint16_t PROGMEM fn_actions[] = { |
||||||
|
[0] = ACTION_LAYER_MOMENTARY(1), |
||||||
|
}; |
@ -0,0 +1,48 @@ |
|||||||
|
#include "s60-x.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 uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
/* 0: ANSI qwerty */ |
||||||
|
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, \
|
||||||
|
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│ │ │ │ │ │ │ │ │ │ │█████│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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
|
||||||
|
}; |
@ -0,0 +1,92 @@ |
|||||||
|
/*
|
||||||
|
Copyright 2016 Julien Pecqueur <julien@peclu.net> |
||||||
|
Copyright 2016 Felix Uhl <ifreilicht@gmail.com> |
||||||
|
|
||||||
|
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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#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| |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 | |
||||||
|
* |-----------------------------------------------------------| |
||||||
|
* | | | | | | | | | |
||||||
|
* `-----------------------------------------------------------' |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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) { |
||||||
|
|
||||||
|
} |
@ -0,0 +1 @@ |
|||||||
|
# The default keymap for s60-x |
@ -0,0 +1,25 @@ |
|||||||
|
#include "s60-x.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 uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
/* 0: qwerty */ |
||||||
|
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, \
|
||||||
|
LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL), |
||||||
|
}; |
||||||
|
const uint16_t PROGMEM fn_actions[] = {}; |
@ -0,0 +1,180 @@ |
|||||||
|
#include "s60-x.h" |
||||||
|
|
||||||
|
const uint16_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│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
|
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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), |
||||||
|
/* 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 |
||||||
|
|
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 |
||||||
|
|
||||||
|
*/ |
||||||
|
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 */ |
||||||
|
[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
|
||||||
|
}; |
@ -0,0 +1,110 @@ |
|||||||
|
#include "s60-x.h" |
||||||
|
|
||||||
|
// Poker fix with toggle and bit operation
|
||||||
|
// Fn + Esc = `
|
||||||
|
// Fn + {left, down, up, right} = {home, pgdown, pgup, end}
|
||||||
|
const uint16_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│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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] = 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, \
|
||||||
|
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 │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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), |
||||||
|
/* 7: Poker with Arrow + Fn'd
|
||||||
|
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ |
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ Up │▒▒▒▒▒│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │█████│█████│█████│ │█████│█████│█████│ │Left │Down │Right│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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)
|
||||||
|
}; |
@ -0,0 +1,178 @@ |
|||||||
|
#include "s60-x.h" |
||||||
|
|
||||||
|
// Poker fix with set(state transition)
|
||||||
|
// Fn + Esc = `
|
||||||
|
// Fn + {left, down, up, right} = {home, pgdown, pgup, end}
|
||||||
|
const uint16_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│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 │ │ │ │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, FN2, TRNS, TRNS, TRNS), |
||||||
|
/* 3: Poker with Arrow and Esc
|
||||||
|
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ |
||||||
|
│ Esc │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ Up │▒▒▒▒▒│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │█████│█████│█████│ │█████│█████│█████│ Fn3 │Left │Down │Right│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, 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 │ │ │ │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 │ │ │ │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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 │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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)
|
||||||
|
}; |
@ -0,0 +1,55 @@ |
|||||||
|
#include "s60-x.h" |
||||||
|
|
||||||
|
/*
|
||||||
|
* SpaceFN |
||||||
|
* http://geekhack.org/index.php?topic=51069.0
|
||||||
|
*/ |
||||||
|
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│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ 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│█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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│ ` │ ~ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ |
||||||
|
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |
||||||
|
│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ |
||||||
|
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ |
||||||
|
*/ |
||||||
|
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, \
|
||||||
|
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
|
||||||
|
}; |
@ -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); |
||||||
|
} |
@ -0,0 +1,69 @@ |
|||||||
|
/*
|
||||||
|
Copyright 2012,2013 Jun Wako <wakojun@gmail.com> |
||||||
|
Copyright 2015 Vinícius Nery Cordeiro <vinicius.nery.cordeiro@gmail.com> |
||||||
|
Copyright 2016 Felix Uhl <ifreilicht@gmail.com> |
||||||
|
|
||||||
|
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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef S60X_H |
||||||
|
#define S60X_H |
||||||
|
|
||||||
|
#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 |
||||||
|
* 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( \ |
||||||
|
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 } \
|
||||||
|
} |
||||||
|
|
||||||
|
/*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 |