forked from mirrors/qmk_firmware
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d8f3c28a37 | ||
|
|
eef0cb2f90 | ||
|
|
63e4ad13c8 | ||
|
|
f9e67338a4 | ||
|
|
5f9f62fb8c | ||
|
|
147bc6ec43 | ||
|
|
bea62add55 | ||
|
|
d511e52c1f | ||
|
|
789e199450 | ||
|
|
a747c1c3de | ||
|
|
a521fc2b6c | ||
|
|
8651eef298 |
@@ -244,34 +244,6 @@ else
|
||||
FIRMWARE_FORMAT?=hex
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),CHIBIOS)
|
||||
include $(TMK_PATH)/chibios.mk
|
||||
OPT_OS = chibios
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_5)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_4)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_3)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_2)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_1)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h
|
||||
endif
|
||||
endif
|
||||
|
||||
# Find all of the config.h files and add them to our CONFIG_H define.
|
||||
CONFIG_H :=
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
|
||||
@@ -307,11 +279,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","")
|
||||
POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h
|
||||
endif
|
||||
|
||||
# Save the defines and includes here, so we don't include any keymap specific ones
|
||||
PROJECT_DEFS := $(OPT_DEFS)
|
||||
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
|
||||
PROJECT_CONFIG := $(CONFIG_H)
|
||||
|
||||
# Userspace setup and definitions
|
||||
ifeq ("$(USER_NAME)","")
|
||||
USER_NAME := $(KEYMAP)
|
||||
@@ -357,23 +324,17 @@ SRC += $(TMK_COMMON_SRC)
|
||||
OPT_DEFS += $(TMK_COMMON_DEFS)
|
||||
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
|
||||
|
||||
ifeq ($(PLATFORM),AVR)
|
||||
ifeq ($(strip $(PROTOCOL)), VUSB)
|
||||
include $(TMK_PATH)/protocol/vusb.mk
|
||||
include $(TMK_PATH)/$(PLATFORM_KEY).mk
|
||||
ifneq ($(strip $(PROTOCOL)),)
|
||||
include $(TMK_PATH)/protocol/$(strip $(shell echo $(PROTOCOL) | tr '[:upper:]' '[:lower:]')).mk
|
||||
else
|
||||
include $(TMK_PATH)/protocol/lufa.mk
|
||||
endif
|
||||
include $(TMK_PATH)/avr.mk
|
||||
include $(TMK_PATH)/protocol/$(PLATFORM_KEY).mk
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),ARM_ATSAM)
|
||||
include $(TMK_PATH)/arm_atsam.mk
|
||||
include $(TMK_PATH)/protocol/arm_atsam.mk
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),CHIBIOS)
|
||||
include $(TMK_PATH)/protocol/chibios.mk
|
||||
endif
|
||||
# TODO: remove this bodge?
|
||||
PROJECT_DEFS := $(OPT_DEFS)
|
||||
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
|
||||
PROJECT_CONFIG := $(CONFIG_H)
|
||||
|
||||
ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
|
||||
VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer
|
||||
|
||||
@@ -13,26 +13,24 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
SERIAL_DIR := $(QUANTUM_DIR)/serial_link
|
||||
SERIAL_PATH := $(QUANTUM_PATH)/serial_link
|
||||
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
|
||||
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
|
||||
SERIAL_DEFS += -DSERIAL_LINK_ENABLE
|
||||
COMMON_VPATH += $(SERIAL_PATH)
|
||||
|
||||
QUANTUM_SRC += \
|
||||
$(QUANTUM_DIR)/quantum.c \
|
||||
$(QUANTUM_DIR)/keymap_common.c \
|
||||
$(QUANTUM_DIR)/keycode_config.c
|
||||
|
||||
ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
|
||||
OPT_DEFS += -DAPI_SYSEX_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/api/api_sysex.c
|
||||
OPT_DEFS += -DAPI_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/api.c
|
||||
MIDI_ENABLE=yes
|
||||
SRC += $(QUANTUM_DIR)/api/api_sysex.c
|
||||
SRC += $(QUANTUM_DIR)/api.c
|
||||
endif
|
||||
|
||||
MUSIC_ENABLE := 0
|
||||
|
||||
ifeq ($(strip $(AUDIO_ENABLE)), yes)
|
||||
OPT_DEFS += -DAUDIO_ENABLE
|
||||
MUSIC_ENABLE := 1
|
||||
MUSIC_ENABLE = yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_clicky.c
|
||||
SRC += $(QUANTUM_DIR)/audio/audio_$(PLATFORM_KEY).c
|
||||
@@ -42,19 +40,15 @@ endif
|
||||
|
||||
ifeq ($(strip $(MIDI_ENABLE)), yes)
|
||||
OPT_DEFS += -DMIDI_ENABLE
|
||||
MUSIC_ENABLE := 1
|
||||
MUSIC_ENABLE = yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
|
||||
endif
|
||||
|
||||
ifeq ($(MUSIC_ENABLE), 1)
|
||||
MUSIC_ENABLE ?= no
|
||||
ifeq ($(MUSIC_ENABLE), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(COMBO_ENABLE)), yes)
|
||||
OPT_DEFS += -DCOMBO_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(STENO_ENABLE)), yes)
|
||||
OPT_DEFS += -DSTENO_ENABLE
|
||||
VIRTSER_ENABLE ?= yes
|
||||
@@ -76,28 +70,6 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/pointing_device.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(UCIS_ENABLE)), yes)
|
||||
OPT_DEFS += -DUCIS_ENABLE
|
||||
UNICODE_COMMON := yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
|
||||
OPT_DEFS += -DUNICODEMAP_ENABLE
|
||||
UNICODE_COMMON := yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(UNICODE_ENABLE)), yes)
|
||||
OPT_DEFS += -DUNICODE_ENABLE
|
||||
UNICODE_COMMON := yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(UNICODE_COMMON)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
||||
endif
|
||||
|
||||
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c
|
||||
EEPROM_DRIVER ?= vendor
|
||||
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
|
||||
@@ -245,31 +217,18 @@ ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_rgb.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
|
||||
OPT_DEFS += -DTAP_DANCE_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(KEY_LOCK_ENABLE)), yes)
|
||||
OPT_DEFS += -DKEY_LOCK_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_key_lock.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(PRINTING_ENABLE)), yes)
|
||||
OPT_DEFS += -DPRINTING_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c
|
||||
SRC += $(TMK_DIR)/protocol/serial_uart.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
|
||||
OPT_DEFS += -DAUTO_SHIFT_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
|
||||
ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes)
|
||||
OPT_DEFS += -DAUTO_SHIFT_MODIFIERS
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
|
||||
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
|
||||
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
|
||||
SERIAL_DEFS += -DSERIAL_LINK_ENABLE
|
||||
COMMON_VPATH += $(SERIAL_PATH)
|
||||
|
||||
SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
|
||||
OPT_DEFS += $(SERIAL_DEFS)
|
||||
VAPTH += $(SERIAL_PATH)
|
||||
@@ -368,29 +327,6 @@ ifeq ($(strip $(ENCODER_ENABLE)), yes)
|
||||
OPT_DEFS += -DENCODER_ENABLE
|
||||
endif
|
||||
|
||||
HAPTIC_ENABLE ?= no
|
||||
ifneq ($(strip $(HAPTIC_ENABLE)),no)
|
||||
COMMON_VPATH += $(DRIVER_PATH)/haptic
|
||||
SRC += haptic.c
|
||||
OPT_DEFS += -DHAPTIC_ENABLE
|
||||
endif
|
||||
|
||||
ifneq ($(filter DRV2605L, $(HAPTIC_ENABLE)), )
|
||||
SRC += DRV2605L.c
|
||||
QUANTUM_LIB_SRC += i2c_master.c
|
||||
OPT_DEFS += -DDRV2605L
|
||||
endif
|
||||
|
||||
ifneq ($(filter SOLENOID, $(HAPTIC_ENABLE)), )
|
||||
SRC += solenoid.c
|
||||
OPT_DEFS += -DSOLENOID_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(HD44780_ENABLE)), yes)
|
||||
SRC += drivers/avr/hd44780.c
|
||||
OPT_DEFS += -DHD44780_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(VELOCIKEY_ENABLE)), yes)
|
||||
OPT_DEFS += -DVELOCIKEY_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/velocikey.c
|
||||
@@ -409,26 +345,11 @@ ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/dynamic_keymap.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(LEADER_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c
|
||||
OPT_DEFS += -DLEADER_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/dip_switch.c
|
||||
OPT_DEFS += -DDIP_SWITCH_ENABLE
|
||||
OPT_DEFS += -DDIP_SWITCH_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/dip_switch.c
|
||||
endif
|
||||
|
||||
include $(DRIVER_PATH)/qwiic/qwiic.mk
|
||||
|
||||
QUANTUM_SRC:= \
|
||||
$(QUANTUM_DIR)/quantum.c \
|
||||
$(QUANTUM_DIR)/keymap_common.c \
|
||||
$(QUANTUM_DIR)/keycode_config.c
|
||||
|
||||
|
||||
|
||||
VALID_CUSTOM_MATRIX_TYPES:= yes lite no
|
||||
|
||||
CUSTOM_MATRIX ?= no
|
||||
@@ -486,6 +407,29 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
|
||||
COMMON_VPATH += $(QUANTUM_PATH)/split_common
|
||||
endif
|
||||
|
||||
HAPTIC_ENABLE ?= no
|
||||
ifneq ($(strip $(HAPTIC_ENABLE)),no)
|
||||
COMMON_VPATH += $(DRIVER_PATH)/haptic
|
||||
SRC += haptic.c
|
||||
OPT_DEFS += -DHAPTIC_ENABLE
|
||||
endif
|
||||
|
||||
ifneq ($(filter DRV2605L, $(HAPTIC_ENABLE)), )
|
||||
SRC += DRV2605L.c
|
||||
QUANTUM_LIB_SRC += i2c_master.c
|
||||
OPT_DEFS += -DDRV2605L
|
||||
endif
|
||||
|
||||
ifneq ($(filter SOLENOID, $(HAPTIC_ENABLE)), )
|
||||
SRC += solenoid.c
|
||||
OPT_DEFS += -DSOLENOID_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(HD44780_ENABLE)), yes)
|
||||
SRC += drivers/avr/hd44780.c
|
||||
OPT_DEFS += -DHD44780_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
|
||||
OPT_DEFS += -DOLED_DRIVER_ENABLE
|
||||
COMMON_VPATH += $(DRIVER_PATH)/oled
|
||||
@@ -493,10 +437,34 @@ ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
|
||||
SRC += oled_driver.c
|
||||
endif
|
||||
|
||||
include $(DRIVER_PATH)/qwiic/qwiic.mk
|
||||
|
||||
ifeq ($(strip $(UCIS_ENABLE)), yes)
|
||||
OPT_DEFS += -DUCIS_ENABLE
|
||||
UNICODE_COMMON := yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
|
||||
OPT_DEFS += -DUNICODEMAP_ENABLE
|
||||
UNICODE_COMMON := yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(UNICODE_ENABLE)), yes)
|
||||
OPT_DEFS += -DUNICODE_ENABLE
|
||||
UNICODE_COMMON := yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(UNICODE_COMMON)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
||||
endif
|
||||
|
||||
SPACE_CADET_ENABLE ?= yes
|
||||
ifeq ($(strip $(SPACE_CADET_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c
|
||||
OPT_DEFS += -DSPACE_CADET_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c
|
||||
OPT_DEFS += -DSPACE_CADET_ENABLE
|
||||
endif
|
||||
|
||||
MAGIC_ENABLE ?= yes
|
||||
@@ -515,3 +483,31 @@ ifeq ($(strip $(DYNAMIC_MACRO_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_dynamic_macro.c
|
||||
OPT_DEFS += -DDYNAMIC_MACRO_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(COMBO_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
|
||||
OPT_DEFS += -DCOMBO_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
|
||||
OPT_DEFS += -DTAP_DANCE_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(KEY_LOCK_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_key_lock.c
|
||||
OPT_DEFS += -DKEY_LOCK_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(LEADER_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c
|
||||
OPT_DEFS += -DLEADER_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
|
||||
OPT_DEFS += -DAUTO_SHIFT_ENABLE
|
||||
ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes)
|
||||
OPT_DEFS += -DAUTO_SHIFT_MODIFIERS
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -123,7 +123,7 @@ If you would like to change the hotkey assignments for Bootmagic, `#define` thes
|
||||
|
||||
# Bootmagic Lite :id=bootmagic-lite
|
||||
|
||||
In addition to the full blown Bootmagic feature, is the Bootmagic Lite feature that only handles jumping into the bootloader. This is great for boards that don't have a physical reset button but you need a way to jump into the bootloader, and don't want to deal with the headache that Bootmagic can cause.
|
||||
In addition to the full blown Bootmagic feature, is the Bootmagic Lite feature that only handles jumping into the bootloader. This is great for boards that don't have a physical reset button but you need a way to jump into the bootloader, and don't want to deal with the headache that Bootmagic can cause.
|
||||
|
||||
To enable this version of Bootmagic, you need to enable it in your `rules.mk` with:
|
||||
|
||||
@@ -131,7 +131,7 @@ To enable this version of Bootmagic, you need to enable it in your `rules.mk` wi
|
||||
BOOTMAGIC_ENABLE = lite
|
||||
```
|
||||
|
||||
Additionally, you may want to specify which key to use. This is especially useful for keyboards that have unusual matrices. To do so, you need to specify the row and column of the key that you want to use. Add these entries to your `config.h` file:
|
||||
Additionally, you may want to specify which key to use. This is especially useful for keyboards that have unusual matrices. To do so, you need to specify the row and column of the key that you want to use. Add these entries to your `config.h` file:
|
||||
|
||||
```c
|
||||
#define BOOTMAGIC_LITE_ROW 0
|
||||
@@ -144,9 +144,20 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard
|
||||
|
||||
!> Using bootmagic lite will **always reset** the EEPROM, so you will lose any settings that have been saved.
|
||||
|
||||
## Split Keyboards
|
||||
|
||||
When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. This To do so, add these entries to your `config.h` file:
|
||||
|
||||
```c
|
||||
#define BOOTMAGIC_LITE_ROW_RIGHT 4
|
||||
#define BOOTMAGIC_LITE_COLUMN_RIGHT 1
|
||||
```
|
||||
|
||||
By default, these values are not set.
|
||||
|
||||
## Advanced Bootmagic Lite
|
||||
|
||||
The `bootmagic_lite` function is defined weakly, so that you can replace this in your code, if you need. A great example of this is the Zeal60 boards that have some additional handling needed.
|
||||
The `bootmagic_lite` function is defined weakly, so that you can replace this in your code, if you need. A great example of this is the Zeal60 boards that have some additional handling needed.
|
||||
|
||||
To replace the function, all you need to do is add something like this to your code:
|
||||
|
||||
@@ -163,4 +174,4 @@ void bootmagic_lite(void) {
|
||||
}
|
||||
```
|
||||
|
||||
You can additional feature here. For instance, resetting the eeprom or requiring additional keys to be pressed to trigger bootmagic. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
|
||||
You can additional feature here. For instance, resetting the eeprom or requiring additional keys to be pressed to trigger bootmagic. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
|
||||
|
||||
@@ -175,23 +175,23 @@ const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64};
|
||||
## Lighting Layers
|
||||
|
||||
By including `#define RGBLIGHT_LAYERS` in your `config.h` file you can enable lighting layers. These make
|
||||
it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do.
|
||||
it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do.
|
||||
|
||||
To define a layer, we modify `keymap.c` to list out LED ranges and the colors we want to overlay on them using an array of `rgblight_segment_t` using the `RGBLIGHT_LAYER_SEGMENTS` macro. We can define multiple layers and enable/disable them independently:
|
||||
|
||||
```c
|
||||
// Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore!
|
||||
const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{6, 4, HSV_RED}, // Light 4 LEDs, starting with LED 6
|
||||
{12, 4, HSV_RED} // Light 4 LEDs, starting with LED 12
|
||||
{6, 4, HSV_RED}, // Light 4 LEDs, starting with LED 6
|
||||
{12, 4, HSV_RED} // Light 4 LEDs, starting with LED 12
|
||||
);
|
||||
// Light LEDs 9 & 10 in cyan when keyboard layer 1 is active
|
||||
const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{9, 2, HSV_CYAN}
|
||||
{9, 2, HSV_CYAN}
|
||||
);
|
||||
// Light LEDs 11 & 12 in purple when keyboard layer 2 is active
|
||||
const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{11, 2, HSV_PURPLE},
|
||||
{11, 2, HSV_PURPLE}
|
||||
);
|
||||
// etc..
|
||||
```
|
||||
@@ -201,14 +201,14 @@ We combine these layers into an array using the `RGBLIGHT_LAYERS_LIST` macro, an
|
||||
```c
|
||||
// Now define the array of layers. Later layers take precedence
|
||||
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
|
||||
my_capslock_layer,
|
||||
my_layer1_layer, // Overrides caps lock layer
|
||||
my_layer2_layer // Overrides other layers
|
||||
my_capslock_layer,
|
||||
my_layer1_layer, // Overrides caps lock layer
|
||||
my_layer2_layer // Overrides other layers
|
||||
);
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
// Enable the LED layers
|
||||
rgblight_layers = my_rgb_layers;
|
||||
// Enable the LED layers
|
||||
rgblight_layers = my_rgb_layers;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -216,15 +216,15 @@ Finally, we enable and disable the lighting layers whenever the state of the key
|
||||
|
||||
```c
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
// Both layers will light up if both kb layers are active
|
||||
rgblight_set_layer_state(1, layer_state_cmp(state, 1));
|
||||
rgblight_set_layer_state(2, layer_state_cmp(state, 2));
|
||||
return state;
|
||||
// Both layers will light up if both kb layers are active
|
||||
rgblight_set_layer_state(1, layer_state_cmp(state, 1));
|
||||
rgblight_set_layer_state(2, layer_state_cmp(state, 2));
|
||||
return state;
|
||||
}
|
||||
|
||||
bool led_update_user(led_t led_state) {
|
||||
rgblight_set_layer_state(0, led_state.caps_lock);
|
||||
return true;
|
||||
rgblight_set_layer_state(0, led_state.caps_lock);
|
||||
return true;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Eclipse を使った ARM デバッグ
|
||||
|
||||
<!---
|
||||
original document: eae21eed7:docs/arm_debugging.md
|
||||
git diff eae21eed7 HEAD -- docs/arm_debugging.md | cat
|
||||
original document: 0.8.58:docs/arm_debugging.md
|
||||
git diff 0.8.58 HEAD -- docs/arm_debugging.md | cat
|
||||
-->
|
||||
|
||||
このページでは、SWD アダプタとオープンソース/フリーツールを使って ARM MCU をデバッグするためのセットアップ方法について説明します。このガイドでは、GNU MCU Eclipse IDE for C/C++ Developers および OpenOCD を必要な依存関係と一緒にインストールします。
|
||||
@@ -60,7 +60,7 @@ Java は Eclipse で必要とされるため、[ここ](https://www.oracle.com/t
|
||||
|
||||
Eclipse に QMK をビルドしようとするデバイスを教える必要があります。QMK フォルダを右クリック -> Properties -> C/C++ Build -> Settings を選択します。Devices タブを選択し、Devices の下から MCU の適切な種類を選択します。私の例では、STM32F303CC です。
|
||||
|
||||
この間に、Build コマンドもセットアップしましょう。C/C++ Build を選択し、Behavior タブを選択します。build コマンドのところで、`all` を必要な make コマンドに置き換えます。例えば、rev6 Planck の default キーマップの場合、これは `planck/rev6:default` になります。Apply and Close を選択します。
|
||||
この間に、Build コマンドもセットアップしましょう。C/C++ Build を選択し、Behavior タブを選択します。Build コマンドのところで、`all` を必要な make コマンドに置き換えます。例えば、rev6 Planck の default キーマップの場合、これは `planck/rev6:default` になります。Apply and Close を選択します。
|
||||
|
||||
## ビルド
|
||||
|
||||
@@ -70,13 +70,13 @@ Eclipse に QMK をビルドしようとするデバイスを教える必要が
|
||||
|
||||
### デバッガの接続
|
||||
|
||||
ARM MCU は、クロック信号(SWCLK) とデータ信号(SWDIO) で構成される Single Wire Debug (SWD) プロトコルを使います。MCU を 完全に操作するには、この2本のワイヤとグラウンドを接続するだけで十分です。ここでは、キーボードは USB を介して電力が供給されると想定しています。手動でリセットボタンを使えるため、RESET 信号は必要ありません。より高度なセットアップのために printf と scanf をホストに非同期にパイプする SWO 信号を使用できますが、私たちのセットアップでは無視します。
|
||||
ARM MCU は、クロック信号(SWCLK) とデータ信号(SWDIO) で構成される Single Wire Debug (SWD) プロトコルを使います。MCU を完全に操作するには、この2本のワイヤとグラウンドを接続するだけで十分です。ここでは、キーボードは USB を介して電力が供給されると想定しています。手動でリセットボタンを使えるため、RESET 信号は必要ありません。より高度なセットアップのために printf と scanf をホストに非同期にパイプする SWO 信号を使用できますが、私たちのセットアップでは無視します。
|
||||
|
||||
注意: SWCLK と SWDIO ピンがキーボードのマトリックスで使われていないことを確認してください。もし使われている場合は、一時的に他のピンに切り替えることができます。
|
||||
|
||||
### デバッガの設定
|
||||
|
||||
QMK フォルダを右クリックし、Debug As -> Debug Configurations... を選択します。ここで、GDB OpenOCD Debugging をダブルクリックします。Debugger タブを選択し、MCU に必要な設定を入力します。これを見つけるにはいじったりググったりする必要があるかもしれません。STM32F3 用のデフォルトスクリプトは stm32f3discovery.cfg と呼ばれます。OpenOCD に伝えるには、Config options で `-f board/stm32f3discovery.cfg` と入力します。
|
||||
QMK フォルダを右クリックし、Debug As -> Debug Configurations... を選択します。ここで、GDB OpenOCD Debugging をダブルクリックします。Debugger タブを選択し、MCU に必要な設定を入力します。これを見つけるにはいじったりググったりする必要があるかもしれません。STM32F3 用のデフォルトスクリプトは `stm32f3discovery.cfg` と呼ばれます。OpenOCD に伝えるには、Config options で `-f board/stm32f3discovery.cfg` と入力します。
|
||||
|
||||
注意: 私の場合、この設定スクリプトはリセット操作を無効にするために編集が必要です。スクリプトの場所は、通常はパス `openocd/version/.content/scripts/board` の下の実際の実行可能フィールドの中で見つかります。ここで、私は `reset_config srst_only` を `reset_config none` に編集しました。
|
||||
|
||||
@@ -86,7 +86,7 @@ Apply and Close を選択します。
|
||||
|
||||
キーボードをリセットしてください。
|
||||
|
||||
虫アイコンをクリックし、もし全てうまく行けば Debug パースペクティブに移動します。ここでは、main 関数の最初でプログラムカウンタが停止するので、Play ボタンを押します。全てのデバッガのほとんどの機能は ARM MCU で動作しますが、正確な詳細については google があなたのお友達です!
|
||||
虫アイコンをクリックし、もし全てうまく行けば Debug パースペクティブに移動します。ここでは、main 関数の最初でプログラムカウンタが停止し、Play ボタンが押されるのを待ちます。全てのデバッガのほとんどの機能は Arm MCU で動作しますが、正確な詳細については Google があなたのお友達です!
|
||||
|
||||
|
||||
ハッピーデバッギング!
|
||||
|
||||
57
keyboards/claw44/rev1/info.json
Normal file
57
keyboards/claw44/rev1/info.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"keyboard_name": "Claw44 rev1",
|
||||
"url": "",
|
||||
"maintainer": "yfuku",
|
||||
"width": 17.5,
|
||||
"height": 4.5,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"L00", "x":0, "y":1.18},
|
||||
{"label":"L01", "x":1, "y":1.03},
|
||||
{"label":"L02", "x":2, "y":0.35},
|
||||
{"label":"L03", "x":3, "y":0},
|
||||
{"label":"L04", "x":4, "y":0.05},
|
||||
{"label":"L05", "x":5, "y":0.10},
|
||||
{"label":"R00", "x":11.5, "y":0.10},
|
||||
{"label":"R01", "x":12.5, "y":0.05},
|
||||
{"label":"R02", "x":13.5, "y":0},
|
||||
{"label":"R03", "x":14.5, "y":0.35},
|
||||
{"label":"R04", "x":15.5, "y":1.08},
|
||||
{"label":"R05", "x":16.5, "y":1.18},
|
||||
{"label":"L10", "x":0, "y":2.18},
|
||||
{"label":"L11", "x":1, "y":2.03},
|
||||
{"label":"L12", "x":2, "y":1.35},
|
||||
{"label":"L13", "x":3, "y":1},
|
||||
{"label":"L14", "x":4, "y":1.05},
|
||||
{"label":"L15", "x":5, "y":1.10},
|
||||
{"label":"R10", "x":11.5, "y":1.10},
|
||||
{"label":"R11", "x":12.5, "y":1.05},
|
||||
{"label":"R12", "x":13.5, "y":1},
|
||||
{"label":"R13", "x":14.5, "y":1.35},
|
||||
{"label":"R14", "x":15.5, "y":2.03},
|
||||
{"label":"R15", "x":16.5, "y":2.18},
|
||||
{"label":"L20", "x":0, "y":3.18},
|
||||
{"label":"L21", "x":1, "y":3.03},
|
||||
{"label":"L22", "x":2, "y":2.35},
|
||||
{"label":"L23", "x":3, "y":2},
|
||||
{"label":"L24", "x":4, "y":2.05},
|
||||
{"label":"L25", "x":5, "y":2.10},
|
||||
{"label":"R20", "x":11.5, "y":2.10},
|
||||
{"label":"R21", "x":12.5, "y":2.05},
|
||||
{"label":"R22", "x":13.5, "y":2},
|
||||
{"label":"R23", "x":14.5, "y":2.35},
|
||||
{"label":"R24", "x":15.5, "y":3.03},
|
||||
{"label":"R25", "x":16.5, "y":3.18},
|
||||
{"label":"L30", "x":4, "y":3.05},
|
||||
{"label":"L31", "x":5, "y":3.10},
|
||||
{"label":"L32", "x":6, "y":3.20, "w":1.25},
|
||||
{"label":"L33", "x":7.25, "y":3.50},
|
||||
{"label":"R30", "x":9.25, "y":3.50},
|
||||
{"label":"R31", "x":10.25, "y":3.20, "w":1.25},
|
||||
{"label":"R32", "x":11.5, "y":3.10},
|
||||
{"label":"R33", "x":12.5, "y":3.05}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,84 +1,371 @@
|
||||
{
|
||||
"keyboard_name": "lodestone",
|
||||
"url": "https://prototypist.net/",
|
||||
"url": "https://prototypist.net/",
|
||||
"maintainer": "Flexerm",
|
||||
"width": 16,
|
||||
"height": 5,
|
||||
"width": 16,
|
||||
"height": 5,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label":"K00 (B3,B2)", "x":0, "y":0},
|
||||
{"label":"K01 (B3,F5)", "x":1, "y":0},
|
||||
{"label":"K02 (B3,F6)", "x":2, "y":0},
|
||||
{"label":"K03 (B3,D0)", "x":3, "y":0},
|
||||
{"label":"K04 (B3,D1)", "x":4, "y":0},
|
||||
{"label":"K05 (B3,D2)", "x":5, "y":0},
|
||||
{"label":"K06 (B3,D3)", "x":6, "y":0},
|
||||
{"label":"K07 (B3,D5)", "x":7, "y":0},
|
||||
{"label":"K08 (B3,D4)", "x":8, "y":0},
|
||||
{"label":"K09 (B3,D6)", "x":9, "y":0},
|
||||
{"label":"K0A (B3,D7)", "x":10, "y":0},
|
||||
{"label":"K0B (B3,B4)", "x":11, "y":0},
|
||||
{"label":"K0C (B3,B5)", "x":12, "y":0},
|
||||
{"label":"K0D (B3,B6)", "x":13, "y":0},
|
||||
{"label":"K0E (B3,C6)", "x":14, "y":0},
|
||||
{"label":"K0F (B3,C7)", "x":15, "y":0},
|
||||
{"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5},
|
||||
{"label":"K11 (B7,F5)", "x":1.5, "y":1},
|
||||
{"label":"K12 (B7,F6)", "x":2.5, "y":1},
|
||||
{"label":"K13 (B7,D0)", "x":3.5, "y":1},
|
||||
{"label":"K14 (B7,D1)", "x":4.5, "y":1},
|
||||
{"label":"K15 (B7,D2)", "x":5.5, "y":1},
|
||||
{"label":"K16 (B7,D3)", "x":6.5, "y":1},
|
||||
{"label":"K17 (B7,D5)", "x":7.5, "y":1},
|
||||
{"label":"K18 (B7,D4)", "x":8.5, "y":1},
|
||||
{"label":"K19 (B7,D6)", "x":9.5, "y":1},
|
||||
{"label":"K1A (B7,D7)", "x":10.5, "y":1},
|
||||
{"label":"K1B (B7,B4)", "x":11.5, "y":1},
|
||||
{"label":"K1C (B7,B5)", "x":12.5, "y":1},
|
||||
{"label":"K1D (B7,B6)", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"K1F (B7,C7)", "x":15, "y":1},
|
||||
{"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75},
|
||||
{"label":"K21 (F0,F5)", "x":1.75, "y":2},
|
||||
{"label":"K22 (F0,F6)", "x":2.75, "y":2},
|
||||
{"label":"K23 (F0,D0)", "x":3.75, "y":2},
|
||||
{"label":"K24 (F0,D1)", "x":4.75, "y":2},
|
||||
{"label":"K25 (F0,D2)", "x":5.75, "y":2},
|
||||
{"label":"K26 (F0,D3)", "x":6.75, "y":2},
|
||||
{"label":"K27 (F0,D5)", "x":7.75, "y":2},
|
||||
{"label":"K28 (F0,D4)", "x":8.75, "y":2},
|
||||
{"label":"K29 (F0,D6)", "x":9.75, "y":2},
|
||||
{"label":"K2A (F0,D7)", "x":10.75, "y":2},
|
||||
{"label":"K2B (F0,B4)", "x":11.75, "y":2},
|
||||
{"label":"K2C (F0,B5)", "x":12.75, "y":2},
|
||||
{"label":"K2D (F0,B6)", "x":13.75, "y":2, "w":1.25},
|
||||
{"label":"K2F (F0,C7)", "x":15, "y":2},
|
||||
{"label":"K30 (F1,B2)", "x":0, "y":3, "w":1.25},
|
||||
{"label":"K31 (F1,F5)", "x":1.25, "y":3},
|
||||
{"label":"K32 (F1,F6)", "x":2.25, "y":3},
|
||||
{"label":"K33 (F1,D0)", "x":3.25, "y":3},
|
||||
{"label":"K34 (F1,D1)", "x":4.25, "y":3},
|
||||
{"label":"K35 (F1,D2)", "x":5.25, "y":3},
|
||||
{"label":"K36 (F1,D3)", "x":6.25, "y":3},
|
||||
{"label":"K37 (F1,D5)", "x":7.25, "y":3},
|
||||
{"label":"K38 (F1,D4)", "x":8.25, "y":3},
|
||||
{"label":"K39 (F1,D6)", "x":9.25, "y":3},
|
||||
{"label":"K3A (F1,D7)", "x":10.25, "y":3},
|
||||
{"label":"K3B (F1,B4)", "x":11.25, "y":3},
|
||||
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
||||
{"label":"K3F (F1,C7)", "x":15, "y":3},
|
||||
{"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
|
||||
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25},
|
||||
{"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"K4D (F4,B6)", "x":13, "y":4},
|
||||
{"label":"K4E (F4,C6)", "x":14, "y":4},
|
||||
{"label":"K4F (F4,C7)", "x":15, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
"layout": [
|
||||
{"label":"K00 (B3,B2)", "x":0, "y":0},
|
||||
{"label":"K01 (B3,F5)", "x":1, "y":0},
|
||||
{"label":"K02 (B3,F6)", "x":2, "y":0},
|
||||
{"label":"K03 (B3,D0)", "x":3, "y":0},
|
||||
{"label":"K04 (B3,D1)", "x":4, "y":0},
|
||||
{"label":"K05 (B3,D2)", "x":5, "y":0},
|
||||
{"label":"K06 (B3,D3)", "x":6, "y":0},
|
||||
{"label":"K07 (B3,D5)", "x":7, "y":0},
|
||||
{"label":"K08 (B3,D4)", "x":8, "y":0},
|
||||
{"label":"K09 (B3,D6)", "x":9, "y":0},
|
||||
{"label":"K0A (B3,D7)", "x":10, "y":0},
|
||||
{"label":"K0B (B3,B4)", "x":11, "y":0},
|
||||
{"label":"K0C (B3,B5)", "x":12, "y":0},
|
||||
{"label":"K0D (B3,B6)", "x":13, "y":0},
|
||||
{"label":"K0E (B3,C6)", "x":14, "y":0},
|
||||
{"label":"K0F (B3,C7)", "x":15, "y":0},
|
||||
{"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5},
|
||||
{"label":"K11 (B7,F5)", "x":1.5, "y":1},
|
||||
{"label":"K12 (B7,F6)", "x":2.5, "y":1},
|
||||
{"label":"K13 (B7,D0)", "x":3.5, "y":1},
|
||||
{"label":"K14 (B7,D1)", "x":4.5, "y":1},
|
||||
{"label":"K15 (B7,D2)", "x":5.5, "y":1},
|
||||
{"label":"K16 (B7,D3)", "x":6.5, "y":1},
|
||||
{"label":"K17 (B7,D5)", "x":7.5, "y":1},
|
||||
{"label":"K18 (B7,D4)", "x":8.5, "y":1},
|
||||
{"label":"K19 (B7,D6)", "x":9.5, "y":1},
|
||||
{"label":"K1A (B7,D7)", "x":10.5, "y":1},
|
||||
{"label":"K1B (B7,B4)", "x":11.5, "y":1},
|
||||
{"label":"K1C (B7,B5)", "x":12.5, "y":1},
|
||||
{"label":"K1D (B7,B6)", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"K1F (B7,C7)", "x":15, "y":1},
|
||||
{"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75},
|
||||
{"label":"K21 (F0,F5)", "x":1.75, "y":2},
|
||||
{"label":"K22 (F0,F6)", "x":2.75, "y":2},
|
||||
{"label":"K23 (F0,D0)", "x":3.75, "y":2},
|
||||
{"label":"K24 (F0,D1)", "x":4.75, "y":2},
|
||||
{"label":"K25 (F0,D2)", "x":5.75, "y":2},
|
||||
{"label":"K26 (F0,D3)", "x":6.75, "y":2},
|
||||
{"label":"K27 (F0,D5)", "x":7.75, "y":2},
|
||||
{"label":"K28 (F0,D4)", "x":8.75, "y":2},
|
||||
{"label":"K29 (F0,D6)", "x":9.75, "y":2},
|
||||
{"label":"K2A (F0,D7)", "x":10.75, "y":2},
|
||||
{"label":"K2B (F0,B4)", "x":11.75, "y":2},
|
||||
{"label":"K2C (F0,B5)", "x":12.75, "y":2},
|
||||
{"label":"K2D (F0,B6)", "x":13.75, "y":2, "w":1.25},
|
||||
{"label":"K2F (F0,C7)", "x":15, "y":2},
|
||||
{"label":"K30 (F1,B2)", "x":0, "y":3, "w":1.25},
|
||||
{"label":"K31 (F1,F5)", "x":1.25, "y":3},
|
||||
{"label":"K32 (F1,F6)", "x":2.25, "y":3},
|
||||
{"label":"K33 (F1,D0)", "x":3.25, "y":3},
|
||||
{"label":"K34 (F1,D1)", "x":4.25, "y":3},
|
||||
{"label":"K35 (F1,D2)", "x":5.25, "y":3},
|
||||
{"label":"K36 (F1,D3)", "x":6.25, "y":3},
|
||||
{"label":"K37 (F1,D5)", "x":7.25, "y":3},
|
||||
{"label":"K38 (F1,D4)", "x":8.25, "y":3},
|
||||
{"label":"K39 (F1,D6)", "x":9.25, "y":3},
|
||||
{"label":"K3A (F1,D7)", "x":10.25, "y":3},
|
||||
{"label":"K3B (F1,B4)", "x":11.25, "y":3},
|
||||
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
||||
{"label":"K3F (F1,C7)", "x":15, "y":3},
|
||||
{"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
|
||||
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25},
|
||||
{"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"K4D (F4,B6)", "x":13, "y":4},
|
||||
{"label":"K4E (F4,C6)", "x":14, "y":4},
|
||||
{"label":"K4F (F4,C7)", "x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_blocker": {
|
||||
"layout": [
|
||||
{"label":"K00 (B3,B2)", "x":0, "y":0},
|
||||
{"label":"K01 (B3,F5)", "x":1, "y":0},
|
||||
{"label":"K02 (B3,F6)", "x":2, "y":0},
|
||||
{"label":"K03 (B3,D0)", "x":3, "y":0},
|
||||
{"label":"K04 (B3,D1)", "x":4, "y":0},
|
||||
{"label":"K05 (B3,D2)", "x":5, "y":0},
|
||||
{"label":"K06 (B3,D3)", "x":6, "y":0},
|
||||
{"label":"K07 (B3,D5)", "x":7, "y":0},
|
||||
{"label":"K08 (B3,D4)", "x":8, "y":0},
|
||||
{"label":"K09 (B3,D6)", "x":9, "y":0},
|
||||
{"label":"K0A (B3,D7)", "x":10, "y":0},
|
||||
{"label":"K0B (B3,B4)", "x":11, "y":0},
|
||||
{"label":"K0C (B3,B5)", "x":12, "y":0},
|
||||
{"label":"K0D (B3,B6)", "x":13, "y":0, "w":2},
|
||||
{"label":"K0F (B3,C7)", "x":15, "y":0},
|
||||
{"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5},
|
||||
{"label":"K11 (B7,F5)", "x":1.5, "y":1},
|
||||
{"label":"K12 (B7,F6)", "x":2.5, "y":1},
|
||||
{"label":"K13 (B7,D0)", "x":3.5, "y":1},
|
||||
{"label":"K14 (B7,D1)", "x":4.5, "y":1},
|
||||
{"label":"K15 (B7,D2)", "x":5.5, "y":1},
|
||||
{"label":"K16 (B7,D3)", "x":6.5, "y":1},
|
||||
{"label":"K17 (B7,D5)", "x":7.5, "y":1},
|
||||
{"label":"K18 (B7,D4)", "x":8.5, "y":1},
|
||||
{"label":"K19 (B7,D6)", "x":9.5, "y":1},
|
||||
{"label":"K1A (B7,D7)", "x":10.5, "y":1},
|
||||
{"label":"K1B (B7,B4)", "x":11.5, "y":1},
|
||||
{"label":"K1C (B7,B5)", "x":12.5, "y":1},
|
||||
{"label":"K1D (B7,B6)", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"K1F (B7,C7)", "x":15, "y":1},
|
||||
{"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75},
|
||||
{"label":"K21 (F0,F5)", "x":1.75, "y":2},
|
||||
{"label":"K22 (F0,F6)", "x":2.75, "y":2},
|
||||
{"label":"K23 (F0,D0)", "x":3.75, "y":2},
|
||||
{"label":"K24 (F0,D1)", "x":4.75, "y":2},
|
||||
{"label":"K25 (F0,D2)", "x":5.75, "y":2},
|
||||
{"label":"K26 (F0,D3)", "x":6.75, "y":2},
|
||||
{"label":"K27 (F0,D5)", "x":7.75, "y":2},
|
||||
{"label":"K28 (F0,D4)", "x":8.75, "y":2},
|
||||
{"label":"K29 (F0,D6)", "x":9.75, "y":2},
|
||||
{"label":"K2A (F0,D7)", "x":10.75, "y":2},
|
||||
{"label":"K2B (F0,B4)", "x":11.75, "y":2},
|
||||
{"label":"K2D (F0,B6)", "x":12.75, "y":2, "w":2.25},
|
||||
{"label":"K2F (F0,C7)", "x":15, "y":2},
|
||||
{"label":"K30 (F1,B2)", "x":0, "y":3, "w":2.25},
|
||||
{"label":"K32 (F1,F6)", "x":2.25, "y":3},
|
||||
{"label":"K33 (F1,D0)", "x":3.25, "y":3},
|
||||
{"label":"K34 (F1,D1)", "x":4.25, "y":3},
|
||||
{"label":"K35 (F1,D2)", "x":5.25, "y":3},
|
||||
{"label":"K36 (F1,D3)", "x":6.25, "y":3},
|
||||
{"label":"K37 (F1,D5)", "x":7.25, "y":3},
|
||||
{"label":"K38 (F1,D4)", "x":8.25, "y":3},
|
||||
{"label":"K39 (F1,D6)", "x":9.25, "y":3},
|
||||
{"label":"K3A (F1,D7)", "x":10.25, "y":3},
|
||||
{"label":"K3B (F1,B4)", "x":11.25, "y":3},
|
||||
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
||||
{"label":"K3F (F1,C7)", "x":15, "y":3},
|
||||
{"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
|
||||
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25},
|
||||
{"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"K4D (F4,B6)", "x":13, "y":4},
|
||||
{"label":"K4E (F4,C6)", "x":14, "y":4},
|
||||
{"label":"K4F (F4,C7)", "x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_blocker_split_bs": {
|
||||
"layout": [
|
||||
{"label":"K00 (B3,B2)", "x":0, "y":0},
|
||||
{"label":"K01 (B3,F5)", "x":1, "y":0},
|
||||
{"label":"K02 (B3,F6)", "x":2, "y":0},
|
||||
{"label":"K03 (B3,D0)", "x":3, "y":0},
|
||||
{"label":"K04 (B3,D1)", "x":4, "y":0},
|
||||
{"label":"K05 (B3,D2)", "x":5, "y":0},
|
||||
{"label":"K06 (B3,D3)", "x":6, "y":0},
|
||||
{"label":"K07 (B3,D5)", "x":7, "y":0},
|
||||
{"label":"K08 (B3,D4)", "x":8, "y":0},
|
||||
{"label":"K09 (B3,D6)", "x":9, "y":0},
|
||||
{"label":"K0A (B3,D7)", "x":10, "y":0},
|
||||
{"label":"K0B (B3,B4)", "x":11, "y":0},
|
||||
{"label":"K0C (B3,B5)", "x":12, "y":0},
|
||||
{"label":"K0D (B3,B6)", "x":13, "y":0},
|
||||
{"label":"K0E (B3,C6)", "x":14, "y":0},
|
||||
{"label":"K0F (B3,C7)", "x":15, "y":0},
|
||||
{"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5},
|
||||
{"label":"K11 (B7,F5)", "x":1.5, "y":1},
|
||||
{"label":"K12 (B7,F6)", "x":2.5, "y":1},
|
||||
{"label":"K13 (B7,D0)", "x":3.5, "y":1},
|
||||
{"label":"K14 (B7,D1)", "x":4.5, "y":1},
|
||||
{"label":"K15 (B7,D2)", "x":5.5, "y":1},
|
||||
{"label":"K16 (B7,D3)", "x":6.5, "y":1},
|
||||
{"label":"K17 (B7,D5)", "x":7.5, "y":1},
|
||||
{"label":"K18 (B7,D4)", "x":8.5, "y":1},
|
||||
{"label":"K19 (B7,D6)", "x":9.5, "y":1},
|
||||
{"label":"K1A (B7,D7)", "x":10.5, "y":1},
|
||||
{"label":"K1B (B7,B4)", "x":11.5, "y":1},
|
||||
{"label":"K1C (B7,B5)", "x":12.5, "y":1},
|
||||
{"label":"K1D (B7,B6)", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"K1F (B7,C7)", "x":15, "y":1},
|
||||
{"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75},
|
||||
{"label":"K21 (F0,F5)", "x":1.75, "y":2},
|
||||
{"label":"K22 (F0,F6)", "x":2.75, "y":2},
|
||||
{"label":"K23 (F0,D0)", "x":3.75, "y":2},
|
||||
{"label":"K24 (F0,D1)", "x":4.75, "y":2},
|
||||
{"label":"K25 (F0,D2)", "x":5.75, "y":2},
|
||||
{"label":"K26 (F0,D3)", "x":6.75, "y":2},
|
||||
{"label":"K27 (F0,D5)", "x":7.75, "y":2},
|
||||
{"label":"K28 (F0,D4)", "x":8.75, "y":2},
|
||||
{"label":"K29 (F0,D6)", "x":9.75, "y":2},
|
||||
{"label":"K2A (F0,D7)", "x":10.75, "y":2},
|
||||
{"label":"K2B (F0,B4)", "x":11.75, "y":2},
|
||||
{"label":"K2D (F0,B6)", "x":12.75, "y":2, "w":2.25},
|
||||
{"label":"K2F (F0,C7)", "x":15, "y":2},
|
||||
{"label":"K30 (F1,B2)", "x":0, "y":3, "w":2.25},
|
||||
{"label":"K32 (F1,F6)", "x":2.25, "y":3},
|
||||
{"label":"K33 (F1,D0)", "x":3.25, "y":3},
|
||||
{"label":"K34 (F1,D1)", "x":4.25, "y":3},
|
||||
{"label":"K35 (F1,D2)", "x":5.25, "y":3},
|
||||
{"label":"K36 (F1,D3)", "x":6.25, "y":3},
|
||||
{"label":"K37 (F1,D5)", "x":7.25, "y":3},
|
||||
{"label":"K38 (F1,D4)", "x":8.25, "y":3},
|
||||
{"label":"K39 (F1,D6)", "x":9.25, "y":3},
|
||||
{"label":"K3A (F1,D7)", "x":10.25, "y":3},
|
||||
{"label":"K3B (F1,B4)", "x":11.25, "y":3},
|
||||
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
||||
{"label":"K3F (F1,C7)", "x":15, "y":3},
|
||||
{"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
|
||||
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25},
|
||||
{"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"K4D (F4,B6)", "x":13, "y":4},
|
||||
{"label":"K4E (F4,C6)", "x":14, "y":4},
|
||||
{"label":"K4F (F4,C7)", "x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso_blocker": {
|
||||
"layout": [
|
||||
{"label":"K00 (B3,B2)", "x":0, "y":0},
|
||||
{"label":"K01 (B3,F5)", "x":1, "y":0},
|
||||
{"label":"K02 (B3,F6)", "x":2, "y":0},
|
||||
{"label":"K03 (B3,D0)", "x":3, "y":0},
|
||||
{"label":"K04 (B3,D1)", "x":4, "y":0},
|
||||
{"label":"K05 (B3,D2)", "x":5, "y":0},
|
||||
{"label":"K06 (B3,D3)", "x":6, "y":0},
|
||||
{"label":"K07 (B3,D5)", "x":7, "y":0},
|
||||
{"label":"K08 (B3,D4)", "x":8, "y":0},
|
||||
{"label":"K09 (B3,D6)", "x":9, "y":0},
|
||||
{"label":"K0A (B3,D7)", "x":10, "y":0},
|
||||
{"label":"K0B (B3,B4)", "x":11, "y":0},
|
||||
{"label":"K0C (B3,B5)", "x":12, "y":0},
|
||||
{"label":"K0D (B3,B6)", "x":13, "y":0, "w":2},
|
||||
{"label":"K0F (B3,C7)", "x":15, "y":0},
|
||||
{"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5},
|
||||
{"label":"K11 (B7,F5)", "x":1.5, "y":1},
|
||||
{"label":"K12 (B7,F6)", "x":2.5, "y":1},
|
||||
{"label":"K13 (B7,D0)", "x":3.5, "y":1},
|
||||
{"label":"K14 (B7,D1)", "x":4.5, "y":1},
|
||||
{"label":"K15 (B7,D2)", "x":5.5, "y":1},
|
||||
{"label":"K16 (B7,D3)", "x":6.5, "y":1},
|
||||
{"label":"K17 (B7,D5)", "x":7.5, "y":1},
|
||||
{"label":"K18 (B7,D4)", "x":8.5, "y":1},
|
||||
{"label":"K19 (B7,D6)", "x":9.5, "y":1},
|
||||
{"label":"K1A (B7,D7)", "x":10.5, "y":1},
|
||||
{"label":"K1B (B7,B4)", "x":11.5, "y":1},
|
||||
{"label":"K1C (B7,B5)", "x":12.5, "y":1},
|
||||
{"label":"K1F (B7,C7)", "x":15, "y":1},
|
||||
{"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75},
|
||||
{"label":"K21 (F0,F5)", "x":1.75, "y":2},
|
||||
{"label":"K22 (F0,F6)", "x":2.75, "y":2},
|
||||
{"label":"K23 (F0,D0)", "x":3.75, "y":2},
|
||||
{"label":"K24 (F0,D1)", "x":4.75, "y":2},
|
||||
{"label":"K25 (F0,D2)", "x":5.75, "y":2},
|
||||
{"label":"K26 (F0,D3)", "x":6.75, "y":2},
|
||||
{"label":"K27 (F0,D5)", "x":7.75, "y":2},
|
||||
{"label":"K28 (F0,D4)", "x":8.75, "y":2},
|
||||
{"label":"K29 (F0,D6)", "x":9.75, "y":2},
|
||||
{"label":"K2A (F0,D7)", "x":10.75, "y":2},
|
||||
{"label":"K2B (F0,B4)", "x":11.75, "y":2},
|
||||
{"label":"K2C (F0,B5)", "x":12.75, "y":2},
|
||||
{"label":"K2D (F0,B6)", "x":13.75, "y":1, "w":1.25, "h":2},
|
||||
{"label":"K2F (F0,C7)", "x":15, "y":2},
|
||||
{"label":"K30 (F1,B2)", "x":0, "y":3, "w":1.25},
|
||||
{"label":"K31 (F1,F5)", "x":1.25, "y":3},
|
||||
{"label":"K32 (F1,F6)", "x":2.25, "y":3},
|
||||
{"label":"K33 (F1,D0)", "x":3.25, "y":3},
|
||||
{"label":"K34 (F1,D1)", "x":4.25, "y":3},
|
||||
{"label":"K35 (F1,D2)", "x":5.25, "y":3},
|
||||
{"label":"K36 (F1,D3)", "x":6.25, "y":3},
|
||||
{"label":"K37 (F1,D5)", "x":7.25, "y":3},
|
||||
{"label":"K38 (F1,D4)", "x":8.25, "y":3},
|
||||
{"label":"K39 (F1,D6)", "x":9.25, "y":3},
|
||||
{"label":"K3A (F1,D7)", "x":10.25, "y":3},
|
||||
{"label":"K3B (F1,B4)", "x":11.25, "y":3},
|
||||
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
||||
{"label":"K3F (F1,C7)", "x":15, "y":3},
|
||||
{"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
|
||||
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25},
|
||||
{"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"K4D (F4,B6)", "x":13, "y":4},
|
||||
{"label":"K4E (F4,C6)", "x":14, "y":4},
|
||||
{"label":"K4F (F4,C7)", "x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso_blocker_split_bs": {
|
||||
"layout": [
|
||||
{"label":"K00 (B3,B2)", "x":0, "y":0},
|
||||
{"label":"K01 (B3,F5)", "x":1, "y":0},
|
||||
{"label":"K02 (B3,F6)", "x":2, "y":0},
|
||||
{"label":"K03 (B3,D0)", "x":3, "y":0},
|
||||
{"label":"K04 (B3,D1)", "x":4, "y":0},
|
||||
{"label":"K05 (B3,D2)", "x":5, "y":0},
|
||||
{"label":"K06 (B3,D3)", "x":6, "y":0},
|
||||
{"label":"K07 (B3,D5)", "x":7, "y":0},
|
||||
{"label":"K08 (B3,D4)", "x":8, "y":0},
|
||||
{"label":"K09 (B3,D6)", "x":9, "y":0},
|
||||
{"label":"K0A (B3,D7)", "x":10, "y":0},
|
||||
{"label":"K0B (B3,B4)", "x":11, "y":0},
|
||||
{"label":"K0C (B3,B5)", "x":12, "y":0},
|
||||
{"label":"K0D (B3,B6)", "x":13, "y":0},
|
||||
{"label":"K0E (B3,C6)", "x":14, "y":0},
|
||||
{"label":"K0F (B3,C7)", "x":15, "y":0},
|
||||
{"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5},
|
||||
{"label":"K11 (B7,F5)", "x":1.5, "y":1},
|
||||
{"label":"K12 (B7,F6)", "x":2.5, "y":1},
|
||||
{"label":"K13 (B7,D0)", "x":3.5, "y":1},
|
||||
{"label":"K14 (B7,D1)", "x":4.5, "y":1},
|
||||
{"label":"K15 (B7,D2)", "x":5.5, "y":1},
|
||||
{"label":"K16 (B7,D3)", "x":6.5, "y":1},
|
||||
{"label":"K17 (B7,D5)", "x":7.5, "y":1},
|
||||
{"label":"K18 (B7,D4)", "x":8.5, "y":1},
|
||||
{"label":"K19 (B7,D6)", "x":9.5, "y":1},
|
||||
{"label":"K1A (B7,D7)", "x":10.5, "y":1},
|
||||
{"label":"K1B (B7,B4)", "x":11.5, "y":1},
|
||||
{"label":"K1C (B7,B5)", "x":12.5, "y":1},
|
||||
{"label":"K1F (B7,C7)", "x":15, "y":1},
|
||||
{"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75},
|
||||
{"label":"K21 (F0,F5)", "x":1.75, "y":2},
|
||||
{"label":"K22 (F0,F6)", "x":2.75, "y":2},
|
||||
{"label":"K23 (F0,D0)", "x":3.75, "y":2},
|
||||
{"label":"K24 (F0,D1)", "x":4.75, "y":2},
|
||||
{"label":"K25 (F0,D2)", "x":5.75, "y":2},
|
||||
{"label":"K26 (F0,D3)", "x":6.75, "y":2},
|
||||
{"label":"K27 (F0,D5)", "x":7.75, "y":2},
|
||||
{"label":"K28 (F0,D4)", "x":8.75, "y":2},
|
||||
{"label":"K29 (F0,D6)", "x":9.75, "y":2},
|
||||
{"label":"K2A (F0,D7)", "x":10.75, "y":2},
|
||||
{"label":"K2B (F0,B4)", "x":11.75, "y":2},
|
||||
{"label":"K2C (F0,B5)", "x":12.75, "y":2},
|
||||
{"label":"K2D (F0,B6)", "x":13.75, "y":1, "w":1.25, "h":2},
|
||||
{"label":"K2F (F0,C7)", "x":15, "y":2},
|
||||
{"label":"K30 (F1,B2)", "x":0, "y":3, "w":1.25},
|
||||
{"label":"K31 (F1,F5)", "x":1.25, "y":3},
|
||||
{"label":"K32 (F1,F6)", "x":2.25, "y":3},
|
||||
{"label":"K33 (F1,D0)", "x":3.25, "y":3},
|
||||
{"label":"K34 (F1,D1)", "x":4.25, "y":3},
|
||||
{"label":"K35 (F1,D2)", "x":5.25, "y":3},
|
||||
{"label":"K36 (F1,D3)", "x":6.25, "y":3},
|
||||
{"label":"K37 (F1,D5)", "x":7.25, "y":3},
|
||||
{"label":"K38 (F1,D4)", "x":8.25, "y":3},
|
||||
{"label":"K39 (F1,D6)", "x":9.25, "y":3},
|
||||
{"label":"K3A (F1,D7)", "x":10.25, "y":3},
|
||||
{"label":"K3B (F1,B4)", "x":11.25, "y":3},
|
||||
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"K3E (F1,C6)", "x":14, "y":3},
|
||||
{"label":"K3F (F1,C7)", "x":15, "y":3},
|
||||
{"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
|
||||
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25},
|
||||
{"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"K4D (F4,B6)", "x":13, "y":4},
|
||||
{"label":"K4E (F4,C6)", "x":14, "y":4},
|
||||
{"label":"K4F (F4,C7)", "x":15, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
20
keyboards/flx/lodestone/keymaps/default_ansi/keymap.c
Normal file
20
keyboards/flx/lodestone/keymaps/default_ansi/keymap.c
Normal file
@@ -0,0 +1,20 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// Default layer
|
||||
[0] = LAYOUT_65_ansi_blocker_split_bs(
|
||||
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_BSPC, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
// Fn1 Layer
|
||||
[1] = LAYOUT_65_ansi_blocker_split_bs(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_TRNS,
|
||||
KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
};
|
||||
1
keyboards/flx/lodestone/keymaps/default_ansi/readme.md
Normal file
1
keyboards/flx/lodestone/keymaps/default_ansi/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default ANSI keymap for Lodestone
|
||||
20
keyboards/flx/lodestone/keymaps/default_iso/keymap.c
Normal file
20
keyboards/flx/lodestone/keymaps/default_iso/keymap.c
Normal file
@@ -0,0 +1,20 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// Default layer
|
||||
[0] = LAYOUT_65_iso_blocker_split_bs(
|
||||
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_BSPC, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
// Fn1 Layer
|
||||
[1] = LAYOUT_65_iso_blocker_split_bs(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_TRNS,
|
||||
KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
};
|
||||
1
keyboards/flx/lodestone/keymaps/default_iso/readme.md
Normal file
1
keyboards/flx/lodestone/keymaps/default_iso/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default ISO keymap for Lodestone
|
||||
@@ -35,3 +35,59 @@
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \
|
||||
{ K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, K4E, K4F }, \
|
||||
}
|
||||
|
||||
#define LAYOUT_65_ansi_blocker( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4D, K4E, K4F \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, ___, K1F }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, ___, K2F }, \
|
||||
{ K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \
|
||||
{ K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, K4E, K4F }, \
|
||||
}
|
||||
|
||||
#define LAYOUT_65_ansi_blocker_split_bs( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4D, K4E, K4F \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, ___, K1F }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, ___, K2F }, \
|
||||
{ K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \
|
||||
{ K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, K4E, K4F }, \
|
||||
}
|
||||
|
||||
#define LAYOUT_65_iso_blocker( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4D, K4E, K4F \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, ___, K1F }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \
|
||||
{ K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, K4E, K4F }, \
|
||||
}
|
||||
|
||||
#define LAYOUT_65_iso_blocker_split_bs( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4D, K4E, K4F \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, ___, K1F }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \
|
||||
{ K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, K4E, K4F }, \
|
||||
}
|
||||
|
||||
@@ -31,3 +31,5 @@ AUDIO_ENABLE = no # Audio output on port C6
|
||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
|
||||
LTO_ENABLE = yes
|
||||
|
||||
LAYOUTS = 65_ansi_blocker 65_iso_blocker
|
||||
|
||||
153
quantum/keymap_extras/keymap_finnish.h
Normal file
153
quantum/keymap_extras/keymap_finnish.h
Normal file
@@ -0,0 +1,153 @@
|
||||
/* Copyright 2020
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "keymap.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ § │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ ' │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define FI_SECT KC_GRV // §
|
||||
#define FI_1 KC_1 // 1
|
||||
#define FI_2 KC_2 // 2
|
||||
#define FI_3 KC_3 // 3
|
||||
#define FI_4 KC_4 // 4
|
||||
#define FI_5 KC_5 // 5
|
||||
#define FI_6 KC_6 // 6
|
||||
#define FI_7 KC_7 // 7
|
||||
#define FI_8 KC_8 // 8
|
||||
#define FI_9 KC_9 // 9
|
||||
#define FI_0 KC_0 // 0
|
||||
#define FI_PLUS KC_MINS // +
|
||||
#define FI_ACUT KC_EQL // ´ (dead)
|
||||
// Row 2
|
||||
#define FI_Q KC_Q // Q
|
||||
#define FI_W KC_W // W
|
||||
#define FI_E KC_E // E
|
||||
#define FI_R KC_R // R
|
||||
#define FI_T KC_T // T
|
||||
#define FI_Y KC_Y // Y
|
||||
#define FI_U KC_U // U
|
||||
#define FI_I KC_I // I
|
||||
#define FI_O KC_O // O
|
||||
#define FI_P KC_P // P
|
||||
#define FI_ARNG KC_LBRC // Å
|
||||
#define FI_DIAE KC_RBRC // ¨ (dead)
|
||||
// Row 3
|
||||
#define FI_A KC_A // A
|
||||
#define FI_S KC_S // S
|
||||
#define FI_D KC_D // D
|
||||
#define FI_F KC_F // F
|
||||
#define FI_G KC_G // G
|
||||
#define FI_H KC_H // H
|
||||
#define FI_J KC_J // J
|
||||
#define FI_K KC_K // K
|
||||
#define FI_L KC_L // L
|
||||
#define FI_ODIA KC_SCLN // Ö
|
||||
#define FI_ADIA KC_QUOT // Ä
|
||||
#define FI_QUOT KC_NUHS // '
|
||||
// Row 4
|
||||
#define FI_LABK KC_NUBS // <
|
||||
#define FI_Z KC_Z // Z
|
||||
#define FI_X KC_X // X
|
||||
#define FI_C KC_C // C
|
||||
#define FI_V KC_V // V
|
||||
#define FI_B KC_B // B
|
||||
#define FI_N KC_N // N
|
||||
#define FI_M KC_M // M
|
||||
#define FI_COMM KC_COMM // ,
|
||||
#define FI_DOT KC_DOT // .
|
||||
#define FI_MINS KC_SLSH // -
|
||||
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ½ │ ! │ " │ # │ ¤ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define FI_HALF S(FI_SECT) // ½
|
||||
#define FI_EXLM S(FI_1) // !
|
||||
#define FI_DQUO S(FI_2) // "
|
||||
#define FI_HASH S(FI_3) // #
|
||||
#define FI_CURR S(FI_4) // ¤
|
||||
#define FI_PERC S(FI_5) // %
|
||||
#define FI_AMPR S(FI_6) // &
|
||||
#define FI_SLSH S(FI_7) // /
|
||||
#define FI_LPRN S(FI_8) // (
|
||||
#define FI_RPRN S(FI_9) // )
|
||||
#define FI_EQL S(FI_0) // =
|
||||
#define FI_QUES S(FI_PLUS) // ?
|
||||
#define FI_GRV S(FI_ACUT) // ` (dead)
|
||||
// Row 2
|
||||
#define FI_CIRC S(FI_DIAE) // ^ (dead)
|
||||
// Row 3
|
||||
#define FI_ASTR S(FI_QUOT) // *
|
||||
// Row 4
|
||||
#define FI_RABK S(FI_LABK) // >
|
||||
#define FI_SCLN S(FI_COMM) // ;
|
||||
#define FI_COLN S(FI_DOT) // :
|
||||
#define FI_UNDS S(FI_MINS) // _
|
||||
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ │ @ │ £ │ $ │ € │ │ { │ [ │ ] │ } │ \ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ~ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ | │ │ │ │ │ │ │ µ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define FI_AT ALGR(FI_2) // @
|
||||
#define FI_PND ALGR(FI_3) // £
|
||||
#define FI_DLR ALGR(FI_4) // $
|
||||
#define FI_EURO ALGR(FI_5) // €
|
||||
#define FI_LCBR ALGR(FI_7) // {
|
||||
#define FI_LBRC ALGR(FI_8) // [
|
||||
#define FI_RBRC ALGR(FI_9) // ]
|
||||
#define FI_RCBR ALGR(FI_0) // }
|
||||
#define FI_BSLS ALGR(FI_PLUS) // (backslash)
|
||||
// Row 2
|
||||
#define FI_TILD ALGR(FI_DIAE) // ~ (dead)
|
||||
// Row 4
|
||||
#define FI_PIPE ALGR(FI_LABK) // |
|
||||
#define FI_MICR ALGR(FI_M) // µ
|
||||
153
quantum/keymap_extras/keymap_icelandic.h
Normal file
153
quantum/keymap_extras/keymap_icelandic.h
Normal file
@@ -0,0 +1,153 @@
|
||||
/* Copyright 2020
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "keymap.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ° │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ Ö │ - │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Ð │ ' │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Æ │ ´ │ + │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ Þ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define IS_RNGA KC_GRV // ° (dead)
|
||||
#define IS_1 KC_1 // 1
|
||||
#define IS_2 KC_2 // 2
|
||||
#define IS_3 KC_3 // 3
|
||||
#define IS_4 KC_4 // 4
|
||||
#define IS_5 KC_5 // 5
|
||||
#define IS_6 KC_6 // 6
|
||||
#define IS_7 KC_7 // 7
|
||||
#define IS_8 KC_8 // 8
|
||||
#define IS_9 KC_9 // 9
|
||||
#define IS_0 KC_0 // 0
|
||||
#define IS_ODIA KC_MINS // Ö
|
||||
#define IS_MINS KC_EQL // -
|
||||
// Row 2
|
||||
#define IS_Q KC_Q // Q
|
||||
#define IS_W KC_W // W
|
||||
#define IS_E KC_E // E
|
||||
#define IS_R KC_R // R
|
||||
#define IS_T KC_T // T
|
||||
#define IS_Y KC_Y // Y
|
||||
#define IS_U KC_U // U
|
||||
#define IS_I KC_I // I
|
||||
#define IS_O KC_O // O
|
||||
#define IS_P KC_P // P
|
||||
#define IS_ETH KC_LBRC // Ð
|
||||
#define IS_QUOT KC_RBRC // '
|
||||
// Row 3
|
||||
#define IS_A KC_A // A
|
||||
#define IS_S KC_S // S
|
||||
#define IS_D KC_D // D
|
||||
#define IS_F KC_F // F
|
||||
#define IS_G KC_G // G
|
||||
#define IS_H KC_H // H
|
||||
#define IS_J KC_J // J
|
||||
#define IS_K KC_K // K
|
||||
#define IS_L KC_L // L
|
||||
#define IS_AE KC_SCLN // Æ
|
||||
#define IS_ACUT KC_QUOT // ´ (dead)
|
||||
#define IS_PLUS KC_NUHS // +
|
||||
// Row 4
|
||||
#define IS_LABK KC_NUBS // <
|
||||
#define IS_Z KC_Z // Z
|
||||
#define IS_X KC_X // X
|
||||
#define IS_C KC_C // C
|
||||
#define IS_V KC_V // V
|
||||
#define IS_B KC_B // B
|
||||
#define IS_N KC_N // N
|
||||
#define IS_M KC_M // M
|
||||
#define IS_COMM KC_COMM // ,
|
||||
#define IS_DOT KC_DOT // .
|
||||
#define IS_THRN KC_SLSH // Þ
|
||||
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ¨ │ ! │ " │ # │ $ │ % │ & │ / │ ( │ ) │ = │ │ _ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ? │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define IS_DIAE S(IS_RNGA) // ¨ (dead)
|
||||
#define IS_EXLM S(IS_1) // !
|
||||
#define IS_DQUO S(IS_2) // "
|
||||
#define IS_HASH S(IS_3) // #
|
||||
#define IS_DLR S(IS_4) // $
|
||||
#define IS_PERC S(IS_5) // %
|
||||
#define IS_AMPR S(IS_6) // &
|
||||
#define IS_SLSH S(IS_7) // /
|
||||
#define IS_LPRN S(IS_8) // (
|
||||
#define IS_RPRN S(IS_9) // )
|
||||
#define IS_EQL S(IS_0) // =
|
||||
#define IS_UNDS S(IS_MINS) // _
|
||||
// Row 2
|
||||
#define IS_QUES S(IS_QUOT) // ?
|
||||
// Row 3
|
||||
#define IS_ASTR S(IS_PLUS) // *
|
||||
// Row 4
|
||||
#define IS_RABK S(IS_LABK) // >
|
||||
#define IS_SCLN S(IS_COMM) // ;
|
||||
#define IS_COLN S(IS_DOT) // :
|
||||
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ° │ │ │ │ │ │ │ { │ [ │ ] │ } │ \ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ @ │ │ € │ │ │ │ │ │ │ │ │ ~ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ^ │ ` │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ | │ │ │ │ │ │ │ µ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define IS_DEG ALGR(IS_RNGA) // °
|
||||
#define IS_LCBR ALGR(IS_7) // {
|
||||
#define IS_LBRC ALGR(IS_8) // [
|
||||
#define IS_RBRC ALGR(IS_9) // ]
|
||||
#define IS_RCBR ALGR(IS_0) // }
|
||||
#define IS_BSLS ALGR(IS_ODIA) // (backslash)
|
||||
// Row 2
|
||||
#define IS_AT ALGR(IS_Q) // @
|
||||
#define IS_EURO ALGR(IS_E) // €
|
||||
#define IS_TILD ALGR(IS_QUOT) // ~
|
||||
// Row 3
|
||||
#define IS_CIRC ALGR(IS_ACUT) // ^ (dead)
|
||||
#define IS_GRV ALGR(IS_PLUS) // ` (dead)
|
||||
// Row 4
|
||||
#define IS_PIPE ALGR(IS_LABK) // |
|
||||
#define IS_MICR ALGR(IS_M) // µ
|
||||
@@ -22,15 +22,15 @@
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ \ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ' │ « │ │
|
||||
* │ \ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ' │ « │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ + │ ´ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ç │ º │ ~ │ │
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ + │ ´ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ç │ º │ ~ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
@@ -88,15 +88,15 @@
|
||||
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ | │ ! │ " │ # │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ » │ │
|
||||
* │ | │ ! │ " │ # │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ » │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ * │ ` │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ª │ ^ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ * │ ` │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ª │ ^ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
@@ -127,15 +127,15 @@
|
||||
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ │ @ │ £ │ § │ │ │ { │ [ │ ] │ } │ │ │ │
|
||||
* │ │ │ @ │ £ │ § │ │ │ { │ [ │ ] │ } │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ € │ │ │ │ │ │ │ │ ¨ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ € │ │ │ │ │ │ │ │ ¨ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
|
||||
@@ -140,15 +140,15 @@
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define UK_BRKP ALGR(UK_GRV) // ¦
|
||||
#define UK_EURO ALGR(UK_4) // €
|
||||
#define UK_BRKP ALGR(UK_GRV) // ¦
|
||||
#define UK_EURO ALGR(UK_4) // €
|
||||
// Row 2
|
||||
#define UK_EACU ALGR(KC_E) // É
|
||||
#define UK_UACU ALGR(KC_U) // Ú
|
||||
#define UK_IACU ALGR(KC_I) // Í
|
||||
#define UK_OACU ALGR(KC_O) // Ó
|
||||
#define UK_EACU ALGR(KC_E) // É
|
||||
#define UK_UACU ALGR(KC_U) // Ú
|
||||
#define UK_IACU ALGR(KC_I) // Í
|
||||
#define UK_OACU ALGR(KC_O) // Ó
|
||||
// Row 3
|
||||
#define UK_AACU ALGR(KC_A) // Á
|
||||
#define UK_AACU ALGR(KC_A) // Á
|
||||
|
||||
// DEPRECATED
|
||||
#define UK_ESC KC_ESC
|
||||
|
||||
206
quantum/keymap_extras/keymap_us_international.h
Normal file
206
quantum/keymap_extras/keymap_us_international.h
Normal file
@@ -0,0 +1,206 @@
|
||||
/* Copyright 2020
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "keymap.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define US_GRV KC_GRV // ` (dead)
|
||||
#define US_1 KC_1 // 1
|
||||
#define US_2 KC_2 // 2
|
||||
#define US_3 KC_3 // 3
|
||||
#define US_4 KC_4 // 4
|
||||
#define US_5 KC_5 // 5
|
||||
#define US_6 KC_6 // 6
|
||||
#define US_7 KC_7 // 7
|
||||
#define US_8 KC_8 // 8
|
||||
#define US_9 KC_9 // 9
|
||||
#define US_0 KC_0 // 0
|
||||
#define US_MINS KC_MINS // -
|
||||
#define US_EQL KC_EQL // =
|
||||
// Row 2
|
||||
#define US_Q KC_Q // Q
|
||||
#define US_W KC_W // W
|
||||
#define US_E KC_E // E
|
||||
#define US_R KC_R // R
|
||||
#define US_T KC_T // T
|
||||
#define US_Y KC_Y // Y
|
||||
#define US_U KC_U // U
|
||||
#define US_I KC_I // I
|
||||
#define US_O KC_O // O
|
||||
#define US_P KC_P // P
|
||||
#define US_LBRC KC_LBRC // [
|
||||
#define US_RBRC KC_LBRC // ]
|
||||
#define US_BSLS KC_BSLS // (backslash)
|
||||
// Row 3
|
||||
#define US_A KC_A // A
|
||||
#define US_S KC_S // S
|
||||
#define US_D KC_D // D
|
||||
#define US_F KC_F // F
|
||||
#define US_G KC_G // G
|
||||
#define US_H KC_H // H
|
||||
#define US_J KC_J // J
|
||||
#define US_K KC_K // K
|
||||
#define US_L KC_L // L
|
||||
#define US_SCLN KC_SCLN // ;
|
||||
#define US_QUOT KC_QUOT // ' (dead)
|
||||
// Row 4
|
||||
#define US_Z KC_Z // Z
|
||||
#define US_X KC_X // X
|
||||
#define US_C KC_C // C
|
||||
#define US_V KC_V // V
|
||||
#define US_B KC_B // B
|
||||
#define US_N KC_N // N
|
||||
#define US_M KC_M // M
|
||||
#define US_COMM KC_COMM // ,
|
||||
#define US_DOT KC_DOT // .
|
||||
#define US_SLSH KC_SLSH // /
|
||||
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ : │ " │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ │ │ │ │ │ │ │ < │ > │ ? │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define US_TILD S(US_GRV) // ~ (dead)
|
||||
#define US_EXLM S(US_1) // !
|
||||
#define US_AT S(US_2) // "
|
||||
#define US_HASH S(US_3) // #
|
||||
#define US_DLR S(US_4) // $
|
||||
#define US_PERC S(US_5) // %
|
||||
#define US_CIRC S(US_6) // ^
|
||||
#define US_AMPR S(US_7) // &
|
||||
#define US_ASTR S(US_8) // *
|
||||
#define US_LPRN S(US_9) // (
|
||||
#define US_RPRN S(US_0) // )
|
||||
#define US_UNDS S(US_MINS) // _
|
||||
#define US_PLUS S(US_EQL) // +
|
||||
// Row 2
|
||||
#define US_LCBR S(US_LBRC) // {
|
||||
#define US_RCBR S(US_RBRC) // }
|
||||
#define US_PIPE S(US_BSLS) // |
|
||||
// Row 3
|
||||
#define US_COLN S(US_SCLN) // :
|
||||
#define US_DQUO S(US_QUOT) // " (dead)
|
||||
// Row 4
|
||||
#define US_LABK S(US_COMM) // <
|
||||
#define US_RABK S(US_DOT) // >
|
||||
#define US_QUES S(US_SLSH) // ?
|
||||
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ ¡ │ ² │ ³ │ ¤ │ € │ ¼ │ ½ │ ¾ │ ‘ │ ’ │ ¥ │ × │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Ä │ Å │ É │ ® │ Þ │ Ü │ Ú │ Í │ Ó │ Ö │ « │ » │ ¬ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ Á │ ß │ Ð │ │ │ │ │ │ Ø │ ¶ │ ´ │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ Æ │ │ © │ │ │ Ñ │ µ │ Ç │ │ ¿ │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define US_IEXL ALGR(US_1) // ¡
|
||||
#define US_SUP2 ALGR(US_2) // ²
|
||||
#define US_SUP3 ALGR(US_3) // ³
|
||||
#define US_CURR ALGR(US_4) // ¤
|
||||
#define US_EURO ALGR(US_5) // €
|
||||
#define US_QRTR ALGR(US_6) // ¼
|
||||
#define US_HALF ALGR(US_7) // ½
|
||||
#define US_TQTR ALGR(US_8) // ¾
|
||||
#define US_LSQU ALGR(US_9) // ‘
|
||||
#define US_RSQU ALGR(US_0) // ’
|
||||
#define US_YEN ALGR(US_MINS) // ¥
|
||||
#define US_MUL ALGR(US_EQL) // ×
|
||||
// Row 2
|
||||
#define US_ADIA ALGR(US_Q) // Ä
|
||||
#define US_ARNG ALGR(US_W) // Å
|
||||
#define US_EACU ALGR(US_E) // É
|
||||
#define US_REGD ALGR(US_R) // ®
|
||||
#define US_THRN ALGR(US_T) // Þ
|
||||
#define US_UDIA ALGR(US_Y) // Ü
|
||||
#define US_UACU ALGR(US_U) // Ú
|
||||
#define US_IACU ALGR(US_I) // Í
|
||||
#define US_OACU ALGR(US_O) // Ó
|
||||
#define US_ODIA ALGR(US_P) // Ö
|
||||
#define US_LDAQ ALGR(US_LBRC) // «
|
||||
#define US_RDAQ ALGR(US_RBRC) // »
|
||||
#define US_NOT ALGR(US_BSLS) // ¬
|
||||
// Row 3
|
||||
#define US_AACU ALGR(US_A) // Á
|
||||
#define US_SS ALGR(US_S) // ß
|
||||
#define US_ETH ALGR(US_D) // Ð
|
||||
#define US_OSTR ALGR(US_L) // Ø
|
||||
#define US_PILC ALGR(US_SCLN) // ¶
|
||||
#define US_ACUT ALGR(US_QUOT) // ´
|
||||
// Row 4
|
||||
#define US_AE ALGR(US_Z) // Æ
|
||||
#define US_COPY ALGR(US_C) // ©
|
||||
#define US_NTIL ALGR(US_N) // Ñ
|
||||
#define US_MICR ALGR(US_M) // µ
|
||||
#define US_CCED ALGR(US_COMM) // Ç
|
||||
#define US_IQUE ALGR(US_SLSH) // ¿
|
||||
|
||||
/* Shift+AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ ¹ │ │ │ £ │ │ │ │ │ │ │ │ ÷ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ ¦ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ │ § │ │ │ │ │ │ │ │ ° │ ¨ │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ │ │ ¢ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
// Row 1
|
||||
#define US_SUP1 S(ALGR(US_1)) // ¹
|
||||
#define US_PND S(ALGR(US_4)) // £
|
||||
#define US_DIV S(ALGR(US_EQL)) // ÷
|
||||
// Row 2
|
||||
#define US_BRKP S(ALGR(US_BSLS)) // ¦
|
||||
// Row 3
|
||||
#define US_SECT S(ALGR(US_S)) // §
|
||||
#define US_DEG S(ALGR(US_SCLN)) // °
|
||||
#define US_DIAE S(ALGR(US_QUOT)) // ¨
|
||||
// Row 4
|
||||
#define US_CENT S(ALGR(US_C)) // ¢
|
||||
@@ -40,7 +40,7 @@ const uint8_t ascii_to_shift_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
@@ -60,7 +60,7 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
||||
|
||||
@@ -40,7 +40,7 @@ const uint8_t ascii_to_shift_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
@@ -60,7 +60,7 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
||||
|
||||
100
quantum/keymap_extras/sendstring_finnish.h
Normal file
100
quantum/keymap_extras/sendstring_finnish.h
Normal file
@@ -0,0 +1,100 @@
|
||||
/* Copyright 2020
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
// Sendstring lookup tables for Finnish layouts
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "keymap_finnish.h"
|
||||
#include "quantum.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
const uint8_t ascii_to_shift_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
|
||||
KCLUT_ENTRY(0, 1, 1, 1, 0, 1, 1, 0),
|
||||
KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 1, 1, 0, 1, 1, 1),
|
||||
KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1),
|
||||
KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1),
|
||||
KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1),
|
||||
KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 1, 1),
|
||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
||||
// NUL SOH STX ETX EOT ENQ ACK BEL
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// BS TAB LF VT FF CR SO SI
|
||||
KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// DLE DC1 DC2 DC3 DC4 NAK SYN ETB
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// CAN EM SUB ESC FS GS RS US
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// ! " # $ % & '
|
||||
KC_SPC, FI_1, FI_2, FI_3, FI_4, FI_5, FI_6, FI_QUOT,
|
||||
// ( ) * + , - . /
|
||||
FI_8, FI_9, FI_QUOT, FI_PLUS, FI_COMM, FI_MINS, FI_DOT, FI_7,
|
||||
// 0 1 2 3 4 5 6 7
|
||||
FI_0, FI_1, FI_2, FI_3, FI_4, FI_5, FI_6, FI_7,
|
||||
// 8 9 : ; < = > ?
|
||||
FI_8, FI_9, FI_DOT, FI_COMM, FI_LABK, FI_0, FI_LABK, FI_PLUS,
|
||||
// @ A B C D E F G
|
||||
FI_2, FI_A, FI_B, FI_C, FI_D, FI_E, FI_F, FI_G,
|
||||
// H I J K L M N O
|
||||
FI_H, FI_I, FI_J, FI_K, FI_L, FI_M, FI_N, FI_O,
|
||||
// P Q R S T U V W
|
||||
FI_P, FI_Q, FI_R, FI_S, FI_T, FI_U, FI_V, FI_W,
|
||||
// X Y Z [ \ ] ^ _
|
||||
FI_X, FI_Y, FI_Z, FI_8, FI_PLUS, FI_9, FI_DIAE, FI_MINS,
|
||||
// ` a b c d e f g
|
||||
FI_ACUT, FI_A, FI_B, FI_C, FI_D, FI_E, FI_F, FI_G,
|
||||
// h i j k l m n o
|
||||
FI_H, FI_I, FI_J, FI_K, FI_L, FI_M, FI_N, FI_O,
|
||||
// p q r s t u v w
|
||||
FI_P, FI_Q, FI_R, FI_S, FI_T, FI_U, FI_V, FI_W,
|
||||
// x y z { | } ~ DEL
|
||||
FI_X, FI_Y, FI_Z, FI_7, FI_LABK, FI_0, FI_DIAE, KC_DEL
|
||||
};
|
||||
100
quantum/keymap_extras/sendstring_icelandic.h
Normal file
100
quantum/keymap_extras/sendstring_icelandic.h
Normal file
@@ -0,0 +1,100 @@
|
||||
/* Copyright 2020
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
// Sendstring lookup tables for Icelandic layouts
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "keymap_icelandic.h"
|
||||
#include "quantum.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
const uint8_t ascii_to_shift_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
|
||||
KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 0),
|
||||
KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 1, 1, 0, 1, 1, 1),
|
||||
KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1),
|
||||
KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1),
|
||||
KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1),
|
||||
KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0),
|
||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
||||
// NUL SOH STX ETX EOT ENQ ACK BEL
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// BS TAB LF VT FF CR SO SI
|
||||
KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// DLE DC1 DC2 DC3 DC4 NAK SYN ETB
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// CAN EM SUB ESC FS GS RS US
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
// ! " # $ % & '
|
||||
KC_SPC, IS_1, IS_2, IS_3, IS_4, IS_5, IS_6, IS_QUOT,
|
||||
// ( ) * + , - . /
|
||||
IS_8, IS_9, IS_PLUS, IS_PLUS, IS_COMM, IS_MINS, IS_DOT, IS_7,
|
||||
// 0 1 2 3 4 5 6 7
|
||||
IS_0, IS_1, IS_2, IS_3, IS_4, IS_5, IS_6, IS_7,
|
||||
// 8 9 : ; < = > ?
|
||||
IS_8, IS_9, IS_DOT, IS_COMM, IS_LABK, IS_0, IS_LABK, IS_QUOT,
|
||||
// @ A B C D E F G
|
||||
IS_Q, IS_A, IS_B, IS_C, IS_D, IS_E, IS_F, IS_G,
|
||||
// H I J K L M N O
|
||||
IS_H, IS_I, IS_J, IS_K, IS_L, IS_M, IS_N, IS_O,
|
||||
// P Q R S T U V W
|
||||
IS_P, IS_Q, IS_R, IS_S, IS_T, IS_U, IS_V, IS_W,
|
||||
// X Y Z [ \ ] ^ _
|
||||
IS_X, IS_Y, IS_Z, IS_8, IS_ODIA, IS_9, IS_ACUT, IS_MINS,
|
||||
// ` a b c d e f g
|
||||
IS_PLUS, IS_A, IS_B, IS_C, IS_D, IS_E, IS_F, IS_G,
|
||||
// h i j k l m n o
|
||||
IS_H, IS_I, IS_J, IS_K, IS_L, IS_M, IS_N, IS_O,
|
||||
// p q r s t u v w
|
||||
IS_P, IS_Q, IS_R, IS_S, IS_T, IS_U, IS_V, IS_W,
|
||||
// x y z { | } ~ DEL
|
||||
IS_X, IS_Y, IS_Z, IS_7, IS_LABK, IS_0, IS_QUOT, KC_DEL
|
||||
};
|
||||
@@ -40,7 +40,7 @@ const uint8_t ascii_to_shift_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 0, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
@@ -60,7 +60,7 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 0, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
||||
|
||||
@@ -40,7 +40,7 @@ const uint8_t ascii_to_shift_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
@@ -60,7 +60,7 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
||||
|
||||
@@ -40,7 +40,7 @@ const uint8_t ascii_to_shift_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
@@ -60,7 +60,7 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
|
||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0),
|
||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
|
||||
};
|
||||
|
||||
const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
||||
|
||||
@@ -213,6 +213,8 @@ ifneq ($(findstring STM32F103, $(MCU)),)
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(MCU),atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb1286))
|
||||
PROTOCOL = LUFA
|
||||
|
||||
# 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
|
||||
|
||||
@@ -581,32 +581,6 @@ void tap_random_base64(void) {
|
||||
}
|
||||
}
|
||||
|
||||
__attribute__((weak)) void bootmagic_lite(void) {
|
||||
// The lite version of TMK's bootmagic based on Wilba.
|
||||
// 100% less potential for accidentally making the
|
||||
// keyboard do stupid things.
|
||||
|
||||
// We need multiple scans because debouncing can't be turned off.
|
||||
matrix_scan();
|
||||
#if defined(DEBOUNCE) && DEBOUNCE > 0
|
||||
wait_ms(DEBOUNCE * 2);
|
||||
#else
|
||||
wait_ms(30);
|
||||
#endif
|
||||
matrix_scan();
|
||||
|
||||
// If the Esc and space bar are held down on power up,
|
||||
// reset the EEPROM valid state and jump to bootloader.
|
||||
// Assumes Esc is at [0,0].
|
||||
// This isn't very generalized, but we need something that doesn't
|
||||
// rely on user's keymaps in firmware or EEPROM.
|
||||
if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) {
|
||||
eeconfig_disable();
|
||||
// Jump to bootloader.
|
||||
bootloader_jump();
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_init_quantum() {
|
||||
#ifdef BOOTMAGIC_LITE
|
||||
bootmagic_lite();
|
||||
|
||||
@@ -11,16 +11,6 @@ MCU = atmega32u4
|
||||
# ATmega328P USBasp
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# If you don't know the bootloader type, then you can specify the
|
||||
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
|
||||
# Otherwise, delete this section
|
||||
# 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
|
||||
#
|
||||
|
||||
@@ -92,36 +92,6 @@ void via_eeprom_reset(void) {
|
||||
eeconfig_disable();
|
||||
}
|
||||
|
||||
// Override bootmagic_lite() so it can flag EEPROM as invalid
|
||||
// as well as jump to bootloader, thus performing a "factory reset"
|
||||
// of dynamic keymaps and optionally backlight/other settings.
|
||||
void bootmagic_lite(void) {
|
||||
// The lite version of TMK's bootmagic based on Wilba.
|
||||
// 100% less potential for accidentally making the
|
||||
// keyboard do stupid things.
|
||||
|
||||
// We need multiple scans because debouncing can't be turned off.
|
||||
matrix_scan();
|
||||
#if defined(DEBOUNCE) && DEBOUNCE > 0
|
||||
wait_ms(DEBOUNCE * 2);
|
||||
#else
|
||||
wait_ms(30);
|
||||
#endif
|
||||
matrix_scan();
|
||||
|
||||
// If the Esc and space bar are held down on power up,
|
||||
// reset the EEPROM valid state and jump to bootloader.
|
||||
// Assumes Esc is at [0,0].
|
||||
// This isn't very generalized, but we need something that doesn't
|
||||
// rely on user's keymaps in firmware or EEPROM.
|
||||
if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) {
|
||||
// This is the only difference from the default implementation.
|
||||
via_eeprom_reset();
|
||||
// Jump to bootloader.
|
||||
bootloader_jump();
|
||||
}
|
||||
}
|
||||
|
||||
// Override this at the keyboard code level to check
|
||||
// VIA's EEPROM valid state and reset to defaults as needed.
|
||||
// Used by keyboards that store their own state in EEPROM,
|
||||
|
||||
@@ -24,6 +24,7 @@ endif
|
||||
#
|
||||
|
||||
# Imported source files and paths
|
||||
OPT_OS = chibios
|
||||
CHIBIOS = $(TOP_DIR)/lib/chibios
|
||||
CHIBIOS_CONTRIB = $(TOP_DIR)/lib/chibios-contrib
|
||||
# Startup files. Try a few different locations, for compability with old versions and
|
||||
@@ -49,6 +50,34 @@ PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLAT
|
||||
endif
|
||||
include $(PLATFORM_MK)
|
||||
|
||||
# Bootloader address
|
||||
ifdef STM32_BOOTLOADER_ADDRESS
|
||||
OPT_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS)
|
||||
endif
|
||||
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_5)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_4)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_3)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_2)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_1)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h
|
||||
else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h)","")
|
||||
OPT_DEFS += -include $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h
|
||||
endif
|
||||
|
||||
BOARD_MK :=
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@ ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
|
||||
endif
|
||||
ifeq ($(strip $(BOOTMAGIC_ENABLE)), lite)
|
||||
TMK_COMMON_DEFS += -DBOOTMAGIC_LITE
|
||||
TMK_COMMON_SRC += $(COMMON_DIR)/bootmagic_lite.c
|
||||
|
||||
TMK_COMMON_DEFS += -DMAGIC_ENABLE
|
||||
TMK_COMMON_SRC += $(COMMON_DIR)/magic.c
|
||||
else
|
||||
@@ -164,11 +166,6 @@ ifeq ($(strip $(LINK_TIME_OPTIMIZATION_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DNO_ACTION_FUNCTION
|
||||
endif
|
||||
|
||||
# Bootloader address
|
||||
ifdef STM32_BOOTLOADER_ADDRESS
|
||||
TMK_COMMON_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS)
|
||||
endif
|
||||
|
||||
# Search Path
|
||||
VPATH += $(TMK_PATH)/$(COMMON_DIR)
|
||||
VPATH += $(TMK_PATH)/$(PLATFORM_COMMON_DIR)
|
||||
|
||||
51
tmk_core/common/bootmagic_lite.c
Normal file
51
tmk_core/common/bootmagic_lite.c
Normal file
@@ -0,0 +1,51 @@
|
||||
#include "quantum.h"
|
||||
|
||||
bool is_keyboard_left(void);
|
||||
|
||||
/** \brief Reset eeprom
|
||||
*
|
||||
* ...just incase someone wants to only change the eeprom behaviour
|
||||
*/
|
||||
__attribute__((weak)) void bootmagic_lite_reset_eeprom(void) {
|
||||
#if defined(VIA_ENABLE)
|
||||
via_eeprom_reset();
|
||||
#else
|
||||
eeconfig_disable();
|
||||
#endif
|
||||
}
|
||||
|
||||
/** \brief The lite version of TMK's bootmagic based on Wilba.
|
||||
*
|
||||
* 100% less potential for accidentally making the keyboard do stupid things.
|
||||
*/
|
||||
__attribute__((weak)) void bootmagic_lite(void) {
|
||||
// We need multiple scans because debouncing can't be turned off.
|
||||
matrix_scan();
|
||||
#if defined(DEBOUNCE) && DEBOUNCE > 0
|
||||
wait_ms(DEBOUNCE * 2);
|
||||
#else
|
||||
wait_ms(30);
|
||||
#endif
|
||||
matrix_scan();
|
||||
|
||||
// If the configured key (commonly Esc) is held down on power up,
|
||||
// reset the EEPROM valid state and jump to bootloader.
|
||||
// This isn't very generalized, but we need something that doesn't
|
||||
// rely on user's keymaps in firmware or EEPROM.
|
||||
uint8_t row = BOOTMAGIC_LITE_ROW;
|
||||
uint8_t col = BOOTMAGIC_LITE_COLUMN;
|
||||
|
||||
#if defined(SPLIT_KEYBOARD) && defined(BOOTMAGIC_LITE_ROW_RIGHT) && defined(BOOTMAGIC_LITE_COLUMN_RIGHT)
|
||||
if (!is_keyboard_left()) {
|
||||
row = BOOTMAGIC_LITE_ROW_RIGHT;
|
||||
col = BOOTMAGIC_LITE_COLUMN_RIGHT;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (matrix_get_row(row) & (1 << col)) {
|
||||
bootmagic_lite_reset_eeprom();
|
||||
|
||||
// Jump to bootloader.
|
||||
bootloader_jump();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user